Hi Pierre-Louis
Thank you for your feedback.
void snd_soc_dai_link_set_capabilities(...) { ... (X) for_each_pcm_streams(direction) { ... (Y) for_each_link_cpus(dai_link, i, cpu) { ... (A) if (... snd_soc_dai_stream_valid(...)) { ... } } (Z) for_each_link_codecs(dai_link, i, codec) { ... (A) if (... snd_soc_dai_stream_valid(...)) { ... } } ... }
(a) dai_link->dpcm_playback = supported[...]; (a) dai_link->dpcm_capture = supported[...]; }
(snip)
It's very hard to review because it comes as the 13th patch of a series and you've already removed similar code earlier which precisely checked the consistency between dailink and dais.
Ah, OK, I see. Indeed this patch can be merged into [01/16] patch, or can be [02/16].
In this function, it's a similar case btw where the settings provided by the machine drivers are overridden by the framework, so that's another case of collision between machine driver and framework. Which of the two should be trusted?
I couldn't understand this comment, either.
In this function, it's a similar case btw where the settings provided by the machine drivers are overridden by the framework,
Do you mean dai_link->dpcm_xxx which was set by machine drivers is overridden/overwritten by this function (= snd_soc_dai_link_set_capabilities()) ??
I think CPU/Codec driver can't set dai_link. And this function is basically called from Card driver, not from framework. And dpcm_xxx is no longer needed anyway, no collision happen any more by this patch. But am I misunderstanding ?
Thank you for your help !!
Best regards --- Renesas Electronics Ph.D. Kuninori Morimoto