Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,
+5 −16
Original line number Diff line number Diff line
@@ -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);
+0 −1
Original line number Diff line number Diff line
@@ -212,7 +212,6 @@ struct imx_ssi {

	int enabled;

	struct platform_device *soc_platform_pdev;
	struct platform_device *soc_platform_pdev_fiq;
};

+1 −1
Original line number Diff line number Diff line
@@ -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,