[PATCH 1/3] ASoC: soc-generic-dmaengine-pcm: add option to start DMA after DAI

Claudiu.Beznea at microchip.com Claudiu.Beznea at microchip.com
Thu Feb 16 01:49:49 PST 2023


On 14.02.2023 23:26, Mark Brown wrote:
> On Tue, Feb 14, 2023 at 10:14:28AM -0800, Lars-Peter Clausen wrote:
>> On 2/14/23 08:14, Claudiu Beznea wrote:
>>> @@ -450,6 +450,8 @@ int snd_dmaengine_pcm_register(struct device *dev,
>>>   	else
>>>   		driver = &dmaengine_pcm_component;
>>> +	driver->start_dma_last = config->start_dma_last;
>> This will break if you have multiple sound cards in the system.
>> dmaengine_pcm_component must stay const.
> Right, if we need to modify it we either need to select which of
> multiple const structs to register or to take a copy and modify
> that.  I've not looked at the actual changes yet.

OK, I will try that and return with a new patch.

On the other hand do you think the other solution presented in cover letter
would be better? From the cover letter:

"The other solution that was identified for this was to extend the already
existing mechanism around struct snd_soc_dai_link::stop_dma_first. The downside
of this was that a potential struct snd_soc_dai_link::start_dma_last
would have to be populated on sound card driver thus, had to be taken
into account in all sound card drivers. At the moment, the mchp-pdmc is
used only with simple-audio-card. In case of simple-audio-card a new DT
binding would had to be introduced to specify this action on dai-link
descriptions (as of my investigation)."

Thank you,
Claudiu


More information about the linux-arm-kernel mailing list