On Wed, Feb 17, 2010 at 7:52 PM, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Wed, Feb 17, 2010 at 03:58:15PM +0900, Joonyoung Shim wrote:
There is the case at the S5PC1XX, it supports the hardware mixing by using two tx fifo. First Jassi implemented codes using each other cpu dai as Jassi says at the above for the hardware mixing, but it should share codec_dai and need some modification of ASoC core.
What modifications are you looking for here? ASoC doesn't make any effort to avoid reuse of DAIs in multiple links - it doesn't actively do anything to help here but equally well it's not supposed to get in the way.
The workaround to enable a cpu_dai to be used in multiple dai_links isn't going to work as such because of cpu_dai->runtime = runtime done in soc_pcm_open. Luckily for codec_dai, we can use the same in more than one dai_link.
The only thing I can think of off the top of my head that would cause actual problems is that the DAPM events for stream stop/start in the CODEC might not be doing reference counting, I'd need to check. Other than that there's a bunch of things that could make use cases like this nicer like providing a way of bundling links that share signals together and providing callbacks when things start and stop (so shared clocking can be turned on and off, for example) but these should be things that could be open coded in individual drivers.
Also, how cleanly could we avoid startup/shutdown/mute etc callbacks when a codec_dai is used in multiple dai_links, is to be seen.