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: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
436947fc82
Коммит
bd41bc9696
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче