On Tue, Jul 27, 2010 at 12:26 PM, Liam Girdwood lrg@slimlogic.co.uk wrote:
I think you are probably a special case here since you are the only person who is dynamically building a DAI link array atm. Everyone else has a static table.
I thought the whole point behind this "multi-component" stuff was to eliminate the need for static tables!
To further complicate matters, you are having to read from a device tree that has not been optimised for creating ASoC DAI link tables (hence the meeting at UDS this year to come up with some device tree ASoC format).
I don't think that's a factor. The outcome of that meeting is to determine how a device tree should represent the relationship between the SSI, DMA, and codec nodes. I already have a definition for that, and the machine driver uses it, but other people apparently don't like it. However, the only thing that will change is the specific code I use to traverse the device tree in the machine driver. I will still have the same problems I'm having now.
Fwiw, I've just again tested another multiple DAI mapping to single CODEC DAI :-
{ .name = "DAI test1", .stream_name = "Multimedia",
.cpu_dai_name = "omap-mcbsp-dai.1", .platform_name = "omap-pcm-audio",
.codec_dai_name = "twl6040-dl1", .codec_name = "twl6040-codec", }, { .name = "DAI test2", .stream_name = "Multimedia",
.cpu_dai_name = "omap-mcbsp-dai.3", .platform_name = "omap-pcm-audio",
.codec_dai_name = "twl6040-dl1", .codec_name = "twl6040-codec", }
Works fine for me.
Look at cs4270.c. The chip has only one digital interface, so I have a single DAI structure. Are you telling me that I need to have two DAIs in the CS4270 driver? Won't that break something else?
I was meaning the DAI _link_ name (above as "DAI test1" and "DAI test 2") and not the CODEC DAI name ("twl6040-dl1" above).
I think you should be creating two DAI links like this:-
Ugh. So you're saying that ASOC no longer supports having two CPU DAIs connect to the same codec DAI?