[alsa-devel] [PATCH 08/19] ASoC: kirkwood: Don't set unused struct snd_pcm_hardware fields

Lars-Peter Clausen lars at metafoo.de
Fri Dec 20 19:29:43 CET 2013


On 12/20/2013 08:13 PM, Jean-Francois Moine wrote:
> On Fri, 20 Dec 2013 18:18:49 +0100
> Lars-Peter Clausen <lars at metafoo.de> wrote:
> 
>> On 12/20/2013 07:05 PM, Jean-Francois Moine wrote:
>>> On Fri, 20 Dec 2013 14:20:14 +0100
>>> Lars-Peter Clausen <lars at metafoo.de> wrote:
>>>
>>>> The ASoC core assumes that the PCM component of the ASoC card transparently
>>>> moves data around and does not impose any restrictions on the memory layout or
>>>> the transfer speed. It ignores all fields from the snd_pcm_hardware struct for
>>>> the PCM driver that are related to this. Setting these fields in the PCM driver
>>>> might suggest otherwise though, so rather not set them.
>>>>
>>>> Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
>>>> Cc: Jean-Francois Moine <moinejf at free.fr>
>>>> ---
>>>>  sound/soc/kirkwood/kirkwood-dma.c | 16 ----------------
>>>>  1 file changed, 16 deletions(-)
>>>>
>>>> diff --git a/sound/soc/kirkwood/kirkwood-dma.c b/sound/soc/kirkwood/kirkwood-dma.c
>>>> index 4af1936..aac22fc 100644
>>>> --- a/sound/soc/kirkwood/kirkwood-dma.c
>>>> +++ b/sound/soc/kirkwood/kirkwood-dma.c
>>> 	[snip]
>>>> @@ -43,12 +33,6 @@ static struct snd_pcm_hardware kirkwood_dma_snd_hw = {
>>>>  		 SNDRV_PCM_INFO_MMAP_VALID |
>>>>  		 SNDRV_PCM_INFO_BLOCK_TRANSFER |
>>>>  		 SNDRV_PCM_INFO_PAUSE),
>>>> -	.formats		= KIRKWOOD_FORMATS,
>>>> -	.rates			= KIRKWOOD_RATES,
>>>> -	.rate_min		= 8000,
>>>> -	.rate_max		= 384000,
>>>> -	.channels_min		= 1,
>>>> -	.channels_max		= 8,
>>>>  	.buffer_bytes_max	= KIRKWOOD_SND_MAX_BUFFER_BYTES,
>>>>  	.period_bytes_min	= KIRKWOOD_SND_MIN_PERIOD_BYTES,
>>>>  	.period_bytes_max	= KIRKWOOD_SND_MAX_PERIOD_BYTES,
>>>
>>> Lars,
>>>
>>> You removed too many things. The 'formats' field is mandatory.
>>
>> No it is not. While snd_soc_set_runtime_hwparams() uses it it is later
>> overwritten again in soc_pcm_init_runtime_hw().
> 
> I have a DPCM system and soc_pcm_init_runtime_hw() is not called
> (either 'dynamic' or 'no_pcm' is set in the DAI links).
> 

Ok, I see dpcm_set_fe_runtime() does things slightly different.


More information about the Alsa-devel mailing list