All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2
@ 2018-11-22  0:54 Kuninori Morimoto
  2018-11-22  0:55 ` [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix() Kuninori Morimoto
                   ` (9 more replies)
  0 siblings, 10 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:54 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


Hi Mark

audio-graph     card can handle normal sound card, and
audio-graph-scu card can handle DPCM   sound card.
But, we can't use these feature in same time now.

So, this is the time to merge audio-graph and audio-graph-scu.
The patch-set are a little bit huge (and few patches are depend
on posted OF patch. I'm now waiting...),
thus, I separated these into few steps.

These are step2 patches

Kuninori Morimoto (10):
  ASoC: soc-core: add snd_soc_of_parse_node_prefix()
  ASoC: simple-scu-card: tidyup "prefix" parsing on Doc
  ASoC: simple-scu-card: tidyup "prefix" parsing
  ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc
  ASoC: audio-graph-scu-card: tidyup "prefix" parsing
  ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc
  ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing
  ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing
  ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD
  ASoC: audio-graph-card: tidyup define position

 .../bindings/sound/audio-graph-scu-card.txt        |  4 +-
 .../devicetree/bindings/sound/simple-scu-card.txt  |  2 +-
 include/sound/soc.h                                |  6 +-
 sound/soc/generic/Kconfig                          |  2 +-
 sound/soc/generic/audio-graph-card.c               | 10 +--
 sound/soc/generic/audio-graph-scu-card.c           | 71 ++++++++++------------
 sound/soc/generic/simple-scu-card.c                |  7 +++
 sound/soc/soc-core.c                               | 11 ++--
 8 files changed, 59 insertions(+), 54 deletions(-)

-- 
2.7.4

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

* [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix()
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
@ 2018-11-22  0:55 ` Kuninori Morimoto
  2018-11-23 13:53   ` Mark Brown
  2018-11-23 14:13   ` Applied "ASoC: soc-core: add snd_soc_of_parse_node_prefix()" to the asoc tree Mark Brown
  2018-11-22  0:55 ` [PATCH 02/10] ASoC: simple-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
                   ` (8 subsequent siblings)
  9 siblings, 2 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:55 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


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

Current ASoC has snd_soc_of_parse_audio_prefix() to get codec_conf
settings from DT which is used to avoid DAI naming conflict when
CPU/Codec matching.

Currently, it is parsing from "top node",
but, we want to parse from "each sub node" if sound card had multi
cpus/codecs.

This patch adds new snd_soc_of_parse_node_prefix() to allow parsing
settings from selected node.
It is keeping existing snd_soc_of_parse_audio_prefix() by using macro.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc.h  |  6 +++++-
 sound/soc/soc-core.c | 11 +++++------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/include/sound/soc.h b/include/sound/soc.h
index 5a8b841..93b7510 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1477,10 +1477,14 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 			      unsigned int *rx_mask,
 			      unsigned int *slots,
 			      unsigned int *slot_width);
-void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
+void snd_soc_of_parse_node_prefix(struct device_node *np,
 				   struct snd_soc_codec_conf *codec_conf,
 				   struct device_node *of_node,
 				   const char *propname);
+#define snd_soc_of_parse_audio_prefix(card, conf, node, name) \
+	snd_soc_of_parse_node_prefix((card)->dev->of_node,    \
+				     (conf), (node), (name))
+
 int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
 				   const char *propname);
 unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 6ddcf12..012000d 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3484,12 +3484,11 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 }
 EXPORT_SYMBOL_GPL(snd_soc_of_parse_tdm_slot);
 
-void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
-				   struct snd_soc_codec_conf *codec_conf,
-				   struct device_node *of_node,
-				   const char *propname)
+void snd_soc_of_parse_node_prefix(struct device_node *np,
+				  struct snd_soc_codec_conf *codec_conf,
+				  struct device_node *of_node,
+				  const char *propname)
 {
-	struct device_node *np = card->dev->of_node;
 	const char *str;
 	int ret;
 
@@ -3502,7 +3501,7 @@ void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
 	codec_conf->of_node	= of_node;
 	codec_conf->name_prefix	= str;
 }
-EXPORT_SYMBOL_GPL(snd_soc_of_parse_audio_prefix);
+EXPORT_SYMBOL_GPL(snd_soc_of_parse_node_prefix);
 
 int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
 				   const char *propname)
-- 
2.7.4

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

* [PATCH 02/10] ASoC: simple-scu-card: tidyup "prefix" parsing on Doc
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
  2018-11-22  0:55 ` [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix() Kuninori Morimoto
@ 2018-11-22  0:55 ` Kuninori Morimoto
  2018-11-23 14:12   ` Applied "ASoC: simple-scu-card: tidyup "prefix" parsing on Doc" to the asoc tree Mark Brown
  2018-11-22  0:55 ` [PATCH 03/10] ASoC: simple-scu-card: tidyup "prefix" parsing Kuninori Morimoto
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:55 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


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

simple-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 Documentation/devicetree/bindings/sound/simple-scu-card.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/simple-scu-card.txt b/Documentation/devicetree/bindings/sound/simple-scu-card.txt
index 32f8dbc..3a2f716 100644
--- a/Documentation/devicetree/bindings/sound/simple-scu-card.txt
+++ b/Documentation/devicetree/bindings/sound/simple-scu-card.txt
@@ -75,7 +75,6 @@ sound {
 	simple-audio-card,bitclock-master = <&dpcmcpu>;
 	simple-audio-card,frame-master = <&dpcmcpu>;
 
-	simple-audio-card,prefix = "ak4642";
 	simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback",
 			"ak4642 Playback", "DAI1 Playback";
 
@@ -88,6 +87,7 @@ sound {
 	};
 
 	codec {
+		prefix = "ak4642";
 		sound-dai = <&ak4643>;
 		clocks = <&audio_clock>;
 	};
-- 
2.7.4

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

* [PATCH 03/10] ASoC: simple-scu-card: tidyup "prefix" parsing
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
  2018-11-22  0:55 ` [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix() Kuninori Morimoto
  2018-11-22  0:55 ` [PATCH 02/10] ASoC: simple-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
@ 2018-11-22  0:55 ` Kuninori Morimoto
  2018-11-23 14:12   ` Applied "ASoC: simple-scu-card: tidyup "prefix" parsing" to the asoc tree Mark Brown
  2018-11-22  0:55 ` [PATCH 04/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:55 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


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

simple-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/generic/simple-scu-card.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c
index e650143..7ae1901 100644
--- a/sound/soc/generic/simple-scu-card.c
+++ b/sound/soc/generic/simple-scu-card.c
@@ -157,10 +157,17 @@ static int asoc_simple_card_dai_link_of(struct device_node *np,
 		if (ret < 0)
 			return ret;
 
+		/* check "prefix" from top node */
 		snd_soc_of_parse_audio_prefix(card,
 					      &priv->codec_conf,
 					      dai_link->codecs->of_node,
 					      PREFIX "prefix");
+		/* check "prefix" from each node if top doesn't have */
+		if (!priv->codec_conf.of_node)
+			snd_soc_of_parse_node_prefix(np,
+						     &priv->codec_conf,
+						     dai_link->codecs->of_node,
+						     "prefix");
 	}
 
 	ret = asoc_simple_card_of_parse_tdm(np, &dai_props->dai);
-- 
2.7.4

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

* [PATCH 04/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2018-11-22  0:55 ` [PATCH 03/10] ASoC: simple-scu-card: tidyup "prefix" parsing Kuninori Morimoto
@ 2018-11-22  0:55 ` Kuninori Morimoto
  2018-11-23 14:12   ` Applied "ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc" to the asoc tree Mark Brown
  2018-11-22  0:56 ` [PATCH 05/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing Kuninori Morimoto
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:55 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

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

audio-graph-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
index 441dd6f..a361088 100644
--- a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
+++ b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
@@ -77,7 +77,6 @@ Example 2. 2 CPU 1 Codec (Mixing)
 		compatible = "audio-graph-scu-card";
 
 		label = "sound-card";
-		prefix = "codec";
 		routing = "codec Playback", "DAI0 Playback",
 			  "codec Playback", "DAI1 Playback",
 			  "DAI0 Capture",   "codec Capture";
@@ -90,6 +89,7 @@ Example 2. 2 CPU 1 Codec (Mixing)
 	audio-codec {
 		...
 
+		audio-graph-card,prefix = "codec";
 		port {
 			codec_endpoint0: endpoint {
 				remote-endpoint = <&cpu_endpoint0>;
-- 
2.7.4

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

* [PATCH 05/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (3 preceding siblings ...)
  2018-11-22  0:55 ` [PATCH 04/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
@ 2018-11-22  0:56 ` Kuninori Morimoto
  2018-11-23 14:12   ` Applied "ASoC: audio-graph-scu-card: tidyup "prefix" parsing" to the asoc tree Mark Brown
  2018-11-22  0:56 ` [PATCH 06/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc Kuninori Morimoto
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:56 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


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

audio-graph-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

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

diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index c469473..fdc61f1 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -39,6 +39,8 @@ struct graph_card_data {
 #define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
 #define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
 
+#define PREFIX	"audio-graph-card,"
+
 static int asoc_graph_card_startup(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
@@ -98,6 +100,7 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 	struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, idx);
 	struct graph_dai_props *dai_props = graph_priv_to_props(priv, idx);
 	struct snd_soc_card *card = graph_priv_to_card(priv);
+	struct device_node *node = of_graph_get_port_parent(ep);
 	int ret;
 
 	if (is_fe) {
@@ -154,10 +157,17 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 		if (ret < 0)
 			return ret;
 
+		/* check "prefix" from top node */
 		snd_soc_of_parse_audio_prefix(card,
 					      &priv->codec_conf,
 					      dai_link->codecs->of_node,
 					      "prefix");
+		/* check "prefix" from each node if top doesn't have */
+		if (!priv->codec_conf.of_node)
+			snd_soc_of_parse_node_prefix(node,
+						     &priv->codec_conf,
+						     dai_link->codecs->of_node,
+						     PREFIX "prefix");
 	}
 
 	ret = asoc_simple_card_of_parse_tdm(ep, &dai_props->dai);
-- 
2.7.4

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

* [PATCH 06/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (4 preceding siblings ...)
  2018-11-22  0:56 ` [PATCH 05/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing Kuninori Morimoto
@ 2018-11-22  0:56 ` Kuninori Morimoto
  2018-11-23 14:12   ` Applied "ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc" to the asoc tree Mark Brown
  2018-11-22  0:56 ` [PATCH 07/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing Kuninori Morimoto
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:56 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

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

audio-graph-scu-card.c is supporting "convert-rate/channels" which is
used for DPCM.
But, sound card might have multi codecs, and each codec might need
each convert-rate/channels.

This patch supports each codec's convert-rate/channles support.
top node convert-rate/channels will overwrite settings if exist.

It can't support each codec's convert-rate/channels if sound card had
multi codecs without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
index a361088..62d4276 100644
--- a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
+++ b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
@@ -80,7 +80,6 @@ Example 2. 2 CPU 1 Codec (Mixing)
 		routing = "codec Playback", "DAI0 Playback",
 			  "codec Playback", "DAI1 Playback",
 			  "DAI0 Capture",   "codec Capture";
-		convert-rate = <48000>;
 
 		dais = <&cpu_port0
 			&cpu_port1>;
@@ -90,6 +89,7 @@ Example 2. 2 CPU 1 Codec (Mixing)
 		...
 
 		audio-graph-card,prefix = "codec";
+		audio-graph-card,convert-rate = <48000>;
 		port {
 			codec_endpoint0: endpoint {
 				remote-endpoint = <&cpu_endpoint0>;
-- 
2.7.4

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

* [PATCH 07/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (5 preceding siblings ...)
  2018-11-22  0:56 ` [PATCH 06/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc Kuninori Morimoto
@ 2018-11-22  0:56 ` Kuninori Morimoto
  2018-11-23 14:11   ` Applied "ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing" to the asoc tree Mark Brown
  2018-11-22  0:57 ` [PATCH 08/10] ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing Kuninori Morimoto
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:56 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

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

audio-graph-scu-card.c is supporting "convert-rate/channels" which is
used for DPCM.
But, sound card might have multi codecs, and each codec might need
each convert-rate/channels.

This patch supports each codec's convert-rate/channles support.
top node convert-rate/channels will overwrite settings if exist.

It can't support each codec's convert-rate/channels if sound card had
multi codecs without this patch.

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

diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index fdc61f1..0f13f11 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -29,6 +29,7 @@ struct graph_card_data {
 		struct asoc_simple_dai dai;
 		struct snd_soc_dai_link_component codecs;
 		struct snd_soc_dai_link_component platform;
+		struct asoc_simple_card_data adata;
 	} *dai_props;
 	struct snd_soc_dai_link *dai_link;
 	struct asoc_simple_card_data adata;
@@ -85,7 +86,11 @@ static int asoc_graph_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 					       struct snd_pcm_hw_params *params)
 {
 	struct graph_card_data *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct graph_dai_props *dai_props = graph_priv_to_props(priv, rtd->num);
+
+	asoc_simple_card_convert_fixup(&dai_props->adata, params);
 
+	/* overwrite by top level adata if exist */
 	asoc_simple_card_convert_fixup(&priv->adata, params);
 
 	return 0;
@@ -170,6 +175,8 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 						     PREFIX "prefix");
 	}
 
+	asoc_simple_card_parse_convert(dev, node, PREFIX, &dai_props->adata);
+
 	ret = asoc_simple_card_of_parse_tdm(ep, &dai_props->dai);
 	if (ret)
 		return ret;
-- 
2.7.4

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

* [PATCH 08/10] ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (6 preceding siblings ...)
  2018-11-22  0:56 ` [PATCH 07/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing Kuninori Morimoto
@ 2018-11-22  0:57 ` Kuninori Morimoto
  2018-11-23 14:11   ` Applied "ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing" to the asoc tree Mark Brown
  2018-11-22  0:57 ` [PATCH 09/10] ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD Kuninori Morimoto
  2018-11-22  0:57 ` [PATCH 10/10] ASoC: audio-graph-card: tidyup define position Kuninori Morimoto
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:57 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

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

Current audio-graph-scu-card driver is parsing codec position for DPCM
and consider DAI format. But, current operation is doing totally pointless,
because 1) asoc_simple_card_parse_daifmt() will be called not only for 1st
codec on current implementation, and it will be used as fixed format
2) it should be called for each CPU/Codec pair.
Let's tidyup asoc_simple_card_parse_daifmt() timing.

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

diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index 0f13f11..ce1f108 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -96,15 +96,16 @@ static int asoc_graph_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 	return 0;
 }
 
-static int asoc_graph_card_dai_link_of(struct device_node *ep,
+static int asoc_graph_card_dai_link_of(struct device_node *cpu_ep,
+				       struct device_node *codec_ep,
 				       struct graph_card_data *priv,
-				       unsigned int daifmt,
 				       int idx, int is_fe)
 {
 	struct device *dev = graph_priv_to_dev(priv);
 	struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, idx);
 	struct graph_dai_props *dai_props = graph_priv_to_props(priv, idx);
 	struct snd_soc_card *card = graph_priv_to_card(priv);
+	struct device_node *ep = is_fe ? cpu_ep : codec_ep;
 	struct device_node *node = of_graph_get_port_parent(ep);
 	int ret;
 
@@ -185,7 +186,11 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 	if (ret < 0)
 		return ret;
 
-	dai_link->dai_fmt		= daifmt;
+	ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep,
+					    NULL, &dai_link->dai_fmt);
+	if (ret < 0)
+		return ret;
+
 	dai_link->dpcm_playback		= 1;
 	dai_link->dpcm_capture		= 1;
 	dai_link->ops			= &asoc_graph_card_ops;
@@ -205,7 +210,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 	struct device_node *codec_ep;
 	struct device_node *codec_port;
 	struct device_node *codec_port_old;
-	unsigned int daifmt = 0;
 	int dai_idx, ret;
 	int rc, codec;
 
@@ -228,26 +232,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 	 * see asoc_graph_get_dais_count
 	 */
 
-	/* find 1st codec */
-	of_for_each_phandle(&it, rc, node, "dais", NULL, 0) {
-		cpu_port = it.node;
-		cpu_ep   = of_get_next_child(cpu_port, NULL);
-		codec_ep = of_graph_get_remote_endpoint(cpu_ep);
-
-		of_node_put(cpu_ep);
-		of_node_put(codec_ep);
-
-		if (!codec_ep)
-			continue;
-
-		ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep,
-							    NULL, &daifmt);
-		if (ret < 0) {
-			of_node_put(cpu_port);
-			goto parse_of_err;
-		}
-	}
-
 	dai_idx = 0;
 	codec_port_old = NULL;
 	for (codec = 0; codec < 2; codec++) {
@@ -264,28 +248,22 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 
 			of_node_put(cpu_ep);
 			of_node_put(codec_ep);
+			of_node_put(cpu_port);
 			of_node_put(codec_port);
+			it.node = NULL;
 
 			if (codec) {
 				if (codec_port_old == codec_port)
 					continue;
 
 				codec_port_old = codec_port;
-
-				/* Back-End (= Codec) */
-				ret = asoc_graph_card_dai_link_of(codec_ep, priv, daifmt, dai_idx++, 0);
-				if (ret < 0) {
-					of_node_put(cpu_port);
-					goto parse_of_err;
-				}
-			} else {
-				/* Front-End (= CPU) */
-				ret = asoc_graph_card_dai_link_of(cpu_ep, priv, daifmt, dai_idx++, 1);
-				if (ret < 0) {
-					of_node_put(cpu_port);
-					goto parse_of_err;
-				}
 			}
+
+			ret = asoc_graph_card_dai_link_of(cpu_ep, codec_ep,
+							  priv, dai_idx++,
+							  !codec);
+			if (ret < 0)
+				goto parse_of_err;
 		}
 	}
 
-- 
2.7.4

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

* [PATCH 09/10] ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (7 preceding siblings ...)
  2018-11-22  0:57 ` [PATCH 08/10] ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing Kuninori Morimoto
@ 2018-11-22  0:57 ` Kuninori Morimoto
  2018-11-23 14:11   ` Applied "ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD" to the asoc tree Mark Brown
  2018-11-22  0:57 ` [PATCH 10/10] ASoC: audio-graph-card: tidyup define position Kuninori Morimoto
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:57 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

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

1 "simple" is enough on Kconfig help

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/generic/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/generic/Kconfig b/sound/soc/generic/Kconfig
index c954be0..fa5aff9 100644
--- a/sound/soc/generic/Kconfig
+++ b/sound/soc/generic/Kconfig
@@ -20,7 +20,7 @@ config SND_AUDIO_GRAPH_CARD
 	depends on OF
 	select SND_SIMPLE_CARD_UTILS
 	help
-	  This option enables generic simple simple sound card support
+	  This option enables generic simple sound card support
 	  with OF-graph DT bindings.
 
 config SND_AUDIO_GRAPH_SCU_CARD
-- 
2.7.4

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

* [PATCH 10/10] ASoC: audio-graph-card: tidyup define position
  2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
                   ` (8 preceding siblings ...)
  2018-11-22  0:57 ` [PATCH 09/10] ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD Kuninori Morimoto
@ 2018-11-22  0:57 ` Kuninori Morimoto
  2018-11-23 14:11   ` Applied "ASoC: audio-graph-card: tidyup define position" to the asoc tree Mark Brown
  9 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-22  0:57 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


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

commit f986907c9225 ("ASoC: audio-graph-card: add widgets and routing for
external amplifier support") added new function
asoc_graph_card_outdrv_event(), but the inserted position breaks
define area. This patch tidyup it

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

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 101c7da..1b158cc 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -36,6 +36,11 @@ struct graph_card_data {
 	struct gpio_desc *pa_gpio;
 };
 
+#define graph_priv_to_card(priv) (&(priv)->snd_card)
+#define graph_priv_to_props(priv, i) ((priv)->dai_props + (i))
+#define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
+#define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
+
 static int asoc_graph_card_outdrv_event(struct snd_soc_dapm_widget *w,
 					struct snd_kcontrol *kcontrol,
 					int event)
@@ -63,11 +68,6 @@ static const struct snd_soc_dapm_widget asoc_graph_card_dapm_widgets[] = {
 			       SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
 };
 
-#define graph_priv_to_card(priv) (&(priv)->snd_card)
-#define graph_priv_to_props(priv, i) ((priv)->dai_props + (i))
-#define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
-#define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
-
 static int asoc_graph_card_startup(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-- 
2.7.4

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

* Re: [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix()
  2018-11-22  0:55 ` [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix() Kuninori Morimoto
@ 2018-11-23 13:53   ` Mark Brown
  2018-11-26  0:07     ` Kuninori Morimoto
  2018-11-23 14:13   ` Applied "ASoC: soc-core: add snd_soc_of_parse_node_prefix()" to the asoc tree Mark Brown
  1 sibling, 1 reply; 23+ messages in thread
From: Mark Brown @ 2018-11-23 13:53 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA


[-- Attachment #1.1: Type: text/plain, Size: 1997 bytes --]

On Thu, Nov 22, 2018 at 12:55:09AM +0000, Kuninori Morimoto wrote:

> +void snd_soc_of_parse_node_prefix(struct device_node *np,
>  				   struct snd_soc_codec_conf *codec_conf,
>  				   struct device_node *of_node,
>  				   const char *propname);
> +#define snd_soc_of_parse_audio_prefix(card, conf, node, name) \
> +	snd_soc_of_parse_node_prefix((card)->dev->of_node,    \
> +				     (conf), (node), (name))

This is basically fine but it'd be better to make this a static inline
rather than a #define - it helps with error messages and type safety.
I'll apply the series since otherwise this looks good, please send a
followup patch fixing this.

> +
>  int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
>  				   const char *propname);
>  unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 6ddcf12..012000d 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -3484,12 +3484,11 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
>  }
>  EXPORT_SYMBOL_GPL(snd_soc_of_parse_tdm_slot);
>  
> -void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
> -				   struct snd_soc_codec_conf *codec_conf,
> -				   struct device_node *of_node,
> -				   const char *propname)
> +void snd_soc_of_parse_node_prefix(struct device_node *np,
> +				  struct snd_soc_codec_conf *codec_conf,
> +				  struct device_node *of_node,
> +				  const char *propname)
>  {
> -	struct device_node *np = card->dev->of_node;
>  	const char *str;
>  	int ret;
>  
> @@ -3502,7 +3501,7 @@ void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
>  	codec_conf->of_node	= of_node;
>  	codec_conf->name_prefix	= str;
>  }
> -EXPORT_SYMBOL_GPL(snd_soc_of_parse_audio_prefix);
> +EXPORT_SYMBOL_GPL(snd_soc_of_parse_node_prefix);
>  
>  int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
>  				   const char *propname)
> -- 
> 2.7.4
> 

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



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

* Applied "ASoC: audio-graph-card: tidyup define position" to the asoc tree
  2018-11-22  0:57 ` [PATCH 10/10] ASoC: audio-graph-card: tidyup define position Kuninori Morimoto
@ 2018-11-23 14:11   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:11 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-card: tidyup define position

has been applied to the asoc tree at

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

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

>From 64ef0817b9679b525f86773e929777be96f5c728 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:57:40 +0000
Subject: [PATCH] ASoC: audio-graph-card: tidyup define position

commit f986907c9225 ("ASoC: audio-graph-card: add widgets and routing for
external amplifier support") added new function
asoc_graph_card_outdrv_event(), but the inserted position breaks
define area. This patch tidyup it

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

diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 101c7da2df7c..1b158cc2df88 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -36,6 +36,11 @@ struct graph_card_data {
 	struct gpio_desc *pa_gpio;
 };
 
+#define graph_priv_to_card(priv) (&(priv)->snd_card)
+#define graph_priv_to_props(priv, i) ((priv)->dai_props + (i))
+#define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
+#define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
+
 static int asoc_graph_card_outdrv_event(struct snd_soc_dapm_widget *w,
 					struct snd_kcontrol *kcontrol,
 					int event)
@@ -63,11 +68,6 @@ static const struct snd_soc_dapm_widget asoc_graph_card_dapm_widgets[] = {
 			       SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
 };
 
-#define graph_priv_to_card(priv) (&(priv)->snd_card)
-#define graph_priv_to_props(priv, i) ((priv)->dai_props + (i))
-#define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
-#define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
-
 static int asoc_graph_card_startup(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-- 
2.19.1

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

* Applied "ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD" to the asoc tree
  2018-11-22  0:57 ` [PATCH 09/10] ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD Kuninori Morimoto
@ 2018-11-23 14:11   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:11 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD

has been applied to the asoc tree at

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

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

>From c3830f1a00f0c7b224aa64e99adbdc14e86d78d5 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:57:23 +0000
Subject: [PATCH] ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD

1 "simple" is enough on Kconfig help

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/generic/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/generic/Kconfig b/sound/soc/generic/Kconfig
index c954be0a0f96..fa5aff9c1041 100644
--- a/sound/soc/generic/Kconfig
+++ b/sound/soc/generic/Kconfig
@@ -20,7 +20,7 @@ config SND_AUDIO_GRAPH_CARD
 	depends on OF
 	select SND_SIMPLE_CARD_UTILS
 	help
-	  This option enables generic simple simple sound card support
+	  This option enables generic simple sound card support
 	  with OF-graph DT bindings.
 
 config SND_AUDIO_GRAPH_SCU_CARD
-- 
2.19.1

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

* Applied "ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing" to the asoc tree
  2018-11-22  0:57 ` [PATCH 08/10] ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing Kuninori Morimoto
@ 2018-11-23 14:11   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:11 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing

has been applied to the asoc tree at

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

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

>From 338d7159c488268dd4ccc6a69ab4af8f829f75d0 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:57:09 +0000
Subject: [PATCH] ASoC: audio-graph-scu-card: tidyup
 asoc_simple_card_parse_daifmt() timing

Current audio-graph-scu-card driver is parsing codec position for DPCM
and consider DAI format. But, current operation is doing totally pointless,
because 1) asoc_simple_card_parse_daifmt() will be called not only for 1st
codec on current implementation, and it will be used as fixed format
2) it should be called for each CPU/Codec pair.
Let's tidyup asoc_simple_card_parse_daifmt() timing.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/generic/audio-graph-scu-card.c | 54 +++++++-----------------
 1 file changed, 16 insertions(+), 38 deletions(-)

diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index 0f13f11e0d88..ce1f1085ad25 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -96,15 +96,16 @@ static int asoc_graph_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 	return 0;
 }
 
-static int asoc_graph_card_dai_link_of(struct device_node *ep,
+static int asoc_graph_card_dai_link_of(struct device_node *cpu_ep,
+				       struct device_node *codec_ep,
 				       struct graph_card_data *priv,
-				       unsigned int daifmt,
 				       int idx, int is_fe)
 {
 	struct device *dev = graph_priv_to_dev(priv);
 	struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, idx);
 	struct graph_dai_props *dai_props = graph_priv_to_props(priv, idx);
 	struct snd_soc_card *card = graph_priv_to_card(priv);
+	struct device_node *ep = is_fe ? cpu_ep : codec_ep;
 	struct device_node *node = of_graph_get_port_parent(ep);
 	int ret;
 
@@ -185,7 +186,11 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 	if (ret < 0)
 		return ret;
 
-	dai_link->dai_fmt		= daifmt;
+	ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep,
+					    NULL, &dai_link->dai_fmt);
+	if (ret < 0)
+		return ret;
+
 	dai_link->dpcm_playback		= 1;
 	dai_link->dpcm_capture		= 1;
 	dai_link->ops			= &asoc_graph_card_ops;
@@ -205,7 +210,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 	struct device_node *codec_ep;
 	struct device_node *codec_port;
 	struct device_node *codec_port_old;
-	unsigned int daifmt = 0;
 	int dai_idx, ret;
 	int rc, codec;
 
@@ -228,26 +232,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 	 * see asoc_graph_get_dais_count
 	 */
 
-	/* find 1st codec */
-	of_for_each_phandle(&it, rc, node, "dais", NULL, 0) {
-		cpu_port = it.node;
-		cpu_ep   = of_get_next_child(cpu_port, NULL);
-		codec_ep = of_graph_get_remote_endpoint(cpu_ep);
-
-		of_node_put(cpu_ep);
-		of_node_put(codec_ep);
-
-		if (!codec_ep)
-			continue;
-
-		ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep,
-							    NULL, &daifmt);
-		if (ret < 0) {
-			of_node_put(cpu_port);
-			goto parse_of_err;
-		}
-	}
-
 	dai_idx = 0;
 	codec_port_old = NULL;
 	for (codec = 0; codec < 2; codec++) {
@@ -264,28 +248,22 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
 
 			of_node_put(cpu_ep);
 			of_node_put(codec_ep);
+			of_node_put(cpu_port);
 			of_node_put(codec_port);
+			it.node = NULL;
 
 			if (codec) {
 				if (codec_port_old == codec_port)
 					continue;
 
 				codec_port_old = codec_port;
-
-				/* Back-End (= Codec) */
-				ret = asoc_graph_card_dai_link_of(codec_ep, priv, daifmt, dai_idx++, 0);
-				if (ret < 0) {
-					of_node_put(cpu_port);
-					goto parse_of_err;
-				}
-			} else {
-				/* Front-End (= CPU) */
-				ret = asoc_graph_card_dai_link_of(cpu_ep, priv, daifmt, dai_idx++, 1);
-				if (ret < 0) {
-					of_node_put(cpu_port);
-					goto parse_of_err;
-				}
 			}
+
+			ret = asoc_graph_card_dai_link_of(cpu_ep, codec_ep,
+							  priv, dai_idx++,
+							  !codec);
+			if (ret < 0)
+				goto parse_of_err;
 		}
 	}
 
-- 
2.19.1

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

* Applied "ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing" to the asoc tree
  2018-11-22  0:56 ` [PATCH 07/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing Kuninori Morimoto
@ 2018-11-23 14:11   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:11 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing

has been applied to the asoc tree at

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

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

>From 7f07a39acf0591fd3823abc1af3c5456e708b77e Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:56:53 +0000
Subject: [PATCH] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels"
 parsing

audio-graph-scu-card.c is supporting "convert-rate/channels" which is
used for DPCM.
But, sound card might have multi codecs, and each codec might need
each convert-rate/channels.

This patch supports each codec's convert-rate/channles support.
top node convert-rate/channels will overwrite settings if exist.

It can't support each codec's convert-rate/channels if sound card had
multi codecs without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/generic/audio-graph-scu-card.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index fdc61f1c1d79..0f13f11e0d88 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -29,6 +29,7 @@ struct graph_card_data {
 		struct asoc_simple_dai dai;
 		struct snd_soc_dai_link_component codecs;
 		struct snd_soc_dai_link_component platform;
+		struct asoc_simple_card_data adata;
 	} *dai_props;
 	struct snd_soc_dai_link *dai_link;
 	struct asoc_simple_card_data adata;
@@ -85,7 +86,11 @@ static int asoc_graph_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 					       struct snd_pcm_hw_params *params)
 {
 	struct graph_card_data *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct graph_dai_props *dai_props = graph_priv_to_props(priv, rtd->num);
+
+	asoc_simple_card_convert_fixup(&dai_props->adata, params);
 
+	/* overwrite by top level adata if exist */
 	asoc_simple_card_convert_fixup(&priv->adata, params);
 
 	return 0;
@@ -170,6 +175,8 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 						     PREFIX "prefix");
 	}
 
+	asoc_simple_card_parse_convert(dev, node, PREFIX, &dai_props->adata);
+
 	ret = asoc_simple_card_of_parse_tdm(ep, &dai_props->dai);
 	if (ret)
 		return ret;
-- 
2.19.1

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

* Applied "ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc" to the asoc tree
  2018-11-22  0:56 ` [PATCH 06/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc Kuninori Morimoto
@ 2018-11-23 14:12   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:12 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc

has been applied to the asoc tree at

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

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

>From df976517733e34e9c12828357c19bafea5c90cf5 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:56:41 +0000
Subject: [PATCH] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels"
 parsing on Doc

audio-graph-scu-card.c is supporting "convert-rate/channels" which is
used for DPCM.
But, sound card might have multi codecs, and each codec might need
each convert-rate/channels.

This patch supports each codec's convert-rate/channles support.
top node convert-rate/channels will overwrite settings if exist.

It can't support each codec's convert-rate/channels if sound card had
multi codecs without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 .../devicetree/bindings/sound/audio-graph-scu-card.txt          | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
index a3610888e121..62d42768a00b 100644
--- a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
+++ b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
@@ -80,7 +80,6 @@ Example 2. 2 CPU 1 Codec (Mixing)
 		routing = "codec Playback", "DAI0 Playback",
 			  "codec Playback", "DAI1 Playback",
 			  "DAI0 Capture",   "codec Capture";
-		convert-rate = <48000>;
 
 		dais = <&cpu_port0
 			&cpu_port1>;
@@ -90,6 +89,7 @@ Example 2. 2 CPU 1 Codec (Mixing)
 		...
 
 		audio-graph-card,prefix = "codec";
+		audio-graph-card,convert-rate = <48000>;
 		port {
 			codec_endpoint0: endpoint {
 				remote-endpoint = <&cpu_endpoint0>;
-- 
2.19.1

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

* Applied "ASoC: audio-graph-scu-card: tidyup "prefix" parsing" to the asoc tree
  2018-11-22  0:56 ` [PATCH 05/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing Kuninori Morimoto
@ 2018-11-23 14:12   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:12 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-scu-card: tidyup "prefix" parsing

has been applied to the asoc tree at

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

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

>From 2624fc7882244abeb4dabbd5b67328676a109b6a Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:56:21 +0000
Subject: [PATCH] ASoC: audio-graph-scu-card: tidyup "prefix" parsing

audio-graph-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/generic/audio-graph-scu-card.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index c46947393f80..fdc61f1c1d79 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -39,6 +39,8 @@ struct graph_card_data {
 #define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
 #define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
 
+#define PREFIX	"audio-graph-card,"
+
 static int asoc_graph_card_startup(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
@@ -98,6 +100,7 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 	struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, idx);
 	struct graph_dai_props *dai_props = graph_priv_to_props(priv, idx);
 	struct snd_soc_card *card = graph_priv_to_card(priv);
+	struct device_node *node = of_graph_get_port_parent(ep);
 	int ret;
 
 	if (is_fe) {
@@ -154,10 +157,17 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
 		if (ret < 0)
 			return ret;
 
+		/* check "prefix" from top node */
 		snd_soc_of_parse_audio_prefix(card,
 					      &priv->codec_conf,
 					      dai_link->codecs->of_node,
 					      "prefix");
+		/* check "prefix" from each node if top doesn't have */
+		if (!priv->codec_conf.of_node)
+			snd_soc_of_parse_node_prefix(node,
+						     &priv->codec_conf,
+						     dai_link->codecs->of_node,
+						     PREFIX "prefix");
 	}
 
 	ret = asoc_simple_card_of_parse_tdm(ep, &dai_props->dai);
-- 
2.19.1

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

* Applied "ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc" to the asoc tree
  2018-11-22  0:55 ` [PATCH 04/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
@ 2018-11-23 14:12   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:12 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc

has been applied to the asoc tree at

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

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

>From 264d15035eac5e779788c435bafb5c8319ffed81 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:55:54 +0000
Subject: [PATCH] ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc

audio-graph-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 .../devicetree/bindings/sound/audio-graph-scu-card.txt          | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
index 441dd6f29df1..a3610888e121 100644
--- a/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
+++ b/Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt
@@ -77,7 +77,6 @@ Example 2. 2 CPU 1 Codec (Mixing)
 		compatible = "audio-graph-scu-card";
 
 		label = "sound-card";
-		prefix = "codec";
 		routing = "codec Playback", "DAI0 Playback",
 			  "codec Playback", "DAI1 Playback",
 			  "DAI0 Capture",   "codec Capture";
@@ -90,6 +89,7 @@ Example 2. 2 CPU 1 Codec (Mixing)
 	audio-codec {
 		...
 
+		audio-graph-card,prefix = "codec";
 		port {
 			codec_endpoint0: endpoint {
 				remote-endpoint = <&cpu_endpoint0>;
-- 
2.19.1

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

* Applied "ASoC: simple-scu-card: tidyup "prefix" parsing" to the asoc tree
  2018-11-22  0:55 ` [PATCH 03/10] ASoC: simple-scu-card: tidyup "prefix" parsing Kuninori Morimoto
@ 2018-11-23 14:12   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:12 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: simple-scu-card: tidyup "prefix" parsing

has been applied to the asoc tree at

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

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

>From ca8d95c709378d0792c9dbacdab176a75e521ffb Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:55:40 +0000
Subject: [PATCH] ASoC: simple-scu-card: tidyup "prefix" parsing

simple-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/generic/simple-scu-card.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c
index e650143eb532..7ae1901b2f85 100644
--- a/sound/soc/generic/simple-scu-card.c
+++ b/sound/soc/generic/simple-scu-card.c
@@ -157,10 +157,17 @@ static int asoc_simple_card_dai_link_of(struct device_node *np,
 		if (ret < 0)
 			return ret;
 
+		/* check "prefix" from top node */
 		snd_soc_of_parse_audio_prefix(card,
 					      &priv->codec_conf,
 					      dai_link->codecs->of_node,
 					      PREFIX "prefix");
+		/* check "prefix" from each node if top doesn't have */
+		if (!priv->codec_conf.of_node)
+			snd_soc_of_parse_node_prefix(np,
+						     &priv->codec_conf,
+						     dai_link->codecs->of_node,
+						     "prefix");
 	}
 
 	ret = asoc_simple_card_of_parse_tdm(np, &dai_props->dai);
-- 
2.19.1

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

* Applied "ASoC: simple-scu-card: tidyup "prefix" parsing on Doc" to the asoc tree
  2018-11-22  0:55 ` [PATCH 02/10] ASoC: simple-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
@ 2018-11-23 14:12   ` Mark Brown
  0 siblings, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:12 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: simple-scu-card: tidyup "prefix" parsing on Doc

has been applied to the asoc tree at

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

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

>From f94b0f7f9246013ac158ae3adf194c1bfa1d1847 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:55:24 +0000
Subject: [PATCH] ASoC: simple-scu-card: tidyup "prefix" parsing on Doc

simple-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 Documentation/devicetree/bindings/sound/simple-scu-card.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/simple-scu-card.txt b/Documentation/devicetree/bindings/sound/simple-scu-card.txt
index 32f8dbce5241..3a2f71616cda 100644
--- a/Documentation/devicetree/bindings/sound/simple-scu-card.txt
+++ b/Documentation/devicetree/bindings/sound/simple-scu-card.txt
@@ -75,7 +75,6 @@ sound {
 	simple-audio-card,bitclock-master = <&dpcmcpu>;
 	simple-audio-card,frame-master = <&dpcmcpu>;
 
-	simple-audio-card,prefix = "ak4642";
 	simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback",
 			"ak4642 Playback", "DAI1 Playback";
 
@@ -88,6 +87,7 @@ sound {
 	};
 
 	codec {
+		prefix = "ak4642";
 		sound-dai = <&ak4643>;
 		clocks = <&audio_clock>;
 	};
-- 
2.19.1

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

* Applied "ASoC: soc-core: add snd_soc_of_parse_node_prefix()" to the asoc tree
  2018-11-22  0:55 ` [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix() Kuninori Morimoto
  2018-11-23 13:53   ` Mark Brown
@ 2018-11-23 14:13   ` Mark Brown
  1 sibling, 0 replies; 23+ messages in thread
From: Mark Brown @ 2018-11-23 14:13 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: alsa-devel, Mark Brown

The patch

   ASoC: soc-core: add snd_soc_of_parse_node_prefix()

has been applied to the asoc tree at

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

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

>From 3b7103562c03cffb1a351f8c235b3bba2acd9e9b Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 22 Nov 2018 00:55:09 +0000
Subject: [PATCH] ASoC: soc-core: add snd_soc_of_parse_node_prefix()

Current ASoC has snd_soc_of_parse_audio_prefix() to get codec_conf
settings from DT which is used to avoid DAI naming conflict when
CPU/Codec matching.

Currently, it is parsing from "top node",
but, we want to parse from "each sub node" if sound card had multi
cpus/codecs.

This patch adds new snd_soc_of_parse_node_prefix() to allow parsing
settings from selected node.
It is keeping existing snd_soc_of_parse_audio_prefix() by using macro.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 include/sound/soc.h  |  6 +++++-
 sound/soc/soc-core.c | 11 +++++------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/include/sound/soc.h b/include/sound/soc.h
index 5a8b84140f01..93b7510e7f7d 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1477,10 +1477,14 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 			      unsigned int *rx_mask,
 			      unsigned int *slots,
 			      unsigned int *slot_width);
-void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
+void snd_soc_of_parse_node_prefix(struct device_node *np,
 				   struct snd_soc_codec_conf *codec_conf,
 				   struct device_node *of_node,
 				   const char *propname);
+#define snd_soc_of_parse_audio_prefix(card, conf, node, name) \
+	snd_soc_of_parse_node_prefix((card)->dev->of_node,    \
+				     (conf), (node), (name))
+
 int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
 				   const char *propname);
 unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 6ddcf12bc030..012000de4bf0 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3484,12 +3484,11 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 }
 EXPORT_SYMBOL_GPL(snd_soc_of_parse_tdm_slot);
 
-void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
-				   struct snd_soc_codec_conf *codec_conf,
-				   struct device_node *of_node,
-				   const char *propname)
+void snd_soc_of_parse_node_prefix(struct device_node *np,
+				  struct snd_soc_codec_conf *codec_conf,
+				  struct device_node *of_node,
+				  const char *propname)
 {
-	struct device_node *np = card->dev->of_node;
 	const char *str;
 	int ret;
 
@@ -3502,7 +3501,7 @@ void snd_soc_of_parse_audio_prefix(struct snd_soc_card *card,
 	codec_conf->of_node	= of_node;
 	codec_conf->name_prefix	= str;
 }
-EXPORT_SYMBOL_GPL(snd_soc_of_parse_audio_prefix);
+EXPORT_SYMBOL_GPL(snd_soc_of_parse_node_prefix);
 
 int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
 				   const char *propname)
-- 
2.19.1

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

* Re: [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix()
  2018-11-23 13:53   ` Mark Brown
@ 2018-11-26  0:07     ` Kuninori Morimoto
  0 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2018-11-26  0:07 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


Hi Mark

> > +void snd_soc_of_parse_node_prefix(struct device_node *np,
> >  				   struct snd_soc_codec_conf *codec_conf,
> >  				   struct device_node *of_node,
> >  				   const char *propname);
> > +#define snd_soc_of_parse_audio_prefix(card, conf, node, name) \
> > +	snd_soc_of_parse_node_prefix((card)->dev->of_node,    \
> > +				     (conf), (node), (name))
> 
> This is basically fine but it'd be better to make this a static inline
> rather than a #define - it helps with error messages and type safety.
> I'll apply the series since otherwise this looks good, please send a
> followup patch fixing this.

OK, thanks.
Yes, I will post it soon


Best regards
---
Kuninori Morimoto

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

end of thread, other threads:[~2018-11-26  0:07 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-22  0:54 [PATCH 00/10] ASoC: merge audio-graph-scu into audio-graph - step2 Kuninori Morimoto
2018-11-22  0:55 ` [PATCH 01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix() Kuninori Morimoto
2018-11-23 13:53   ` Mark Brown
2018-11-26  0:07     ` Kuninori Morimoto
2018-11-23 14:13   ` Applied "ASoC: soc-core: add snd_soc_of_parse_node_prefix()" to the asoc tree Mark Brown
2018-11-22  0:55 ` [PATCH 02/10] ASoC: simple-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
2018-11-23 14:12   ` Applied "ASoC: simple-scu-card: tidyup "prefix" parsing on Doc" to the asoc tree Mark Brown
2018-11-22  0:55 ` [PATCH 03/10] ASoC: simple-scu-card: tidyup "prefix" parsing Kuninori Morimoto
2018-11-23 14:12   ` Applied "ASoC: simple-scu-card: tidyup "prefix" parsing" to the asoc tree Mark Brown
2018-11-22  0:55 ` [PATCH 04/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc Kuninori Morimoto
2018-11-23 14:12   ` Applied "ASoC: audio-graph-scu-card: tidyup "prefix" parsing on Doc" to the asoc tree Mark Brown
2018-11-22  0:56 ` [PATCH 05/10] ASoC: audio-graph-scu-card: tidyup "prefix" parsing Kuninori Morimoto
2018-11-23 14:12   ` Applied "ASoC: audio-graph-scu-card: tidyup "prefix" parsing" to the asoc tree Mark Brown
2018-11-22  0:56 ` [PATCH 06/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc Kuninori Morimoto
2018-11-23 14:12   ` Applied "ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing on Doc" to the asoc tree Mark Brown
2018-11-22  0:56 ` [PATCH 07/10] ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing Kuninori Morimoto
2018-11-23 14:11   ` Applied "ASoC: audio-graph-scu-card: tidyup "convert-rate/channels" parsing" to the asoc tree Mark Brown
2018-11-22  0:57 ` [PATCH 08/10] ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing Kuninori Morimoto
2018-11-23 14:11   ` Applied "ASoC: audio-graph-scu-card: tidyup asoc_simple_card_parse_daifmt() timing" to the asoc tree Mark Brown
2018-11-22  0:57 ` [PATCH 09/10] ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD Kuninori Morimoto
2018-11-23 14:11   ` Applied "ASoC: audio-graph-card: tidyup typo SND_AUDIO_GRAPH_CARD" to the asoc tree Mark Brown
2018-11-22  0:57 ` [PATCH 10/10] ASoC: audio-graph-card: tidyup define position Kuninori Morimoto
2018-11-23 14:11   ` Applied "ASoC: audio-graph-card: tidyup define position" to the asoc tree 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.