[alsa-devel] Question about FE & BE DPCM

Sridharan, Ranjani ranjani.sridharan at intel.com
Fri Oct 11 23:56:54 CEST 2019


On Fri, Oct 11, 2019 at 2:05 PM Daniel Baluta <daniel.baluta at gmail.com>
wrote:

> Hi Morimoto-san,
>
> I'm really confused on what exactly is Front End and Back End.
>
> Is FE a DAI or a DAI link or part of a DAI link?
>
> In simple-card.c there is simple_dai_link_of_dpcm function:
>
> struct snd_soc_dai_link_component *codecs = dai_link->codecs;
>
> »       /* 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;
>
> So, from here it looks like BE/FE are components being part of the same
> link.
>
> Another thing is:
>
> 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
> patch:
>
> commit 794fcee8da3c0c8a01b08ecad1c181cb0a622868
> Author: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> Date:   Wed Jul 10 17:01:12 2019 +0900
>
>     ASoC: simple-card-utils: care no Platform for DPCM
>
>     commit 34614739988ad ("ASoC: soc-core: support dai_link with
>     platforms_num != 1") supports multi Platform, and
>     commit 9f3eb91753451 ("ASoC: simple-card-utils: consider CPU-Platform
>     possibility") removed no Platform from simple-card.
>
>     Multi Platform is now checking both Platform name/of_node are NULL
> case.
>     But in normal case, DPCM be doesn't have Platform.
>
>
>
> Basically, what I want to do is: after the DAI link is created to call:
> snd_soc_fixup_dai_links_platform_name function to set a proper name
> for BE platform.
>
> The problem is that above mentioned patch sets dai_link->num_platforms = 0;
> so even the name is set the platform component is not probed.


Hi Daniel,
Have you looked into how SOF does it at the time the dai_link elem in
topology is parsed?
https://github.com/thesofproject/linux/blob/5edcfdf3907354de7a260a451ba611f22c5e6a07/sound/soc/sof/topology.c#L2926

Is this what you are asking about?

Thanks,
Ranjani

>
> thanks,
> Daniel.
>


More information about the Alsa-devel mailing list