]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ASoC: fsl: remove use of imx-pcm-audio from fsl_ssi
authorShawn Guo <shawn.guo@linaro.org>
Thu, 25 Apr 2013 03:18:46 +0000 (11:18 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 15 May 2013 05:27:26 +0000 (09:27 +0400)
Rather than instantiating imx-pcm-audio to call imx_pcm_dma_init(),
fsl_ssi can just directly call it to save the use of imx-pcm-audio.
With this change, fsl_ssi becomes not only a cpu DAI but also a platform
device, so updates platform device setup in imx-sgtl5000 accordingly.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/fsl/fsl_ssi.c
sound/soc/fsl/imx-sgtl5000.c

index 0f0bed6def9ed5b370dfb4887b0359bb7fbe47a5..2f2d837df07f078e5b60da38308cbdb8d53b9969 100644 (file)
@@ -122,7 +122,6 @@ struct fsl_ssi_private {
        bool new_binding;
        bool ssi_on_imx;
        struct clk *clk;
-       struct platform_device *imx_pcm_pdev;
        struct snd_dmaengine_dai_dma_data dma_params_tx;
        struct snd_dmaengine_dai_dma_data dma_params_rx;
        struct imx_dma_data filter_data_tx;
@@ -809,13 +808,9 @@ static int fsl_ssi_probe(struct platform_device *pdev)
        }
 
        if (ssi_private->ssi_on_imx) {
-               ssi_private->imx_pcm_pdev =
-                       platform_device_register_simple("imx-pcm-audio",
-                                                       -1, NULL, 0);
-               if (IS_ERR(ssi_private->imx_pcm_pdev)) {
-                       ret = PTR_ERR(ssi_private->imx_pcm_pdev);
+               ret = imx_pcm_dma_init(pdev);
+               if (ret)
                        goto error_dev;
-               }
        }
 
        /*
@@ -854,7 +849,7 @@ done:
 
 error_dai:
        if (ssi_private->ssi_on_imx)
-               platform_device_unregister(ssi_private->imx_pcm_pdev);
+               imx_pcm_dma_exit(pdev);
        snd_soc_unregister_component(&pdev->dev);
 
 error_dev:
@@ -889,7 +884,7 @@ static int fsl_ssi_remove(struct platform_device *pdev)
        if (!ssi_private->new_binding)
                platform_device_unregister(ssi_private->pdev);
        if (ssi_private->ssi_on_imx) {
-               platform_device_unregister(ssi_private->imx_pcm_pdev);
+               imx_pcm_dma_exit(pdev);
                clk_disable_unprepare(ssi_private->clk);
                clk_put(ssi_private->clk);
        }
index 5a6aaa3b947a45bfaceb1313b2d2c0f03ebd6847..a60aaa053d2862a3d29818e7715f0cf4a9f095f0 100644 (file)
@@ -149,7 +149,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
        data->dai.codec_dai_name = "sgtl5000";
        data->dai.codec_of_node = codec_np;
        data->dai.cpu_of_node = ssi_np;
-       data->dai.platform_name = "imx-pcm-audio";
+       data->dai.platform_of_node = ssi_np;
        data->dai.init = &imx_sgtl5000_dai_init;
        data->dai.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                            SND_SOC_DAIFMT_CBM_CFM;