On Fri, 2013-11-22 at 15:19 +0100, Arnaud POULIQUEN wrote:
Hello, I 'm newbie on asoc dev. I'm trying to develop a driver based on dynamic PCM implementation with backend and frontend. I'm working on 3.10
I have declared a FE : { .name = "MMDL0", .stream_name = "MM DL0 Frontend", .cpu_dai_name = "mm_dl0",
.codec_name = "snd-soc-dummy", .codec_dai_name = "snd-soc-dummy-dai", .dynamic=1, .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST}, .ignore_pmdown_time = 1, /* Power down without delay */ .init = sti_dummy_init,
},
CPU DAI associated: static struct snd_soc_dai_driver sti_frontend_cpu_dais[] = { { .name = "mm_dl0", .playback = { .stream_name = "MM_DL0", .channels_min = 1, .channels_max = 8, .rates = SNDRV_PCM_RATE_48000, .formats = SNDRV_PCM_FMTBIT_S16_LE }, .probe = sti_frontend_dai_probe, .probe_order = SND_SOC_COMP_ORDER_FIRST, }, } Platform is declared using platform_of_node using DTS. I have also declared a BE and the route that links the FE cpu dai widget with the BE codec dai widget.
My concern is that MM_DL0 widget is created 2 times. One time in soc_probe_link_dais and one time in soc_probe_platform.
This bug has been fixed in later kernel. Can you cherry pick commit ae10e7e8f1c9d021c8daca750d743cc3baa12e6d from 3.12.
Thanks
Liam