]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
MLK-9684-2: ASoC: imx-si476x: remove the codec_name, use the codec_of_node
authorShengjiu Wang <shengjiu.wang@freescale.com>
Mon, 13 Oct 2014 03:26:02 +0000 (11:26 +0800)
committerNitin Garg <nitin.garg@freescale.com>
Fri, 16 Jan 2015 03:18:34 +0000 (21:18 -0600)
As the codec_name has a suffix, which is a index and is different
for different platform or different kernel. So here change machine driver
to use codec_of_node, which can be same for different platform/kernel,
then we can maintain a same machine driver for fm.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit e87b135f34cba5cfcd0614b045d4035118fb6d77)

sound/soc/fsl/imx-si476x.c

index 6859b38903eee44c041be9c6084a0667aef9111c..a80ad54fe30ea5e4c084b9905332edfe6f46333b 100644 (file)
@@ -81,7 +81,6 @@ static struct snd_soc_dai_link imx_dai = {
        .name = "imx-si476x",
        .stream_name = "imx-si476x",
        .codec_dai_name = "si476x-codec",
-       .codec_name = "si476x-codec.355",
        .ops = &imx_si476x_ops,
 };
 
@@ -134,8 +133,8 @@ static int imx_si476x_probe(struct platform_device *pdev)
                goto end;
        }
 
-       fm_dev = of_find_i2c_device_by_node(fm_np);
-       if (!fm_dev) {
+       fm_dev = of_find_i2c_device_by_node(fm_np->parent);
+       if (!fm_dev || !fm_dev->dev.driver) {
                dev_err(&pdev->dev, "failed to find FM platform device\n");
                ret = -EINVAL;
                goto end;
@@ -144,6 +143,7 @@ static int imx_si476x_probe(struct platform_device *pdev)
        card->dev = &pdev->dev;
        card->dai_link->cpu_dai_name = dev_name(&ssi_pdev->dev);
        card->dai_link->platform_of_node = ssi_np;
+       card->dai_link->codec_of_node = fm_np;
 
        platform_set_drvdata(pdev, card);