[alsa-devel] Question about FE & BE DPCM
Daniel Baluta
daniel.baluta at gmail.com
Fri Oct 11 23:05:03 CEST 2019
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.
thanks,
Daniel.
More information about the Alsa-devel
mailing list