All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] ASoC: audio-graph: cleanups
@ 2021-04-19  2:01 Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 1/6] ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c Kuninori Morimoto
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:01 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


Hi Mark

These patches cleanups audio-graph.
This is part of prepare for new audio-graph-card2.

Kuninori Morimoto (6):
  ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c
  ASoC: audio-graph: move audio_graph_remove() to simple-card-utils.c
  ASoC: audio-graph: check ports if exists
  ASoC: audio-graph: remove "audio-graph-card," preix support
  ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs()
  ASoC: audio-graph: remove Platform support

 include/sound/graph_card.h               |  4 --
 include/sound/simple_card_utils.h        |  3 ++
 sound/soc/generic/audio-graph-card.c     | 52 ++++--------------------
 sound/soc/generic/simple-card-utils.c    | 25 ++++++++++++
 sound/soc/generic/simple-card.c          |  7 ----
 sound/soc/tegra/tegra_audio_graph_card.c |  4 +-
 6 files changed, 38 insertions(+), 57 deletions(-)

-- 
2.25.1





Thank you for your help !!

Best regards
---
Kuninori Morimoto

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

* [PATCH 1/6] ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
@ 2021-04-19  2:02 ` Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 2/6] ASoC: audio-graph: move audio_graph_remove() " Kuninori Morimoto
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:02 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

audio-graph-card2 can reuse audio_graph_card_probe().
This patch moves it to simple-card-utils.c.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/graph_card.h               |  2 --
 include/sound/simple_card_utils.h        |  3 +++
 sound/soc/generic/audio-graph-card.c     | 19 +------------------
 sound/soc/generic/simple-card-utils.c    | 17 +++++++++++++++++
 sound/soc/tegra/tegra_audio_graph_card.c |  2 +-
 5 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/include/sound/graph_card.h b/include/sound/graph_card.h
index 013784467bec..9c2feb792742 100644
--- a/include/sound/graph_card.h
+++ b/include/sound/graph_card.h
@@ -9,8 +9,6 @@
 
 #include <sound/simple_card_utils.h>
 
-int audio_graph_card_probe(struct snd_soc_card *card);
-
 int audio_graph_parse_of(struct asoc_simple_priv *priv, struct device *dev);
 
 int audio_graph_remove(struct platform_device *pdev);
diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index e318a2d4ac44..656c7e30b6e4 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -178,6 +178,9 @@ int asoc_simple_init_jack(struct snd_soc_card *card,
 int asoc_simple_init_priv(struct asoc_simple_priv *priv,
 			       struct link_info *li);
 
+int asoc_graph_card_probe(struct snd_soc_card *card);
+
+
 #ifdef DEBUG
 static inline void asoc_simple_debug_dai(struct asoc_simple_priv *priv,
 					 char *name,
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index c7369beee805..2d004a980f0c 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -717,23 +717,6 @@ static int graph_get_dais_count(struct asoc_simple_priv *priv,
 				   graph_count_dpcm);
 }
 
-int audio_graph_card_probe(struct snd_soc_card *card)
-{
-	struct asoc_simple_priv *priv = snd_soc_card_get_drvdata(card);
-	int ret;
-
-	ret = asoc_simple_init_hp(card, &priv->hp_jack, NULL);
-	if (ret < 0)
-		return ret;
-
-	ret = asoc_simple_init_mic(card, &priv->mic_jack, NULL);
-	if (ret < 0)
-		return ret;
-
-	return 0;
-}
-EXPORT_SYMBOL_GPL(audio_graph_card_probe);
-
 static int graph_probe(struct platform_device *pdev)
 {
 	struct asoc_simple_priv *priv;
@@ -748,7 +731,7 @@ static int graph_probe(struct platform_device *pdev)
 	card = simple_priv_to_card(priv);
 	card->dapm_widgets	= graph_dapm_widgets;
 	card->num_dapm_widgets	= ARRAY_SIZE(graph_dapm_widgets);
-	card->probe		= audio_graph_card_probe;
+	card->probe		= asoc_graph_card_probe;
 
 	if (of_device_get_match_data(dev))
 		priv->dpcm_selectable = 1;
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index e1b7b30a4c8c..ed2cad6d9ac1 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -740,6 +740,23 @@ int asoc_simple_init_priv(struct asoc_simple_priv *priv,
 }
 EXPORT_SYMBOL_GPL(asoc_simple_init_priv);
 
+int asoc_graph_card_probe(struct snd_soc_card *card)
+{
+	struct asoc_simple_priv *priv = snd_soc_card_get_drvdata(card);
+	int ret;
+
+	ret = asoc_simple_init_hp(card, &priv->hp_jack, NULL);
+	if (ret < 0)
+		return ret;
+
+	ret = asoc_simple_init_mic(card, &priv->mic_jack, NULL);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(asoc_graph_card_probe);
+
 /* Module information */
 MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>");
 MODULE_DESCRIPTION("ALSA SoC Simple Card Utils");
diff --git a/sound/soc/tegra/tegra_audio_graph_card.c b/sound/soc/tegra/tegra_audio_graph_card.c
index 47b319504c8c..35d008b5d373 100644
--- a/sound/soc/tegra/tegra_audio_graph_card.c
+++ b/sound/soc/tegra/tegra_audio_graph_card.c
@@ -184,7 +184,7 @@ static int tegra_audio_graph_card_probe(struct snd_soc_card *card)
 		return PTR_ERR(priv->clk_plla_out0);
 	}
 
-	return audio_graph_card_probe(card);
+	return asoc_graph_card_probe(card);
 }
 
 static int tegra_audio_graph_probe(struct platform_device *pdev)
-- 
2.25.1


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

* [PATCH 2/6] ASoC: audio-graph: move audio_graph_remove() to simple-card-utils.c
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 1/6] ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c Kuninori Morimoto
@ 2021-04-19  2:02 ` Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 3/6] ASoC: audio-graph: check ports if exists Kuninori Morimoto
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:02 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

audio-graph-card2 can reuse  audio_graph_remove() / asoc_simple_remove().
This patch moves it to simple-card-utils.c.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/graph_card.h               |  2 --
 include/sound/simple_card_utils.h        |  2 +-
 sound/soc/generic/audio-graph-card.c     | 10 +---------
 sound/soc/generic/simple-card-utils.c    |  8 ++++++++
 sound/soc/generic/simple-card.c          |  7 -------
 sound/soc/tegra/tegra_audio_graph_card.c |  2 +-
 6 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/include/sound/graph_card.h b/include/sound/graph_card.h
index 9c2feb792742..6f10bfb0d5ee 100644
--- a/include/sound/graph_card.h
+++ b/include/sound/graph_card.h
@@ -11,6 +11,4 @@
 
 int audio_graph_parse_of(struct asoc_simple_priv *priv, struct device *dev);
 
-int audio_graph_remove(struct platform_device *pdev);
-
 #endif /* __GRAPH_CARD_H */
diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index 656c7e30b6e4..51b3b485a92e 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -177,10 +177,10 @@ int asoc_simple_init_jack(struct snd_soc_card *card,
 			       int is_hp, char *prefix, char *pin);
 int asoc_simple_init_priv(struct asoc_simple_priv *priv,
 			       struct link_info *li);
+int asoc_simple_remove(struct platform_device *pdev);
 
 int asoc_graph_card_probe(struct snd_soc_card *card);
 
-
 #ifdef DEBUG
 static inline void asoc_simple_debug_dai(struct asoc_simple_priv *priv,
 					 char *name,
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 2d004a980f0c..54e8be90b109 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -739,14 +739,6 @@ static int graph_probe(struct platform_device *pdev)
 	return audio_graph_parse_of(priv, dev);
 }
 
-int audio_graph_remove(struct platform_device *pdev)
-{
-	struct snd_soc_card *card = platform_get_drvdata(pdev);
-
-	return asoc_simple_clean_reference(card);
-}
-EXPORT_SYMBOL_GPL(audio_graph_remove);
-
 static const struct of_device_id graph_of_match[] = {
 	{ .compatible = "audio-graph-card", },
 	{ .compatible = "audio-graph-scu-card",
@@ -762,7 +754,7 @@ static struct platform_driver graph_card = {
 		.of_match_table = graph_of_match,
 	},
 	.probe = graph_probe,
-	.remove = audio_graph_remove,
+	.remove = asoc_simple_remove,
 };
 module_platform_driver(graph_card);
 
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index ed2cad6d9ac1..fa1247f0dda1 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -740,6 +740,14 @@ int asoc_simple_init_priv(struct asoc_simple_priv *priv,
 }
 EXPORT_SYMBOL_GPL(asoc_simple_init_priv);
 
+int asoc_simple_remove(struct platform_device *pdev)
+{
+	struct snd_soc_card *card = platform_get_drvdata(pdev);
+
+	return asoc_simple_clean_reference(card);
+}
+EXPORT_SYMBOL_GPL(asoc_simple_remove);
+
 int asoc_graph_card_probe(struct snd_soc_card *card)
 {
 	struct asoc_simple_priv *priv = snd_soc_card_get_drvdata(card);
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 8b9964d25757..ece7dac3e8c5 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -705,13 +705,6 @@ static int asoc_simple_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int asoc_simple_remove(struct platform_device *pdev)
-{
-	struct snd_soc_card *card = platform_get_drvdata(pdev);
-
-	return asoc_simple_clean_reference(card);
-}
-
 static const struct of_device_id simple_of_match[] = {
 	{ .compatible = "simple-audio-card", },
 	{ .compatible = "simple-scu-audio-card",
diff --git a/sound/soc/tegra/tegra_audio_graph_card.c b/sound/soc/tegra/tegra_audio_graph_card.c
index 35d008b5d373..1f2c5018bf5a 100644
--- a/sound/soc/tegra/tegra_audio_graph_card.c
+++ b/sound/soc/tegra/tegra_audio_graph_card.c
@@ -244,7 +244,7 @@ static struct platform_driver tegra_audio_graph_card = {
 		.of_match_table = graph_of_tegra_match,
 	},
 	.probe = tegra_audio_graph_probe,
-	.remove = audio_graph_remove,
+	.remove = asoc_simple_remove,
 };
 module_platform_driver(tegra_audio_graph_card);
 
-- 
2.25.1


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

* [PATCH 3/6] ASoC: audio-graph: check ports if exists
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 1/6] ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 2/6] ASoC: audio-graph: move audio_graph_remove() " Kuninori Morimoto
@ 2021-04-19  2:02 ` Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 4/6] ASoC: audio-graph: remove "audio-graph-card, " preix support Kuninori Morimoto
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:02 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

"endpoint" and "port" are always exists, but there is no guarantee
for "ports". This patch checks "ports" if exists, otherwise,
it might set un-expected settings.

This patch also do align to 100 char in 1 line.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/generic/audio-graph-card.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 54e8be90b109..0006c71f4f69 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -182,7 +182,8 @@ static void graph_parse_convert(struct device *dev,
 
 	asoc_simple_parse_convert(top,   NULL,   adata);
 	asoc_simple_parse_convert(node,  PREFIX, adata);
-	asoc_simple_parse_convert(ports, NULL,   adata);
+	if (of_node_name_eq(ports, "ports"))
+		asoc_simple_parse_convert(ports, NULL, adata);
 	asoc_simple_parse_convert(port,  NULL,   adata);
 	asoc_simple_parse_convert(ep,    NULL,   adata);
 
@@ -200,7 +201,8 @@ static void graph_parse_mclk_fs(struct device_node *top,
 	struct device_node *node	= of_graph_get_port_parent(ep);
 
 	of_property_read_u32(top,	"mclk-fs", &props->mclk_fs);
-	of_property_read_u32(ports,	"mclk-fs", &props->mclk_fs);
+	if (of_node_name_eq(ports, "ports"))
+		of_property_read_u32(ports, "mclk-fs", &props->mclk_fs);
 	of_property_read_u32(port,	"mclk-fs", &props->mclk_fs);
 	of_property_read_u32(ep,	"mclk-fs", &props->mclk_fs);
 
@@ -311,8 +313,8 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
 					      "prefix");
 		snd_soc_of_parse_node_prefix(node, cconf, codecs->of_node,
 					     PREFIX "prefix");
-		snd_soc_of_parse_node_prefix(ports, cconf, codecs->of_node,
-					     "prefix");
+		if (of_node_name_eq(ports, "ports"))
+			snd_soc_of_parse_node_prefix(ports, cconf, codecs->of_node, "prefix");
 		snd_soc_of_parse_node_prefix(port, cconf, codecs->of_node,
 					     "prefix");
 	}
-- 
2.25.1


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

* [PATCH 4/6] ASoC: audio-graph: remove "audio-graph-card, " preix support
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2021-04-19  2:02 ` [PATCH 3/6] ASoC: audio-graph: check ports if exists Kuninori Morimoto
@ 2021-04-19  2:02 ` Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 5/6] ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs() Kuninori Morimoto
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:02 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

No upstream code is using "audio-graph-card," preix,
and Yaml base Document doesn't indicate it.
Let's remove it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/generic/audio-graph-card.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 0006c71f4f69..029611c19c15 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -22,8 +22,6 @@
 
 #define DPCM_SELECTABLE 1
 
-#define PREFIX	"audio-graph-card,"
-
 static int graph_outdrv_event(struct snd_soc_dapm_widget *w,
 			      struct snd_kcontrol *kcontrol,
 			      int event)
@@ -181,7 +179,6 @@ static void graph_parse_convert(struct device *dev,
 	struct device_node *node = of_graph_get_port_parent(ep);
 
 	asoc_simple_parse_convert(top,   NULL,   adata);
-	asoc_simple_parse_convert(node,  PREFIX, adata);
 	if (of_node_name_eq(ports, "ports"))
 		asoc_simple_parse_convert(ports, NULL, adata);
 	asoc_simple_parse_convert(port,  NULL,   adata);
@@ -311,8 +308,6 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
 		/* check "prefix" from top node */
 		snd_soc_of_parse_node_prefix(top, cconf, codecs->of_node,
 					      "prefix");
-		snd_soc_of_parse_node_prefix(node, cconf, codecs->of_node,
-					     PREFIX "prefix");
 		if (of_node_name_eq(ports, "ports"))
 			snd_soc_of_parse_node_prefix(ports, cconf, codecs->of_node, "prefix");
 		snd_soc_of_parse_node_prefix(port, cconf, codecs->of_node,
-- 
2.25.1


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

* [PATCH 5/6] ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs()
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
                   ` (3 preceding siblings ...)
  2021-04-19  2:02 ` [PATCH 4/6] ASoC: audio-graph: remove "audio-graph-card, " preix support Kuninori Morimoto
@ 2021-04-19  2:02 ` Kuninori Morimoto
  2021-04-19  2:02 ` [PATCH 6/6] ASoC: audio-graph: remove Platform support Kuninori Morimoto
  2021-04-20 18:35 ` [PATCH 0/6] ASoC: audio-graph: cleanups Mark Brown
  6 siblings, 0 replies; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:02 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

graph_parse_mclk_fs() has "node", but is not used.
This patch removes unused "node"

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/generic/audio-graph-card.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 029611c19c15..5594eab9902e 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -195,7 +195,6 @@ static void graph_parse_mclk_fs(struct device_node *top,
 {
 	struct device_node *port	= of_get_parent(ep);
 	struct device_node *ports	= of_get_parent(port);
-	struct device_node *node	= of_graph_get_port_parent(ep);
 
 	of_property_read_u32(top,	"mclk-fs", &props->mclk_fs);
 	if (of_node_name_eq(ports, "ports"))
@@ -205,7 +204,6 @@ static void graph_parse_mclk_fs(struct device_node *top,
 
 	of_node_put(port);
 	of_node_put(ports);
-	of_node_put(node);
 }
 
 static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
-- 
2.25.1


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

* [PATCH 6/6] ASoC: audio-graph: remove Platform support
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
                   ` (4 preceding siblings ...)
  2021-04-19  2:02 ` [PATCH 5/6] ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs() Kuninori Morimoto
@ 2021-04-19  2:02 ` Kuninori Morimoto
  2021-08-25  7:18   ` Olivier MOYSAN
  2021-04-20 18:35 ` [PATCH 0/6] ASoC: audio-graph: cleanups Mark Brown
  6 siblings, 1 reply; 11+ messages in thread
From: Kuninori Morimoto @ 2021-04-19  2:02 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

Platform was one of mandatory component on ASoC before,
and audio-graph-card was assuming that CPU and Platform were
same driver.

But it is no longer mandatory on ASoC.
Current ASoC will just ignore if Platform and CPU were same
or doplicated component.

Of course ASoC is supporting Platform, but current
audio-graph-card doesn't support detecting it from DT.

This means current audio-graph-card operation for Platform so far
is 100% useless. This patch removes it.
We can respawn it when we need it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/generic/audio-graph-card.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 5594eab9902e..3c4915d1e528 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -223,7 +223,6 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
 	struct asoc_simple_dai *dai;
 	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);
 	int ret;
 
 	port	= of_get_parent(ep);
@@ -275,7 +274,6 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
 
 		/* card->num_links includes Codec */
 		asoc_simple_canonicalize_cpu(cpus, is_single_links);
-		asoc_simple_canonicalize_platform(platforms, cpus);
 	} else {
 		struct snd_soc_codec_conf *cconf;
 
@@ -354,7 +352,6 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
 	struct asoc_simple_dai *codec_dai = simple_props_to_dai_codec(dai_props, 0);
 	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);
 	int ret, single_cpu = 0;
 
 	dev_dbg(dev, "link_of (%pOF)\n", cpu_ep);
@@ -405,7 +402,6 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
 	dai_link->init = asoc_simple_dai_init;
 
 	asoc_simple_canonicalize_cpu(cpus, single_cpu);
-	asoc_simple_canonicalize_platform(platforms, cpus);
 
 	return 0;
 }
@@ -621,7 +617,6 @@ 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 */
 
@@ -644,7 +639,6 @@ 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 {
-- 
2.25.1


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

* Re: [PATCH 0/6] ASoC: audio-graph: cleanups
  2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
                   ` (5 preceding siblings ...)
  2021-04-19  2:02 ` [PATCH 6/6] ASoC: audio-graph: remove Platform support Kuninori Morimoto
@ 2021-04-20 18:35 ` Mark Brown
  6 siblings, 0 replies; 11+ messages in thread
From: Mark Brown @ 2021-04-20 18:35 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Mark Brown

On 19 Apr 2021 11:01:56 +0900, Kuninori Morimoto wrote:
> These patches cleanups audio-graph.
> This is part of prepare for new audio-graph-card2.
> 
> Kuninori Morimoto (6):
>   ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c
>   ASoC: audio-graph: move audio_graph_remove() to simple-card-utils.c
>   ASoC: audio-graph: check ports if exists
>   ASoC: audio-graph: remove "audio-graph-card," preix support
>   ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs()
>   ASoC: audio-graph: remove Platform support
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/6] ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c
      commit: 1a456b1c6be13514a8fc5c1a99e6763f491d17e9
[2/6] ASoC: audio-graph: move audio_graph_remove() to simple-card-utils.c
      commit: f6fcc820e0c96664e2f21c0d6bb60630243ef36a
[3/6] ASoC: audio-graph: check ports if exists
      commit: 6769ea1e4315999624ce4637c9c338b9d88a85e6
[4/6] ASoC: audio-graph: remove "audio-graph-card, " preix support
      commit: 14d78d74d7bc47c6ff3a66fb9d405084de7b6b02
[5/6] ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs()
      commit: 67800ae93982eb4496f446cfd06f98ba7382ce36
[6/6] ASoC: audio-graph: remove Platform support
      commit: 63f2f9cceb09f8e5f668e36c1cf764eea468ebed

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] 11+ messages in thread

* Re: [PATCH 6/6] ASoC: audio-graph: remove Platform support
  2021-04-19  2:02 ` [PATCH 6/6] ASoC: audio-graph: remove Platform support Kuninori Morimoto
@ 2021-08-25  7:18   ` Olivier MOYSAN
  2021-08-25 22:48     ` Kuninori Morimoto
  0 siblings, 1 reply; 11+ messages in thread
From: Olivier MOYSAN @ 2021-08-25  7:18 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA

Hello Kuninori,

I have seen that the STM32MP15 audio sound card is no more functional 
with recent kernels (5.13 or 5.14)
The sound card is registered, but the all devices are issuing an error 
at runtime. These devices are using stm32_sai.c or stm32_i2s.c drivers.

I found that the regression is linked to the commit 
63f2f9cceb09f8e5f668e36c1cf764eea468ebed "ASoC: audio-graph: remove 
Platform support", as reverting this commit fixes the issue.

When the platform component is missing the pcm_construct ops in the pcm 
dmaengine, is never called, resulting in an incomplete initialization of 
the sound card.
I can't figure out what is the right way to handle this change, however.
Do I need to update the CPU drivers to work without a platform component
or does the audio-graph card has to be changed in some way ?
What do you mean "We can respawn it when we need it", in the commit 
message ?

Thanks for your help
regards
Olivier


On 4/19/21 4:02 AM, Kuninori Morimoto wrote:
> 
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> Platform was one of mandatory component on ASoC before,
> and audio-graph-card was assuming that CPU and Platform were
> same driver.
> 
> But it is no longer mandatory on ASoC.
> Current ASoC will just ignore if Platform and CPU were same
> or doplicated component.
> 
> Of course ASoC is supporting Platform, but current
> audio-graph-card doesn't support detecting it from DT.
> 
> This means current audio-graph-card operation for Platform so far
> is 100% useless. This patch removes it.
> We can respawn it when we need it.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>   sound/soc/generic/audio-graph-card.c | 6 ------
>   1 file changed, 6 deletions(-)
> 
> diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
> index 5594eab9902e..3c4915d1e528 100644
> --- a/sound/soc/generic/audio-graph-card.c
> +++ b/sound/soc/generic/audio-graph-card.c
> @@ -223,7 +223,6 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>   	struct asoc_simple_dai *dai;
>   	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);
>   	int ret;
>   
>   	port	= of_get_parent(ep);
> @@ -275,7 +274,6 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
>   
>   		/* card->num_links includes Codec */
>   		asoc_simple_canonicalize_cpu(cpus, is_single_links);
> -		asoc_simple_canonicalize_platform(platforms, cpus);
>   	} else {
>   		struct snd_soc_codec_conf *cconf;
>   
> @@ -354,7 +352,6 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
>   	struct asoc_simple_dai *codec_dai = simple_props_to_dai_codec(dai_props, 0);
>   	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);
>   	int ret, single_cpu = 0;
>   
>   	dev_dbg(dev, "link_of (%pOF)\n", cpu_ep);
> @@ -405,7 +402,6 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
>   	dai_link->init = asoc_simple_dai_init;
>   
>   	asoc_simple_canonicalize_cpu(cpus, single_cpu);
> -	asoc_simple_canonicalize_platform(platforms, cpus);
>   
>   	return 0;
>   }
> @@ -621,7 +617,6 @@ 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 */
>   
> @@ -644,7 +639,6 @@ 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 {
> 

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

* Re: [PATCH 6/6] ASoC: audio-graph: remove Platform support
  2021-08-25  7:18   ` Olivier MOYSAN
@ 2021-08-25 22:48     ` Kuninori Morimoto
  2021-08-27 15:28       ` Olivier MOYSAN
  0 siblings, 1 reply; 11+ messages in thread
From: Kuninori Morimoto @ 2021-08-25 22:48 UTC (permalink / raw)
  To: Olivier MOYSAN; +Cc: Linux-ALSA


Hi Olivier

Thank you for conntacting me

> I have seen that the STM32MP15 audio sound card is no more functional
> with recent kernels (5.13 or 5.14)
> The sound card is registered, but the all devices are issuing an error
> at runtime. These devices are using stm32_sai.c or stm32_i2s.c
> drivers.
> 
> I found that the regression is linked to the commit
> 63f2f9cceb09f8e5f668e36c1cf764eea468ebed "ASoC: audio-graph: remove
> Platform support", as reverting this commit fixes the issue.
> 
> When the platform component is missing the pcm_construct ops in the
> pcm dmaengine, is never called, resulting in an incomplete
> initialization of the sound card.
> I can't figure out what is the right way to handle this change, however.
> Do I need to update the CPU drivers to work without a platform component
> or does the audio-graph card has to be changed in some way ?

Ahh, OK, I see.
Indeed the dev which is used for CPU is used at soc-generic-dmaengine as Platform,
without indicating it at DT (= simple-card has "plat" support for platform at DT,
but audio-graph doesn't ).

I think key funciton is asoc_simple_canonicalize_platform().

> What do you mean "We can respawn it when we need it", in the commit
> message ?

This means we can revert this patch if needed, and yes it is needed :)
Could you please respawn the feature ? or I can do it if you want.

Thank you for your help !!

Best regards
---
Kuninori Morimoto

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

* Re: [PATCH 6/6] ASoC: audio-graph: remove Platform support
  2021-08-25 22:48     ` Kuninori Morimoto
@ 2021-08-27 15:28       ` Olivier MOYSAN
  0 siblings, 0 replies; 11+ messages in thread
From: Olivier MOYSAN @ 2021-08-27 15:28 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA

Hi Kuninori,

Thanks for your feedback

On 8/26/21 12:48 AM, Kuninori Morimoto wrote:
> 
> Hi Olivier
> 
> Thank you for conntacting me
> 
>> I have seen that the STM32MP15 audio sound card is no more functional
>> with recent kernels (5.13 or 5.14)
>> The sound card is registered, but the all devices are issuing an error
>> at runtime. These devices are using stm32_sai.c or stm32_i2s.c
>> drivers.
>>
>> I found that the regression is linked to the commit
>> 63f2f9cceb09f8e5f668e36c1cf764eea468ebed "ASoC: audio-graph: remove
>> Platform support", as reverting this commit fixes the issue.
>>
>> When the platform component is missing the pcm_construct ops in the
>> pcm dmaengine, is never called, resulting in an incomplete
>> initialization of the sound card.
>> I can't figure out what is the right way to handle this change, however.
>> Do I need to update the CPU drivers to work without a platform component
>> or does the audio-graph card has to be changed in some way ?
> 
> Ahh, OK, I see.
> Indeed the dev which is used for CPU is used at soc-generic-dmaengine as Platform,
> without indicating it at DT (= simple-card has "plat" support for platform at DT,
> but audio-graph doesn't ).
> 

Yes, it seems that there is no way to force CPU to be used as platform 
with audio-graph. so, asoc_simple_canonicalize_platform() is necessary 
to do the job in this case.

> I think key funciton is asoc_simple_canonicalize_platform().
> 
>> What do you mean "We can respawn it when we need it", in the commit
>> message ?
> 
> This means we can revert this patch if needed, and yes it is needed :)
> Could you please respawn the feature ? or I can do it if you want.
> 

I feel more confortable if you revert the commit, as you are the author 
of the patch.
Thanks.

BRs
Olivier

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

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

end of thread, other threads:[~2021-08-27 15:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-19  2:01 [PATCH 0/6] ASoC: audio-graph: cleanups Kuninori Morimoto
2021-04-19  2:02 ` [PATCH 1/6] ASoC: audio-graph: move audio_graph_card_probe() to simple-card-utils.c Kuninori Morimoto
2021-04-19  2:02 ` [PATCH 2/6] ASoC: audio-graph: move audio_graph_remove() " Kuninori Morimoto
2021-04-19  2:02 ` [PATCH 3/6] ASoC: audio-graph: check ports if exists Kuninori Morimoto
2021-04-19  2:02 ` [PATCH 4/6] ASoC: audio-graph: remove "audio-graph-card, " preix support Kuninori Morimoto
2021-04-19  2:02 ` [PATCH 5/6] ASoC: audio-graph: remove unused "node" from graph_parse_mclk_fs() Kuninori Morimoto
2021-04-19  2:02 ` [PATCH 6/6] ASoC: audio-graph: remove Platform support Kuninori Morimoto
2021-08-25  7:18   ` Olivier MOYSAN
2021-08-25 22:48     ` Kuninori Morimoto
2021-08-27 15:28       ` Olivier MOYSAN
2021-04-20 18:35 ` [PATCH 0/6] ASoC: audio-graph: cleanups Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.