[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