[PATCH] ASoC: audio-graph: respawn Platform Support
Olivier MOYSAN
olivier.moysan at foss.st.com
Wed Sep 1 10:36:20 CEST 2021
Thanks Kuninori
On 8/30/21 2:44 AM, Kuninori Morimoto wrote:
>
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> commit 63f2f9cceb09f8 ("ASoC: audio-graph: remove Platform support")
> removed Platform support from audio-graph, because it doesn't have
> "plat" support on DT (simple-card has).
> But, Platform support is needed if user is using
> snd_dmaengine_pcm_register() which adds generic DMA as Platform.
> And this Platform dev is using CPU dev.
>
> Without this patch, at least STM32MP15 audio sound card is no more
> functional (v5.13 or later). This patch respawn Platform Support on
> audio-graph again.
>
> Reported-by: Olivier MOYSAN <olivier.moysan at foss.st.com>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com
Tested-by: Olivier MOYSAN <olivier.moysan at foss.st.com>
> ---
> This patch needs Olivier's Tested-by
>
> sound/soc/generic/audio-graph-card.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
> index 5e71382467e8..546f6fd0609e 100644
> --- a/sound/soc/generic/audio-graph-card.c
> +++ b/sound/soc/generic/audio-graph-card.c
> @@ -285,6 +285,7 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
> if (li->cpu) {
> struct snd_soc_card *card = simple_priv_to_card(priv);
> struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0);
> + struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
> int is_single_links = 0;
>
> /* Codec is dummy */
> @@ -313,6 +314,7 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
> dai_link->no_pcm = 1;
>
> asoc_simple_canonicalize_cpu(cpus, is_single_links);
> + asoc_simple_canonicalize_platform(platforms, cpus);
> } else {
> struct snd_soc_codec_conf *cconf = simple_props_to_codec_conf(dai_props, 0);
> struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0);
> @@ -366,6 +368,7 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
> struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
> struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0);
> struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0);
> + struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
> char dai_name[64];
> int ret, is_single_links = 0;
>
> @@ -383,6 +386,7 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
> "%s-%s", cpus->dai_name, codecs->dai_name);
>
> asoc_simple_canonicalize_cpu(cpus, is_single_links);
> + asoc_simple_canonicalize_platform(platforms, cpus);
>
> ret = graph_link_init(priv, cpu_ep, codec_ep, li, dai_name);
> if (ret < 0)
> @@ -608,6 +612,7 @@ static int graph_count_noml(struct asoc_simple_priv *priv,
>
> li->num[li->link].cpus = 1;
> li->num[li->link].codecs = 1;
> + li->num[li->link].platforms = 1;
>
> li->link += 1; /* 1xCPU-Codec */
>
> @@ -630,6 +635,7 @@ static int graph_count_dpcm(struct asoc_simple_priv *priv,
>
> if (li->cpu) {
> li->num[li->link].cpus = 1;
> + li->num[li->link].platforms = 1;
>
> li->link++; /* 1xCPU-dummy */
> } else {
>
More information about the Alsa-devel
mailing list