]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ASoC: simple-card: use asoc_simple_card_parse_daifmt()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 30 Jun 2016 06:02:46 +0000 (06:02 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 1 Jul 2016 15:34:02 +0000 (17:34 +0200)
We can use simpel utils asoc_simple_card_parse_daifmt().
Let's use it

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/simple_card.h
include/sound/simple_card_utils.h
sound/soc/generic/Kconfig
sound/soc/generic/simple-card.c

index 0399352f3a6243569c87d3691fd664480749802c..a6a2e1547092a8e232c27bf5a8778b4eaa63a1bb 100644 (file)
 #define __SIMPLE_CARD_H
 
 #include <sound/soc.h>
-
-struct asoc_simple_dai {
-       const char *name;
-       unsigned int sysclk;
-       int slots;
-       int slot_width;
-       unsigned int tx_slot_mask;
-       unsigned int rx_slot_mask;
-       struct clk *clk;
-};
+#include <sound/simple_card_utils.h>
 
 struct asoc_simple_card_info {
        const char *name;
index 7acc798016e04f406a0e2efa5aab919b77024888..50aa7b22a94c80acdf720fa317e8f6c70b1d17fe 100644 (file)
 
 #include <sound/soc.h>
 
+struct asoc_simple_dai {
+       const char *name;
+       unsigned int sysclk;
+       int slots;
+       int slot_width;
+       unsigned int tx_slot_mask;
+       unsigned int rx_slot_mask;
+       struct clk *clk;
+};
+
 int asoc_simple_card_parse_daifmt(struct device *dev,
                                  struct device_node *node,
                                  struct device_node *codec,
index 26c2fe6a0b9387b0b893b470a15f13882cdf5b6b..c01c5dd68601b69d519f0fb7d1953efc994f61bd 100644 (file)
@@ -3,5 +3,6 @@ config SND_SIMPLE_CARD_UTILS
 
 config SND_SIMPLE_CARD
        tristate "ASoC Simple sound card support"
+       select SND_SIMPLE_CARD_UTILS
        help
          This option enables generic simple sound card support
index 8d0311ceded1b5c3a3fd3b413abaf567d4a5d50e..e3a32d3404824f46f68fb59a029156a0c4d2f7d7 100644 (file)
@@ -308,48 +308,6 @@ asoc_simple_card_sub_parse_of(struct device_node *np,
        return 0;
 }
 
-static int asoc_simple_card_parse_daifmt(struct device_node *node,
-                                        struct simple_card_data *priv,
-                                        struct device_node *codec,
-                                        char *prefix, int idx)
-{
-       struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, idx);
-       struct device *dev = simple_priv_to_dev(priv);
-       struct device_node *bitclkmaster = NULL;
-       struct device_node *framemaster = NULL;
-       unsigned int daifmt;
-
-       daifmt = snd_soc_of_parse_daifmt(node, prefix,
-                                        &bitclkmaster, &framemaster);
-       daifmt &= ~SND_SOC_DAIFMT_MASTER_MASK;
-
-       if (strlen(prefix) && !bitclkmaster && !framemaster) {
-               /*
-                * No dai-link level and master setting was not found from
-                * sound node level, revert back to legacy DT parsing and
-                * take the settings from codec node.
-                */
-               dev_dbg(dev, "Revert to legacy daifmt parsing\n");
-
-               daifmt = snd_soc_of_parse_daifmt(codec, NULL, NULL, NULL) |
-                       (daifmt & ~SND_SOC_DAIFMT_CLOCK_MASK);
-       } else {
-               if (codec == bitclkmaster)
-                       daifmt |= (codec == framemaster) ?
-                               SND_SOC_DAIFMT_CBM_CFM : SND_SOC_DAIFMT_CBM_CFS;
-               else
-                       daifmt |= (codec == framemaster) ?
-                               SND_SOC_DAIFMT_CBS_CFM : SND_SOC_DAIFMT_CBS_CFS;
-       }
-
-       dai_link->dai_fmt = daifmt;
-
-       of_node_put(bitclkmaster);
-       of_node_put(framemaster);
-
-       return 0;
-}
-
 static int asoc_simple_card_dai_link_of(struct device_node *node,
                                        struct simple_card_data *priv,
                                        int idx,
@@ -386,8 +344,8 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
                goto dai_link_of_err;
        }
 
-       ret = asoc_simple_card_parse_daifmt(node, priv,
-                                           codec, prefix, idx);
+       ret = asoc_simple_card_parse_daifmt(dev, node, codec,
+                                           prefix, &dai_link->dai_fmt);
        if (ret < 0)
                goto dai_link_of_err;