Hi Pierre-Louis, again
The problem I have is with the following code (not shown with diff)
if (dai_link->playback_only) has_capture = 0;
if (dai_link->capture_only) has_playback = 0;
So with this grand unification, all the loops above may make a decision that could be overridden by these two branches.
This was not the case before for DPCM, all the 'has_capture' and 'has_playback' variables were used as a verification of the dai_link settings with an error thrown e.g. if the dpcm_playback was set without any DAIs supporting playback.
Hmm... above 2 branches are used for DPCM too before.
Now the dailink settings are used unconditionally. There is one warning added if there are no settings for a dailink, but we've lost the detection of a mismatch between dailink and the set of cpu/codec dais that are part of this dailink.
Does this mean, for example you want to have warning/error by dpcm_playback flag if you are thinking it can use playback , but FE or BE playback was not valid ?
If so, yes indeed this patch removes such flags. But I wonder why you want to get it in case of DPCM only ? I can understand if all case want to have it.
Then, I think we can check _only for this purpose too ?
(A) if dai_link has playback_only -> it should have has_playback (B) if dai_link has capture_only -> it should have has_capture (C) if dai_link don't have both xxx_only -> it should have both has_xxx
I think we already have (A)(B) check. We want to add (C) check ?
If my understanding was correct, the things dpcm_xxx flag can do is also can do by xxx_only flag. But dpcm_xxx flag is used only DPCM, but xxx_only flag is used on all cases.
Thank you for your help !!
Best regards --- Renesas Electronics Ph.D. Kuninori Morimoto