alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform
@ 2023-03-23 22:53 Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 1/4] ASoC: fsl: " Kuninori Morimoto
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-23 22:53 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


Hi Mark

Current ASoC will ignore already connected component when binding Card.
This will happen mainly "CPU Component" is handled as "Platform Component",
which was needed before.

	static int snd_soc_rtd_add_component(...)
	{
		...
		for_each_rtd_components(rtd, i, comp) {
			/* already connected */
			if (comp == component)
				return 0;
		}
		...
	}

Some drivers are still using CPU or Dummy Component as Platform Component,
but these are no meaning or ignored.
This patch-set remove these.

v1 -> v2

	- remove the patch for simple-card
	- remove extra simple-card patch
	- add Acked-by for atmel patch

Link: https://lore.kernel.org/r/878rfyjz4p.wl-kuninori.morimoto.gx@renesas.com

Kuninori Morimoto (4):
  ASoC: fsl: remove unnecessary dai_link->platform
  ASoC: atmel: remove unnecessary dai_link->platform
  ASoC: ti: remove unnecessary dai_link->platform
  ASoC: soc-topology.c: remove unnecessary dai_link->platform

 sound/soc/atmel/atmel-classd.c |  5 +----
 sound/soc/atmel/atmel-pdmic.c  |  5 +----
 sound/soc/fsl/imx-audmix.c     | 14 ++++----------
 sound/soc/fsl/imx-spdif.c      |  5 +----
 sound/soc/soc-topology.c       |  8 ++------
 sound/soc/ti/omap-hdmi.c       |  5 +----
 6 files changed, 10 insertions(+), 32 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/4] ASoC: fsl: remove unnecessary dai_link->platform
  2023-03-23 22:53 [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform Kuninori Morimoto
@ 2023-03-23 22:53 ` Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 2/4] ASoC: atmel: " Kuninori Morimoto
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-23 22:53 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

dai_link->platform is no longer needed if CPU and Platform are
same Component. This patch removes unnecessary dai_link->platform.
Dummy Platform is also not necessary.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/fsl/imx-audmix.c | 14 ++++----------
 sound/soc/fsl/imx-spdif.c  |  5 +----
 2 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/sound/soc/fsl/imx-audmix.c b/sound/soc/fsl/imx-audmix.c
index 1292a845c424..2c57fe9d2d08 100644
--- a/sound/soc/fsl/imx-audmix.c
+++ b/sound/soc/fsl/imx-audmix.c
@@ -207,8 +207,8 @@ static int imx_audmix_probe(struct platform_device *pdev)
 	for (i = 0; i < num_dai; i++) {
 		struct snd_soc_dai_link_component *dlc;
 
-		/* for CPU/Codec/Platform x 2 */
-		dlc = devm_kcalloc(&pdev->dev, 6, sizeof(*dlc), GFP_KERNEL);
+		/* for CPU/Codec x 2 */
+		dlc = devm_kcalloc(&pdev->dev, 4, sizeof(*dlc), GFP_KERNEL);
 		if (!dlc)
 			return -ENOMEM;
 
@@ -240,11 +240,9 @@ static int imx_audmix_probe(struct platform_device *pdev)
 
 		priv->dai[i].cpus = &dlc[0];
 		priv->dai[i].codecs = &dlc[1];
-		priv->dai[i].platforms = &dlc[2];
 
 		priv->dai[i].num_cpus = 1;
 		priv->dai[i].num_codecs = 1;
-		priv->dai[i].num_platforms = 1;
 
 		priv->dai[i].name = dai_name;
 		priv->dai[i].stream_name = "HiFi-AUDMIX-FE";
@@ -252,7 +250,6 @@ static int imx_audmix_probe(struct platform_device *pdev)
 		priv->dai[i].codecs->name = "snd-soc-dummy";
 		priv->dai[i].cpus->of_node = args.np;
 		priv->dai[i].cpus->dai_name = dev_name(&cpu_pdev->dev);
-		priv->dai[i].platforms->of_node = args.np;
 		priv->dai[i].dynamic = 1;
 		priv->dai[i].dpcm_playback = 1;
 		priv->dai[i].dpcm_capture = (i == 0 ? 1 : 0);
@@ -267,20 +264,17 @@ static int imx_audmix_probe(struct platform_device *pdev)
 		be_cp = devm_kasprintf(&pdev->dev, GFP_KERNEL,
 				       "AUDMIX-Capture-%d", i);
 
-		priv->dai[num_dai + i].cpus = &dlc[3];
-		priv->dai[num_dai + i].codecs = &dlc[4];
-		priv->dai[num_dai + i].platforms = &dlc[5];
+		priv->dai[num_dai + i].cpus = &dlc[2];
+		priv->dai[num_dai + i].codecs = &dlc[3];
 
 		priv->dai[num_dai + i].num_cpus = 1;
 		priv->dai[num_dai + i].num_codecs = 1;
-		priv->dai[num_dai + i].num_platforms = 1;
 
 		priv->dai[num_dai + i].name = be_name;
 		priv->dai[num_dai + i].codecs->dai_name = "snd-soc-dummy-dai";
 		priv->dai[num_dai + i].codecs->name = "snd-soc-dummy";
 		priv->dai[num_dai + i].cpus->of_node = audmix_np;
 		priv->dai[num_dai + i].cpus->dai_name = be_name;
-		priv->dai[num_dai + i].platforms->name = "snd-soc-dummy";
 		priv->dai[num_dai + i].no_pcm = 1;
 		priv->dai[num_dai + i].dpcm_playback = 1;
 		priv->dai[num_dai + i].dpcm_capture  = 1;
diff --git a/sound/soc/fsl/imx-spdif.c b/sound/soc/fsl/imx-spdif.c
index 4446fba755b9..114b49660193 100644
--- a/sound/soc/fsl/imx-spdif.c
+++ b/sound/soc/fsl/imx-spdif.c
@@ -26,7 +26,7 @@ static int imx_spdif_audio_probe(struct platform_device *pdev)
 	}
 
 	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
-	comp = devm_kzalloc(&pdev->dev, 3 * sizeof(*comp), GFP_KERNEL);
+	comp = devm_kzalloc(&pdev->dev, 2 * sizeof(*comp), GFP_KERNEL);
 	if (!data || !comp) {
 		ret = -ENOMEM;
 		goto end;
@@ -34,18 +34,15 @@ static int imx_spdif_audio_probe(struct platform_device *pdev)
 
 	data->dai.cpus		= &comp[0];
 	data->dai.codecs	= &comp[1];
-	data->dai.platforms	= &comp[2];
 
 	data->dai.num_cpus	= 1;
 	data->dai.num_codecs	= 1;
-	data->dai.num_platforms	= 1;
 
 	data->dai.name = "S/PDIF PCM";
 	data->dai.stream_name = "S/PDIF PCM";
 	data->dai.codecs->dai_name = "snd-soc-dummy-dai";
 	data->dai.codecs->name = "snd-soc-dummy";
 	data->dai.cpus->of_node = spdif_np;
-	data->dai.platforms->of_node = spdif_np;
 	data->dai.playback_only = true;
 	data->dai.capture_only = true;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/4] ASoC: atmel: remove unnecessary dai_link->platform
  2023-03-23 22:53 [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 1/4] ASoC: fsl: " Kuninori Morimoto
@ 2023-03-23 22:53 ` Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 3/4] ASoC: ti: " Kuninori Morimoto
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-23 22:53 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

dai_link->platform is no longer needed if CPU and Platform are
same Component. This patch removes unnecessary dai_link->platform.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 sound/soc/atmel/atmel-classd.c | 5 +----
 sound/soc/atmel/atmel-pdmic.c  | 5 +----
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/sound/soc/atmel/atmel-classd.c b/sound/soc/atmel/atmel-classd.c
index 9883e6867fd1..007ab746973d 100644
--- a/sound/soc/atmel/atmel-classd.c
+++ b/sound/soc/atmel/atmel-classd.c
@@ -473,24 +473,21 @@ static int atmel_classd_asoc_card_init(struct device *dev,
 	if (!dai_link)
 		return -ENOMEM;
 
-	comp = devm_kzalloc(dev, 3 * sizeof(*comp), GFP_KERNEL);
+	comp = devm_kzalloc(dev, 2 * sizeof(*comp), GFP_KERNEL);
 	if (!comp)
 		return -ENOMEM;
 
 	dai_link->cpus		= &comp[0];
 	dai_link->codecs	= &comp[1];
-	dai_link->platforms	= &comp[2];
 
 	dai_link->num_cpus	= 1;
 	dai_link->num_codecs	= 1;
-	dai_link->num_platforms	= 1;
 
 	dai_link->name			= "CLASSD";
 	dai_link->stream_name		= "CLASSD PCM";
 	dai_link->codecs->dai_name	= "snd-soc-dummy-dai";
 	dai_link->cpus->dai_name	= dev_name(dev);
 	dai_link->codecs->name		= "snd-soc-dummy";
-	dai_link->platforms->name	= dev_name(dev);
 
 	card->dai_link	= dai_link;
 	card->num_links	= 1;
diff --git a/sound/soc/atmel/atmel-pdmic.c b/sound/soc/atmel/atmel-pdmic.c
index 12cd40b15644..00c7b3a34ef5 100644
--- a/sound/soc/atmel/atmel-pdmic.c
+++ b/sound/soc/atmel/atmel-pdmic.c
@@ -496,24 +496,21 @@ static int atmel_pdmic_asoc_card_init(struct device *dev,
 	if (!dai_link)
 		return -ENOMEM;
 
-	comp = devm_kzalloc(dev, 3 * sizeof(*comp), GFP_KERNEL);
+	comp = devm_kzalloc(dev, 2 * sizeof(*comp), GFP_KERNEL);
 	if (!comp)
 		return -ENOMEM;
 
 	dai_link->cpus		= &comp[0];
 	dai_link->codecs	= &comp[1];
-	dai_link->platforms	= &comp[2];
 
 	dai_link->num_cpus	= 1;
 	dai_link->num_codecs	= 1;
-	dai_link->num_platforms	= 1;
 
 	dai_link->name			= "PDMIC";
 	dai_link->stream_name		= "PDMIC PCM";
 	dai_link->codecs->dai_name	= "snd-soc-dummy-dai";
 	dai_link->cpus->dai_name	= dev_name(dev);
 	dai_link->codecs->name		= "snd-soc-dummy";
-	dai_link->platforms->name	= dev_name(dev);
 
 	card->dai_link	= dai_link;
 	card->num_links	= 1;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/4] ASoC: ti: remove unnecessary dai_link->platform
  2023-03-23 22:53 [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 1/4] ASoC: fsl: " Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 2/4] ASoC: atmel: " Kuninori Morimoto
@ 2023-03-23 22:53 ` Kuninori Morimoto
  2023-03-23 22:53 ` [PATCH v2 4/4] ASoC: soc-topology.c: " Kuninori Morimoto
  2023-03-24 16:37 ` [PATCH v2 0/4] ASoC: " Mark Brown
  4 siblings, 0 replies; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-23 22:53 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

dai_link->platform is no longer needed if CPU and Platform are
same Component. This patch removes unnecessary dai_link->platform.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/ti/omap-hdmi.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/sound/soc/ti/omap-hdmi.c b/sound/soc/ti/omap-hdmi.c
index ad37785e05d8..96c3569d7643 100644
--- a/sound/soc/ti/omap-hdmi.c
+++ b/sound/soc/ti/omap-hdmi.c
@@ -365,20 +365,17 @@ static int omap_hdmi_audio_probe(struct platform_device *pdev)
 	if (!card->dai_link)
 		return -ENOMEM;
 
-	compnent = devm_kzalloc(dev, 3 * sizeof(*compnent), GFP_KERNEL);
+	compnent = devm_kzalloc(dev, 2 * sizeof(*compnent), GFP_KERNEL);
 	if (!compnent)
 		return -ENOMEM;
 	card->dai_link->cpus		= &compnent[0];
 	card->dai_link->num_cpus	= 1;
 	card->dai_link->codecs		= &compnent[1];
 	card->dai_link->num_codecs	= 1;
-	card->dai_link->platforms	= &compnent[2];
-	card->dai_link->num_platforms	= 1;
 
 	card->dai_link->name = card->name;
 	card->dai_link->stream_name = card->name;
 	card->dai_link->cpus->dai_name = dev_name(ad->dssdev);
-	card->dai_link->platforms->name = dev_name(ad->dssdev);
 	card->dai_link->codecs->name = "snd-soc-dummy";
 	card->dai_link->codecs->dai_name = "snd-soc-dummy-dai";
 	card->num_links = 1;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/4] ASoC: soc-topology.c: remove unnecessary dai_link->platform
  2023-03-23 22:53 [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2023-03-23 22:53 ` [PATCH v2 3/4] ASoC: ti: " Kuninori Morimoto
@ 2023-03-23 22:53 ` Kuninori Morimoto
  2023-03-27  7:12   ` Péter Ujfalusi
  2023-03-24 16:37 ` [PATCH v2 0/4] ASoC: " Mark Brown
  4 siblings, 1 reply; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-23 22:53 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

dai_link->platform is no longer needed if CPU and Platform are
same Component. This patch removes unnecessary dai_link->platform.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/soc-topology.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 07421f5d4ebd..7f6424fa59ab 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 + platform */
-	link = devm_kzalloc(tplg->dev, sizeof(*link) + (3 * sizeof(*dlc)), GFP_KERNEL);
+	/* link + cpu + codec */
+	link = devm_kzalloc(tplg->dev, sizeof(*link) + (2 * sizeof(*dlc)), GFP_KERNEL);
 	if (link == NULL)
 		return -ENOMEM;
 
@@ -1694,11 +1694,9 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
 
 	link->cpus	= &dlc[0];
 	link->codecs	= &dlc[1];
-	link->platforms	= &dlc[2];
 
 	link->num_cpus	 = 1;
 	link->num_codecs = 1;
-	link->num_platforms = 1;
 
 	link->dobj.index = tplg->index;
 	link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
@@ -1726,8 +1724,6 @@ 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";
 
-	link->platforms->name = "snd-soc-dummy";
-
 	/* enable DPCM */
 	link->dynamic = 1;
 	link->ignore_pmdown_time = 1;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform
  2023-03-23 22:53 [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform Kuninori Morimoto
                   ` (3 preceding siblings ...)
  2023-03-23 22:53 ` [PATCH v2 4/4] ASoC: soc-topology.c: " Kuninori Morimoto
@ 2023-03-24 16:37 ` Mark Brown
  4 siblings, 0 replies; 10+ messages in thread
From: Mark Brown @ 2023-03-24 16:37 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA

On Thu, 23 Mar 2023 22:53:12 +0000, Kuninori Morimoto wrote:
> Current ASoC will ignore already connected component when binding Card.
> This will happen mainly "CPU Component" is handled as "Platform Component",
> which was needed before.
> 
> 	static int snd_soc_rtd_add_component(...)
> 	{
> 		...
> 		for_each_rtd_components(rtd, i, comp) {
> 			/* already connected */
> 			if (comp == component)
> 				return 0;
> 		}
> 		...
> 	}
> 
> [...]

Applied to

   broonie/sound.git for-next

Thanks!

[1/4] ASoC: fsl: remove unnecessary dai_link->platform
      commit: 33683cbf49b5412061cb1e4c876063fdef86def4
[2/4] ASoC: atmel: remove unnecessary dai_link->platform
      commit: 2f650f87c03cab72e751fc739f42a1e257bdc6b9
[3/4] ASoC: ti: remove unnecessary dai_link->platform
      commit: 3b0db249cf8fe0027e2a4161d27a8566d82fcd80
[4/4] ASoC: soc-topology.c: remove unnecessary dai_link->platform
      commit: e7098ba9b3785d626326040d300f95fec79aa765

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] ASoC: soc-topology.c: remove unnecessary dai_link->platform
  2023-03-23 22:53 ` [PATCH v2 4/4] ASoC: soc-topology.c: " Kuninori Morimoto
@ 2023-03-27  7:12   ` Péter Ujfalusi
  2023-03-27 23:20     ` Kuninori Morimoto
  0 siblings, 1 reply; 10+ messages in thread
From: Péter Ujfalusi @ 2023-03-27  7:12 UTC (permalink / raw)
  To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA

Morimoto-san,

On 24/03/2023 00:53, Kuninori Morimoto wrote:
> dai_link->platform is no longer needed if CPU and Platform are
> same Component. This patch removes unnecessary dai_link->platform.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  sound/soc/soc-topology.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
> index 07421f5d4ebd..7f6424fa59ab 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 + platform */
> -	link = devm_kzalloc(tplg->dev, sizeof(*link) + (3 * sizeof(*dlc)), GFP_KERNEL);
> +	/* link + cpu + codec */
> +	link = devm_kzalloc(tplg->dev, sizeof(*link) + (2 * sizeof(*dlc)), GFP_KERNEL);
>  	if (link == NULL)
>  		return -ENOMEM;
>  
> @@ -1694,11 +1694,9 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
>  
>  	link->cpus	= &dlc[0];
>  	link->codecs	= &dlc[1];
> -	link->platforms	= &dlc[2];
>  
>  	link->num_cpus	 = 1;
>  	link->num_codecs = 1;
> -	link->num_platforms = 1;
>  
>  	link->dobj.index = tplg->index;
>  	link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
> @@ -1726,8 +1724,6 @@ 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";
>  
> -	link->platforms->name = "snd-soc-dummy";
> -

I think this patch is incorrect and should be reverted (I have received
a note from a SOF developer).
The link->cpus->dai_name is not necessarily "snd-soc-dummy", it is set
earlier:
if (strlen(pcm->dai_name)) {
	link->cpus->dai_name = devm_kstrdup(tplg->dev, pcm->dai_name,
					    GFP_KERNEL);
	if (!link->cpus->dai_name) {
		ret = -ENOMEM;
		goto err;
	}
}

We cannot be sure that it is the same component, in fact it is most like
not.

>  	/* enable DPCM */
>  	link->dynamic = 1;
>  	link->ignore_pmdown_time = 1;

-- 
Péter

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] ASoC: soc-topology.c: remove unnecessary dai_link->platform
  2023-03-27  7:12   ` Péter Ujfalusi
@ 2023-03-27 23:20     ` Kuninori Morimoto
  2023-03-28  6:49       ` Péter Ujfalusi
  0 siblings, 1 reply; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-27 23:20 UTC (permalink / raw)
  To: Péter Ujfalusi; +Cc: Mark Brown, Linux-ALSA


Hi Peter

Thank you for your feedback.

> > @@ -1694,11 +1694,9 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
> >  
> >  	link->cpus	= &dlc[0];
> >  	link->codecs	= &dlc[1];
> > -	link->platforms	= &dlc[2];
> >  
> >  	link->num_cpus	 = 1;
> >  	link->num_codecs = 1;
> > -	link->num_platforms = 1;
> >  
> >  	link->dobj.index = tplg->index;
> >  	link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
> > @@ -1726,8 +1724,6 @@ 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";
> >  
> > -	link->platforms->name = "snd-soc-dummy";
> > -
> 
> I think this patch is incorrect and should be reverted (I have received
> a note from a SOF developer).
> The link->cpus->dai_name is not necessarily "snd-soc-dummy", it is set
> earlier:
> if (strlen(pcm->dai_name)) {
> 	link->cpus->dai_name = devm_kstrdup(tplg->dev, pcm->dai_name,
> 					    GFP_KERNEL);
> 	if (!link->cpus->dai_name) {
> 		ret = -ENOMEM;
> 		goto err;
> 	}
> }
> 
> We cannot be sure that it is the same component, in fact it is most like
> not.

But sorry, I don't understand the point.
This patch removed dummy PLATFORM which is not necessary I think,
but you are talking about CPU.
Could you please explain more detail what is the problem ?


Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] ASoC: soc-topology.c: remove unnecessary dai_link->platform
  2023-03-27 23:20     ` Kuninori Morimoto
@ 2023-03-28  6:49       ` Péter Ujfalusi
  2023-03-29  0:20         ` Kuninori Morimoto
  0 siblings, 1 reply; 10+ messages in thread
From: Péter Ujfalusi @ 2023-03-28  6:49 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Mark Brown, Linux-ALSA

Hi Morimoto-san,

On 28/03/2023 02:20, Kuninori Morimoto wrote:
> 
> Hi Peter
> 
> Thank you for your feedback.
> 
>>> @@ -1694,11 +1694,9 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
>>>  
>>>  	link->cpus	= &dlc[0];
>>>  	link->codecs	= &dlc[1];
>>> -	link->platforms	= &dlc[2];
>>>  
>>>  	link->num_cpus	 = 1;
>>>  	link->num_codecs = 1;
>>> -	link->num_platforms = 1;
>>>  
>>>  	link->dobj.index = tplg->index;
>>>  	link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
>>> @@ -1726,8 +1724,6 @@ 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";
>>>  
>>> -	link->platforms->name = "snd-soc-dummy";
>>> -
>>
>> I think this patch is incorrect and should be reverted (I have received
>> a note from a SOF developer).
>> The link->cpus->dai_name is not necessarily "snd-soc-dummy", it is set
>> earlier:
>> if (strlen(pcm->dai_name)) {
>> 	link->cpus->dai_name = devm_kstrdup(tplg->dev, pcm->dai_name,
>> 					    GFP_KERNEL);
>> 	if (!link->cpus->dai_name) {
>> 		ret = -ENOMEM;
>> 		goto err;
>> 	}
>> }
>>
>> We cannot be sure that it is the same component, in fact it is most like
>> not.
> 
> But sorry, I don't understand the point.
> This patch removed dummy PLATFORM which is not necessary I think,
> but you are talking about CPU.

The patch removes the dummy platform with a justification that if the
CPU name and the platform name is identical, then the platform name does
not need to be set.

But in this case the CPU name and the platform name is _not_ identical,
they are different and we need to have the dummy platform on the FE side
unconditionally.

> Could you please explain more detail what is the problem ?

snd_sof:sof_dai_load: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load
pcm HDMI1
sof-audio-pci-intel-tgl 0000:00:1f.3: error: no platforms
skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: FE link loading failed
skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: topology: could not load
header: -22
sof-audio-pci-intel-tgl 0000:00:1f.3: error: tplg component load failed -22
sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to load DSP topology -22
sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at
snd_soc_component_probe on 0000:00:1f.3: -22
skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: failed to instantiate
card -22
skl_hda_dsp_generic: probe of skl_hda_dsp_generic failed with error -22

which should look like this ideally:

snd_sof:sof_dai_load: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load
pcm HDMI1
snd_sof:sof_dai_load: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load
pcm HDMI2
snd_sof:sof_dai_load: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load
pcm HDMI3
snd_sof:sof_dai_load: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load
pcm HDA Analog
snd_sof:sof_dai_load: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: load
pcm DeepBuffer


> 
> 
> Thank you for your help !!
> 
> Best regards
> ---
> Kuninori Morimoto

-- 
Péter

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] ASoC: soc-topology.c: remove unnecessary dai_link->platform
  2023-03-28  6:49       ` Péter Ujfalusi
@ 2023-03-29  0:20         ` Kuninori Morimoto
  0 siblings, 0 replies; 10+ messages in thread
From: Kuninori Morimoto @ 2023-03-29  0:20 UTC (permalink / raw)
  To: Péter Ujfalusi; +Cc: Mark Brown, Linux-ALSA


Hi Peter

Thank you for your feedback

> But in this case the CPU name and the platform name is _not_ identical,
> they are different and we need to have the dummy platform on the FE side
> unconditionally.
(snip)
> sof-audio-pci-intel-tgl 0000:00:1f.3: error: no platforms

Oh, I didn't know that platform is needed on SOF.
Thank you for explaining detail, now I could understand your issue.

In my quick check, each SOF topology might overwrites link->platforms->name
and/or link->platforms->of_node...
I'm not 100% sure about SOF, but I looks strange for me...

I'm not sure which one is better idea, soc-topology.c has dummy platforms
and allow to be overwritten, or each topology alloc own platform if needed.

But I will post the fixup/revert patch for it. Could you please check it ?

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-03-29  0:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-23 22:53 [PATCH v2 0/4] ASoC: remove unnecessary dai_link->platform Kuninori Morimoto
2023-03-23 22:53 ` [PATCH v2 1/4] ASoC: fsl: " Kuninori Morimoto
2023-03-23 22:53 ` [PATCH v2 2/4] ASoC: atmel: " Kuninori Morimoto
2023-03-23 22:53 ` [PATCH v2 3/4] ASoC: ti: " Kuninori Morimoto
2023-03-23 22:53 ` [PATCH v2 4/4] ASoC: soc-topology.c: " Kuninori Morimoto
2023-03-27  7:12   ` Péter Ujfalusi
2023-03-27 23:20     ` Kuninori Morimoto
2023-03-28  6:49       ` Péter Ujfalusi
2023-03-29  0:20         ` Kuninori Morimoto
2023-03-24 16:37 ` [PATCH v2 0/4] ASoC: " Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).