]> Pileus Git - ~andy/linux/blobdiff - sound/soc/fsl/imx-ssi.c
ASoC: fsl: remove use of imx-pcm-audio from imx-ssi
[~andy/linux] / sound / soc / fsl / imx-ssi.c
index 902fab02b8512aab0288788b18781ff032da8798..b5a2b040816c965987a1e46ecf20f7f5acced7a8 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);