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

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

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



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: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 436947fc
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -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,14 +808,10 @@ 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;
	}
	}

	/*
	 * If codec-handle property is missing from SSI node, we assume
@@ -854,7 +849,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)

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