ASoC: simple-card: dai_link->init should be cared when multi DAI
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 28 Aug 2014 03:08:27 +0000 (20:08 -0700)
committerMark Brown <broonie@kernel.org>
Fri, 29 Aug 2014 11:51:02 +0000 (12:51 +0100)
6a91a17bd7b92b2d2aa9ece85457f52a62fd7708
(ASoC: simple-card: Handle many DAI links)
added multi DAI support on simple-card.
This means priv->dai_link might be pointer of multi DAI.
dai_link->init is needed for all DAI.
This patch cares it for all DAIs on DT/non-DT

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

index e8185a0b933fba27519e5baa2813800b44827094..89027047364f2d5173d1a219ea0ee91d644ce8a1 100644 (file)
@@ -274,6 +274,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
                                dai_link->codec_dai_name);
        dai_link->name = dai_link->stream_name = name;
        dai_link->ops = &asoc_simple_card_ops;
+       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",
@@ -465,6 +466,7 @@ 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->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,
@@ -474,11 +476,6 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
                priv->dai_props->codec_dai.fmt  |= cinfo->daifmt;
        }
 
-       /*
-        * init snd_soc_dai_link
-        */
-       dai_link->init = asoc_simple_card_dai_init;
-
        snd_soc_card_set_drvdata(&priv->snd_card, priv);
 
        ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card);