mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 11:32:04 +00:00
Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus
This commit is contained in:
commit
762f9b185c
@ -936,7 +936,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
|
||||
ssi_private->ssi_phys = res.start;
|
||||
|
||||
ssi_private->irq = irq_of_parse_and_map(np, 0);
|
||||
if (ssi_private->irq == NO_IRQ) {
|
||||
if (ssi_private->irq == 0) {
|
||||
dev_err(&pdev->dev, "no irq for node %s\n", np->full_name);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ static int imx_mc13783_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (machine_is_mx31_3ds()) {
|
||||
if (machine_is_mx31_3ds() || machine_is_mx31moboard()) {
|
||||
imx_audmux_v2_configure_port(MX31_AUDMUX_PORT4_SSI_PINS_4,
|
||||
IMX_AUDMUX_V2_PTCR_SYN,
|
||||
IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0) |
|
||||
|
@ -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));
|
||||
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user