Commit 3b7d4638 authored by Shawn Guo's avatar Shawn Guo Committed by Mark Brown

ASoC: fsl: remove use of imx-pcm-audio from imx-ssi

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: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent bd41bc96
...@@ -64,7 +64,7 @@ static struct snd_soc_dai_link imx_mc13783_dai_mc13783[] = { ...@@ -64,7 +64,7 @@ static struct snd_soc_dai_link imx_mc13783_dai_mc13783[] = {
.codec_dai_name = "mc13783-hifi", .codec_dai_name = "mc13783-hifi",
.codec_name = "mc13783-codec", .codec_name = "mc13783-codec",
.cpu_dai_name = "imx-ssi.0", .cpu_dai_name = "imx-ssi.0",
.platform_name = "imx-pcm-audio.0", .platform_name = "imx-ssi.0",
.ops = &imx_mc13783_hifi_ops, .ops = &imx_mc13783_hifi_ops,
.symmetric_rates = 1, .symmetric_rates = 1,
.dai_fmt = FMT_SSI, .dai_fmt = FMT_SSI,
......
...@@ -608,24 +608,13 @@ static int imx_ssi_probe(struct platform_device *pdev) ...@@ -608,24 +608,13 @@ static int imx_ssi_probe(struct platform_device *pdev)
goto failed_pdev_fiq_add; goto failed_pdev_fiq_add;
} }
ssi->soc_platform_pdev = platform_device_alloc("imx-pcm-audio", pdev->id); ret = imx_pcm_dma_init(pdev);
if (!ssi->soc_platform_pdev) { if (ret)
ret = -ENOMEM; goto failed_pcm_dma;
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;
}
return 0; return 0;
failed_pdev_add: failed_pcm_dma:
platform_device_put(ssi->soc_platform_pdev);
failed_pdev_alloc:
platform_device_del(ssi->soc_platform_pdev_fiq); platform_device_del(ssi->soc_platform_pdev_fiq);
failed_pdev_fiq_add: failed_pdev_fiq_add:
platform_device_put(ssi->soc_platform_pdev_fiq); platform_device_put(ssi->soc_platform_pdev_fiq);
...@@ -645,7 +634,7 @@ static int imx_ssi_remove(struct platform_device *pdev) ...@@ -645,7 +634,7 @@ static int imx_ssi_remove(struct platform_device *pdev)
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct imx_ssi *ssi = platform_get_drvdata(pdev); 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); platform_device_unregister(ssi->soc_platform_pdev_fiq);
snd_soc_unregister_component(&pdev->dev); snd_soc_unregister_component(&pdev->dev);
......
...@@ -212,7 +212,6 @@ struct imx_ssi { ...@@ -212,7 +212,6 @@ struct imx_ssi {
int enabled; int enabled;
struct platform_device *soc_platform_pdev;
struct platform_device *soc_platform_pdev_fiq; struct platform_device *soc_platform_pdev_fiq;
}; };
......
...@@ -161,7 +161,7 @@ static struct snd_soc_dai_link mx27vis_aic32x4_dai = { ...@@ -161,7 +161,7 @@ static struct snd_soc_dai_link mx27vis_aic32x4_dai = {
.name = "tlv320aic32x4", .name = "tlv320aic32x4",
.stream_name = "TLV320AIC32X4", .stream_name = "TLV320AIC32X4",
.codec_dai_name = "tlv320aic32x4-hifi", .codec_dai_name = "tlv320aic32x4-hifi",
.platform_name = "imx-pcm-audio.0", .platform_name = "imx-ssi.0",
.codec_name = "tlv320aic32x4.0-0018", .codec_name = "tlv320aic32x4.0-0018",
.cpu_dai_name = "imx-ssi.0", .cpu_dai_name = "imx-ssi.0",
.ops = &mx27vis_aic32x4_snd_ops, .ops = &mx27vis_aic32x4_snd_ops,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment