diff mbox series

[01/10] ASoC: soc-core: add snd_soc_of_parse_node_prefix()

Message ID 87zhu2lz26.wl-kuninori.morimoto.gx@renesas.com (mailing list archive)
State Accepted
Commit 3b7103562c03cffb1a351f8c235b3bba2acd9e9b
Headers show
Series ASoC: merge audio-graph-scu into audio-graph - step2 | expand

Commit Message

Kuninori Morimoto Nov. 22, 2018, 12:55 a.m. UTC
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(-)

Comments

Mark Brown Nov. 23, 2018, 1:53 p.m. UTC | #1
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
>
Kuninori Morimoto Nov. 26, 2018, 12:07 a.m. UTC | #2
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
diff mbox series

Patch

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)