Skip to content

Commit

Permalink
ASoC: fsl: imx-ssi: fix probe on imx31
Browse files Browse the repository at this point in the history
On imx31 with mc13783 codec the FIQ is not necessary and not enabled
as DMA transfer is available.
Change the probe() function to fail only if both FIQ and DMA are not
available.

Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch>
Signed-off-by: Mark Brown <broonie@linaro.org>
  • Loading branch information
Philippe Rétornaz authored and Mark Brown committed Oct 7, 2013
1 parent 1d73ad2 commit 5a6e19b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
23 changes: 12 additions & 11 deletions sound/soc/fsl/imx-ssi.c
Original file line number Diff line number Diff line change
Expand Up @@ -600,19 +600,17 @@ static int imx_ssi_probe(struct platform_device *pdev)
ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx;
ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx;

ret = imx_pcm_fiq_init(pdev, &ssi->fiq_params);
if (ret)
goto failed_pcm_fiq;
ssi->fiq_init = imx_pcm_fiq_init(pdev, &ssi->fiq_params);
ssi->dma_init = imx_pcm_dma_init(pdev);

ret = imx_pcm_dma_init(pdev);
if (ret)
goto failed_pcm_dma;
if (ssi->fiq_init && ssi->dma_init) {
ret = ssi->fiq_init;
goto failed_pcm;
}

return 0;

failed_pcm_dma:
imx_pcm_fiq_exit(pdev);
failed_pcm_fiq:
failed_pcm:
snd_soc_unregister_component(&pdev->dev);
failed_register:
release_mem_region(res->start, resource_size(res));
Expand All @@ -628,8 +626,11 @@ 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);

imx_pcm_dma_exit(pdev);
imx_pcm_fiq_exit(pdev);
if (!ssi->dma_init)
imx_pcm_dma_exit(pdev);

if (!ssi->fiq_init)
imx_pcm_fiq_exit(pdev);

snd_soc_unregister_component(&pdev->dev);

Expand Down
2 changes: 2 additions & 0 deletions sound/soc/fsl/imx-ssi.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ struct imx_ssi {
struct imx_dma_data filter_data_rx;
struct imx_pcm_fiq_params fiq_params;

int fiq_init;
int dma_init;
int enabled;
};

Expand Down

0 comments on commit 5a6e19b

Please sign in to comment.