ASoC: soc-core: adjust for graph on snd_soc_of_parse_card_name
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 11 Nov 2016 01:17:27 +0000 (01:17 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 11 Nov 2016 15:22:01 +0000 (15:22 +0000)
It is assuming that the card related information is located on
"card" node, but graph case doesn't have it.
This patch adds node parameter to adjust for graph support

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc.h
sound/soc/soc-core.c

index 346223b38e0de90e54d73aa97965c469fee12561..8457aab9eab08f8de17f3ac8fb9e412ac3ed44f1 100644 (file)
@@ -1642,8 +1642,11 @@ static inline struct snd_soc_platform *snd_soc_kcontrol_platform(
 int snd_soc_util_init(void);
 void snd_soc_util_exit(void);
 
-int snd_soc_of_parse_card_name(struct snd_soc_card *card,
-                              const char *propname);
+#define snd_soc_of_parse_card_name(card, propname) \
+       snd_soc_of_parse_card_name_from_node(card, NULL, propname)
+int snd_soc_of_parse_card_name_from_node(struct snd_soc_card *card,
+                                        struct device_node *np,
+                                        const char *propname);
 int snd_soc_of_parse_audio_simple_widgets(struct snd_soc_card *card,
                                          const char *propname);
 int snd_soc_of_parse_tdm_slot(struct device_node *np,
index e4c90806fa102fae018ac641685a455f69f90789..17132fb579305b3f356c4b7a346d2ed638e86641 100644 (file)
@@ -3424,10 +3424,10 @@ found:
 EXPORT_SYMBOL_GPL(snd_soc_unregister_codec);
 
 /* Retrieve a card's name from device tree */
-int snd_soc_of_parse_card_name(struct snd_soc_card *card,
-                              const char *propname)
+int snd_soc_of_parse_card_name_from_node(struct snd_soc_card *card,
+                                        struct device_node *np,
+                                        const char *propname)
 {
-       struct device_node *np;
        int ret;
 
        if (!card->dev) {
@@ -3435,7 +3435,8 @@ int snd_soc_of_parse_card_name(struct snd_soc_card *card,
                return -EINVAL;
        }
 
-       np = card->dev->of_node;
+       if (!np)
+               np = card->dev->of_node;
 
        ret = of_property_read_string_index(np, propname, 0, &card->name);
        /*
@@ -3452,7 +3453,7 @@ int snd_soc_of_parse_card_name(struct snd_soc_card *card,
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(snd_soc_of_parse_card_name);
+EXPORT_SYMBOL_GPL(snd_soc_of_parse_card_name_from_node);
 
 static const struct snd_soc_dapm_widget simple_widgets[] = {
        SND_SOC_DAPM_MIC("Microphone", NULL),