diff mbox series

ASoC: soc-topology.c: dai_link->platform again

Message ID 87v8ikcsr5.wl-kuninori.morimoto.gx@renesas.com
State Accepted
Commit ef36ca92754b4e50289aee99453e69c6ff13edad
Headers show
Series ASoC: soc-topology.c: dai_link->platform again | expand

Commit Message

Kuninori Morimoto March 29, 2023, 12:21 a.m. UTC
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

On SOF, many topology is assuming dai_link->platform exists, and is
allowed to be overwritten on each link_load().
This patch restore the removed dai_link->platform for SOF, and add
the comment.

Fixes: e7098ba9b378 ("ASoC: soc-topology.c: remove unnecessary dai_link->platform")
Reported-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/87jzz7jczp.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/soc-topology.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index be9849749713..d0aca6b9058b 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -1685,8 +1685,8 @@  static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
 	struct snd_soc_dai_link_component *dlc;
 	int ret;
 
-	/* link + cpu + codec */
-	link = devm_kzalloc(tplg->dev, sizeof(*link) + (2 * sizeof(*dlc)), GFP_KERNEL);
+	/* link + cpu + codec + platform */
+	link = devm_kzalloc(tplg->dev, sizeof(*link) + (3 * sizeof(*dlc)), GFP_KERNEL);
 	if (link == NULL)
 		return -ENOMEM;
 
@@ -1724,6 +1724,14 @@  static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
 	link->codecs->name = "snd-soc-dummy";
 	link->codecs->dai_name = "snd-soc-dummy-dai";
 
+	/*
+	 * Many topology is assuming link has Platform.
+	 * This might be overwritten at soc_tplg_dai_link_load().
+	 */
+	link->platforms	= &dlc[2];
+	link->platforms->name = "snd-soc-dummy";
+	link->num_platforms = 1;
+
 	/* enable DPCM */
 	link->dynamic = 1;
 	link->ignore_pmdown_time = 1;