ASoC: fsl: remove use of imx-pcm-audio from imx-ssi
authorShawn Guo <shawn.guo@linaro.org>
Thu, 25 Apr 2013 03:18:47 +0000 (11:18 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 15 May 2013 05:27:27 +0000 (09:27 +0400)
Rather than instantiating imx-pcm-audio to call imx_pcm_dma_init(),
imx-ssi can just directly call it to save the use of imx-pcm-audio.
With this change, imx-ssi becomes not only a cpu DAI but also a
platform device, so updates platform device setup in imx-mc13783 and
mx27vis-aic32x4 accordingly.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/fsl/imx-mc13783.c
sound/soc/fsl/imx-ssi.c
sound/soc/fsl/imx-ssi.h
sound/soc/fsl/mx27vis-aic32x4.c

index 4ae30f2..9df173c 100644 (file)
@@ -64,7 +64,7 @@ static struct snd_soc_dai_link imx_mc13783_dai_mc13783[] = {
                .codec_dai_name  = "mc13783-hifi",
                .codec_name      = "mc13783-codec",
                .cpu_dai_name    = "imx-ssi.0",
-               .platform_name   = "imx-pcm-audio.0",
+               .platform_name   = "imx-ssi.0",
                .ops             = &imx_mc13783_hifi_ops,
                .symmetric_rates = 1,
                .dai_fmt         = FMT_SSI,
index 902fab0..b5a2b04 100644 (file)
@@ -608,24 +608,13 @@ static int imx_ssi_probe(struct platform_device *pdev)
                goto failed_pdev_fiq_add;
        }
 
-       ssi->soc_platform_pdev = platform_device_alloc("imx-pcm-audio", pdev->id);
-       if (!ssi->soc_platform_pdev) {
-               ret = -ENOMEM;
-               goto failed_pdev_alloc;
-       }
-
-       platform_set_drvdata(ssi->soc_platform_pdev, ssi);
-       ret = platform_device_add(ssi->soc_platform_pdev);
-       if (ret) {
-               dev_err(&pdev->dev, "failed to add platform device\n");
-               goto failed_pdev_add;
-       }
+       ret = imx_pcm_dma_init(pdev);
+       if (ret)
+               goto failed_pcm_dma;
 
        return 0;
 
-failed_pdev_add:
-       platform_device_put(ssi->soc_platform_pdev);
-failed_pdev_alloc:
+failed_pcm_dma:
        platform_device_del(ssi->soc_platform_pdev_fiq);
 failed_pdev_fiq_add:
        platform_device_put(ssi->soc_platform_pdev_fiq);
@@ -645,7 +634,7 @@ static int imx_ssi_remove(struct platform_device *pdev)
        struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        struct imx_ssi *ssi = platform_get_drvdata(pdev);
 
-       platform_device_unregister(ssi->soc_platform_pdev);
+       imx_pcm_dma_exit(pdev);
        platform_device_unregister(ssi->soc_platform_pdev_fiq);
 
        snd_soc_unregister_component(&pdev->dev);
index bb6b3db..b052fad 100644 (file)
@@ -212,7 +212,6 @@ struct imx_ssi {
 
        int enabled;
 
-       struct platform_device *soc_platform_pdev;
        struct platform_device *soc_platform_pdev_fiq;
 };
 
index 3d10741..f4c3bda 100644 (file)
@@ -161,7 +161,7 @@ static struct snd_soc_dai_link mx27vis_aic32x4_dai = {
        .name           = "tlv320aic32x4",
        .stream_name    = "TLV320AIC32X4",
        .codec_dai_name = "tlv320aic32x4-hifi",
-       .platform_name  = "imx-pcm-audio.0",
+       .platform_name  = "imx-ssi.0",
        .codec_name     = "tlv320aic32x4.0-0018",
        .cpu_dai_name   = "imx-ssi.0",
        .ops            = &mx27vis_aic32x4_snd_ops,