Is the machine driver required to run last? The reason I ask is that my DMA driver is currently initialized via arch_initcall(). If I change that to module_init(), ASOC fails to register any sound cards.
Here's the debug output with arch_initcall():
soc_bind_dai_link:1136 cpu_dai->name=e0016000.ssi, dai_link->cpu_dai_name=e0016000.ssi soc_bind_dai_link:1159 codec->name=cs4270-codec.0-004f, dai_link->codec_name=cs4270-codec.0-004f soc_bind_dai_link:1169 codec_dai->name=e0016000.ssi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1169 codec_dai->name=cs4270-hifi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1194 platform->name=e0021180.dma-channel, dai_link->platform_name=e0021100.dma-channel soc_bind_dai_link:1194 platform->name=e0021100.dma-channel, dai_link->platform_name=e0021100.dma-channel soc_bind_dai_link:1136 cpu_dai->name=e0016000.ssi, dai_link->cpu_dai_name=e0016000.ssi soc_bind_dai_link:1159 codec->name=cs4270-codec.0-004f, dai_link->codec_name=cs4270-codec.0-004f soc_bind_dai_link:1169 codec_dai->name=e0016000.ssi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1169 codec_dai->name=cs4270-hifi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1194 platform->name=e0021180.dma-channel, dai_link->platform_name=e0021180.dma-channel asoc: cs4270-hifi <-> e0016000.ssi mapping ok asoc: cs4270-hifi <-> e0016000.ssi mapping ok mpc8610_hpcd_probe:516 ALSA device list: #0: MPC8610 HPCD
And here it is with module_init():
soc_bind_dai_link:1136 cpu_dai->name=e0016000.ssi, dai_link->cpu_dai_name=e0016000.ssi soc_bind_dai_link:1159 codec->name=cs4270-codec.0-004f, dai_link->codec_name=cs4270-codec.0-004f soc_bind_dai_link:1169 codec_dai->name=e0016000.ssi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1169 codec_dai->name=cs4270-hifi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1136 cpu_dai->name=e0016000.ssi, dai_link->cpu_dai_name=e0016000.ssi soc_bind_dai_link:1159 codec->name=cs4270-codec.0-004f, dai_link->codec_name=cs4270-codec.0-004f soc_bind_dai_link:1169 codec_dai->name=e0016000.ssi, dai_link->codec_dai_name=cs4270-hifi soc_bind_dai_link:1169 codec_dai->name=cs4270-hifi, dai_link->codec_dai_name=cs4270-hifi mpc8610_hpcd_probe:516 Freescale Elo DMA ASoC PCM Driver fsl_soc_dma_probe:852 soc_bind_dai_link:1194 platform->name=e0021100.dma-channel, dai_link->platform_name=e0021100.dma-channel soc_bind_dai_link:1194 platform->name=e0021100.dma-channel, dai_link->platform_name=e0021180.dma-channel fsl_soc_dma_probe:852 soc_bind_dai_link:1194 platform->name=e0021180.dma-channel, dai_link->platform_name=e0021180.dma-channel ALSA device list: No soundcards found.