On Tue, Oct 15, 2019 at 4:15 AM Kuninori Morimoto kuninori.morimoto.gx@renesas.com wrote:
Hi Daniel
» /* BE is dummy */ » » codecs->of_node»» = NULL; » » codecs->dai_name» = "snd-soc-dummy-dai"; » » codecs->name» » = "snd-soc-dummy";
» » /* FE settings */ » » dai_link->dynamic» » = 1; » » dai_link->dpcm_merged_format» = 1;
Ahh, indeed... it is wrong comment. It should be /* Codec is dummy */ here. I will post fixup patch, soon.
Current simple-card is assuming
FE: CPU-dummy BE: dummy-Codec
asoc_simple_canonicalize_platform function where it does say:
» * DPCM BE can be no platform. » * Alloced memory will be waste, but not leak. » */ » if (!dai_link->platforms->of_node) » » dai_link->num_platforms = 0;
But I do want to create a BE with a platform. So, should I try to revert the following
I see. I'm not using but someone added asoc_simple_parse_platform(). Maybe it can help you (?), but it is not called/used under DPCM case. If you can support it under DPCM, asoc_simple_canonicalize_platform() is no longer your issue ?
Yes, this would definitely help. Now I'm trying to figure out an acceptable way to create just one link with:
FE: CPU-dummy BE: dummy-Codec
Or even better just one:
BE: dummy-Codec.
Both audio-graph-card.c and simple-card.c deal with DPCM only with this conditions:
» » » /* » » » * It is DPCM » » » * if Codec port has many endpoints, » » » * or has convert-xxx property » » » */
or
» » » if (dpcm_selectable && » » » (num > 2 || » » » adata.convert_rate || adata.convert_channels))