Hi Mark
Cleaning things up so we don't need to use rtd->cpu_dai and rtd->codec_dai would definitely be nice, it's also useful for CODEC<->CODEC links. Off the top of my head wrapping the accesses with macros/functions then implementing a way of getting the DAI behind them would be tractable?
Yes but one of the problems I see that we have specific ordering on the DAI ops between various components, is that a specific requirement?
It's designed to minimize pops, it's not a hard requirement but changing it might break things for existing systems.
Yes that was my hunch too, so lets keep the order unchanged.
Current DAI has CPU/Codec categorize, and sometimes we want to use Codec <-> Codec connection. Thus, we want to remove current cpu_xx/codec_xx naming. But, because of above reason, we need to know which DAI is which portion, thus, we need flags anyway, I think.
My quick idea is using "peripheral" flag. I think we can set it on soc_bind_dai_link() ? And we can use it like below
for_each_dais(dai, xxx) { if(!dai->peripheral) /* non Peripheral == CPU portion */
if(dai->peripheral) /* Peripheral == Codec portion */ }
But what do you think about this idea/naming etc ? I want to investigate more about Codec <-> Codec connection, which driver is using it ? Especially CPU portion
Best regards --- Kuninori Morimoto