On Thu, Dec 21, 2017 at 01:28:09AM +0000, Kuninori Morimoto wrote:
If my understanding was correct, we can call all DAIs by one for_each loop with controllable order on your idea. This is nice. But, callback order will be exchanged ? For example soc_pcm_trigger() case, .trigger callback order currently is
Codec DAI -> Component(Platform) -> CPU DAI -> RTD
it will be
all ordered DAIs -> Component(Platform) -> RTD
Codec / CPU callback order are OK, but DAI / Component order is exchanged. If this is not a big problem, we can do it.
Ah, yes - we'd need to mix in the platform :/
And one issue I noticed. If we merged all Codec/CPU DAI into one DAI list, and without flags (like .peripheral flag), current DAI master/slave direction will be problem.
Yes, there's other things need to be fixed - I'm not saying it'd be a simple transition.
At least snd_soc_runtime_set_dai_fmt() is switching it for Codec <-> Codec case. If we can change current SND_SOC_DAIFMT_CBx_CFx style to xx_MASTER / xx_SLAVE style on each DAIs, this can be no problem I think. I guess Lars is thinking about it ?
It's been talked about for years but it's another of these things that's a lot of work to transition.