]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/soc/generic/simple-card.c
ASoC: simple-card: Remove support for setting differing DAI formats
[karo-tx-linux.git] / sound / soc / generic / simple-card.c
index f7c6734bd5daee1dafd76ba8b6feafa05b2a6c52..3efd9472b8a359996394779be85efa5db0c2fa27 100644 (file)
@@ -125,14 +125,6 @@ static int __asoc_simple_card_dai_init(struct snd_soc_dai *dai,
 {
        int ret;
 
-       if (set->fmt) {
-               ret = snd_soc_dai_set_fmt(dai, set->fmt);
-               if (ret && ret != -ENOTSUPP) {
-                       dev_err(dai->dev, "simple-card: set_fmt error\n");
-                       goto err;
-               }
-       }
-
        if (set->sysclk) {
                ret = snd_soc_dai_set_sysclk(dai, 0, set->sysclk, 0);
                if (ret && ret != -ENOTSUPP) {
@@ -269,12 +261,10 @@ static int asoc_simple_card_parse_daifmt(struct device_node *node,
                                         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;
-       struct simple_dai_props *dai_props = simple_priv_to_props(priv, idx);
-       struct asoc_simple_dai *cpu_dai = &dai_props->cpu_dai;
-       struct asoc_simple_dai *codec_dai = &dai_props->codec_dai;
        unsigned int daifmt;
 
        daifmt = snd_soc_of_parse_daifmt(node, prefix,
@@ -289,8 +279,7 @@ static int asoc_simple_card_parse_daifmt(struct device_node *node,
                 */
                dev_dbg(dev, "Revert to legacy daifmt parsing\n");
 
-               cpu_dai->fmt = codec_dai->fmt =
-                       snd_soc_of_parse_daifmt(codec, NULL, NULL, NULL) |
+               daifmt = snd_soc_of_parse_daifmt(codec, NULL, NULL, NULL) |
                        (daifmt & ~SND_SOC_DAIFMT_CLOCK_MASK);
        } else {
                if (codec == bitclkmaster)
@@ -299,11 +288,10 @@ static int asoc_simple_card_parse_daifmt(struct device_node *node,
                else
                        daifmt |= (codec == framemaster) ?
                                SND_SOC_DAIFMT_CBS_CFM : SND_SOC_DAIFMT_CBS_CFS;
-
-               cpu_dai->fmt    = daifmt;
-               codec_dai->fmt  = daifmt;
        }
 
+       dai_link->dai_fmt = daifmt;
+
        of_node_put(bitclkmaster);
        of_node_put(framemaster);
 
@@ -379,13 +367,12 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
        dai_link->init = asoc_simple_card_dai_init;
 
        dev_dbg(dev, "\tname : %s\n", dai_link->stream_name);
-       dev_dbg(dev, "\tcpu : %s / %04x / %d\n",
+       dev_dbg(dev, "\tformat : %04x\n", dai_link->dai_fmt);
+       dev_dbg(dev, "\tcpu : %s / %d\n",
                dai_link->cpu_dai_name,
-               dai_props->cpu_dai.fmt,
                dai_props->cpu_dai.sysclk);
-       dev_dbg(dev, "\tcodec : %s / %04x / %d\n",
+       dev_dbg(dev, "\tcodec : %s / %d\n",
                dai_link->codec_dai_name,
-               dai_props->codec_dai.fmt,
                dai_props->codec_dai.sysclk);
 
        /*
@@ -572,14 +559,13 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
                dai_link->codec_name    = cinfo->codec;
                dai_link->cpu_dai_name  = cinfo->cpu_dai.name;
                dai_link->codec_dai_name = cinfo->codec_dai.name;
+               dai_link->dai_fmt       = cinfo->daifmt;
                dai_link->init          = asoc_simple_card_dai_init;
                memcpy(&priv->dai_props->cpu_dai, &cinfo->cpu_dai,
                                        sizeof(priv->dai_props->cpu_dai));
                memcpy(&priv->dai_props->codec_dai, &cinfo->codec_dai,
                                        sizeof(priv->dai_props->codec_dai));
 
-               priv->dai_props->cpu_dai.fmt    |= cinfo->daifmt;
-               priv->dai_props->codec_dai.fmt  |= cinfo->daifmt;
        }
 
        snd_soc_card_set_drvdata(&priv->snd_card, priv);