Liam,
I have this in my machine driver:
machine_data->dai[0].cpu_dai_name = strrchr(np->full_name, '/') + 1; printk(KERN_INFO "%s:%u cpu_dai_name=%s\n", __func__, __LINE__, machine_data->dai[0].cpu_dai_name); ... platform_set_drvdata(sound_device, &machine_data->card); ret = platform_device_add(sound_device);
which displays this message:
mpc8610_hpcd_probe:316 cpu_dai_name=ssi@16000
So my machine driver says the CPU DAI name is "ssi@16000", and my CPU driver does the same thing. However, I put some printks in soc_bind_dai_link, and this is what I see:
soc_bind_dai_link:1136 cpu_dai->name=e0016000.ssi dai_link->cpu_dai_name=ssi@16000 soc_bind_dai_link:1136 cpu_dai->name=cs4270-hifi dai_link->cpu_dai_name=ssi@16000 soc_bind_dai_link:1159 codec->name=0-004f dai_link->codec_name=cs4270-codec.0-004f soc_bind_dai_link:1193 platform->name=e0021180.dma-channel dai_link->platform_name=/soc@e0000000/dma@21300/dma-channel@0 soc_bind_dai_link:1193 platform->name=e0021100.dma-channel dai_link->platform_name=/soc@e0000000/dma@21300/dma-channel@0 soc_bind_dai_link:1136 cpu_dai->name=e0016000.ssi dai_link->cpu_dai_name=ssi@16000 soc_bind_dai_link:1136 cpu_dai->name=cs4270-hifi dai_link->cpu_dai_name=ssi@16000 soc_bind_dai_link:1159 codec->name=0-004f dai_link->codec_name=cs4270-codec.0-004f soc_bind_dai_link:1193 platform->name=e0021180.dma-channel dai_link->platform_name=/soc@e0000000/dma@21300/dma-channel@1 soc_bind_dai_link:1193 platform->name=e0021100.dma-channel dai_link->platform_name=/soc@e0000000/dma@21300/dma-channel@1
Where in the world is "e0016000.ssi" coming from? Why is ASoC ignoring my .cpu_dai_name value?