diff options
author | Mark Brown <broonie@linaro.org> | 2013-10-18 09:17:12 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-10-18 09:17:12 -0400 |
commit | 762f9b185cde6ccadbaf5ca4d2a1c2535a89824b (patch) | |
tree | 428cad1e37a4cd08d51b88cc973c396b05cc5764 | |
parent | 61e6cfa80de5760bbe406f4e815b7739205754d2 (diff) | |
parent | 5a6e19bedb13522924f5ee72c1f65b0fb5d33bc0 (diff) |
Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus
-rw-r--r-- | sound/soc/fsl/fsl_ssi.c | 2 | ||||
-rw-r--r-- | sound/soc/fsl/imx-mc13783.c | 2 | ||||
-rw-r--r-- | sound/soc/fsl/imx-ssi.c | 23 | ||||
-rw-r--r-- | sound/soc/fsl/imx-ssi.h | 2 |
4 files changed, 16 insertions, 13 deletions
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index c6b743978d5e..6b81d0ce2c44 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c | |||
@@ -936,7 +936,7 @@ static int fsl_ssi_probe(struct platform_device *pdev) | |||
936 | ssi_private->ssi_phys = res.start; | 936 | ssi_private->ssi_phys = res.start; |
937 | 937 | ||
938 | ssi_private->irq = irq_of_parse_and_map(np, 0); | 938 | ssi_private->irq = irq_of_parse_and_map(np, 0); |
939 | if (ssi_private->irq == NO_IRQ) { | 939 | if (ssi_private->irq == 0) { |
940 | dev_err(&pdev->dev, "no irq for node %s\n", np->full_name); | 940 | dev_err(&pdev->dev, "no irq for node %s\n", np->full_name); |
941 | return -ENXIO; | 941 | return -ENXIO; |
942 | } | 942 | } |
diff --git a/sound/soc/fsl/imx-mc13783.c b/sound/soc/fsl/imx-mc13783.c index a3d60d4bea4c..a2fd7321b5a9 100644 --- a/sound/soc/fsl/imx-mc13783.c +++ b/sound/soc/fsl/imx-mc13783.c | |||
@@ -112,7 +112,7 @@ static int imx_mc13783_probe(struct platform_device *pdev) | |||
112 | return ret; | 112 | return ret; |
113 | } | 113 | } |
114 | 114 | ||
115 | if (machine_is_mx31_3ds()) { | 115 | if (machine_is_mx31_3ds() || machine_is_mx31moboard()) { |
116 | imx_audmux_v2_configure_port(MX31_AUDMUX_PORT4_SSI_PINS_4, | 116 | imx_audmux_v2_configure_port(MX31_AUDMUX_PORT4_SSI_PINS_4, |
117 | IMX_AUDMUX_V2_PTCR_SYN, | 117 | IMX_AUDMUX_V2_PTCR_SYN, |
118 | IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0) | | 118 | IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0) | |
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c index f58bcd85c07f..57d6941676ff 100644 --- a/sound/soc/fsl/imx-ssi.c +++ b/sound/soc/fsl/imx-ssi.c | |||
@@ -600,19 +600,17 @@ static int imx_ssi_probe(struct platform_device *pdev) | |||
600 | ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx; | 600 | ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx; |
601 | ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx; | 601 | ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx; |
602 | 602 | ||
603 | ret = imx_pcm_fiq_init(pdev, &ssi->fiq_params); | 603 | ssi->fiq_init = imx_pcm_fiq_init(pdev, &ssi->fiq_params); |
604 | if (ret) | 604 | ssi->dma_init = imx_pcm_dma_init(pdev); |
605 | goto failed_pcm_fiq; | ||
606 | 605 | ||
607 | ret = imx_pcm_dma_init(pdev); | 606 | if (ssi->fiq_init && ssi->dma_init) { |
608 | if (ret) | 607 | ret = ssi->fiq_init; |
609 | goto failed_pcm_dma; | 608 | goto failed_pcm; |
609 | } | ||
610 | 610 | ||
611 | return 0; | 611 | return 0; |
612 | 612 | ||
613 | failed_pcm_dma: | 613 | failed_pcm: |
614 | imx_pcm_fiq_exit(pdev); | ||
615 | failed_pcm_fiq: | ||
616 | snd_soc_unregister_component(&pdev->dev); | 614 | snd_soc_unregister_component(&pdev->dev); |
617 | failed_register: | 615 | failed_register: |
618 | release_mem_region(res->start, resource_size(res)); | 616 | release_mem_region(res->start, resource_size(res)); |
@@ -628,8 +626,11 @@ static int imx_ssi_remove(struct platform_device *pdev) | |||
628 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 626 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
629 | struct imx_ssi *ssi = platform_get_drvdata(pdev); | 627 | struct imx_ssi *ssi = platform_get_drvdata(pdev); |
630 | 628 | ||
631 | imx_pcm_dma_exit(pdev); | 629 | if (!ssi->dma_init) |
632 | imx_pcm_fiq_exit(pdev); | 630 | imx_pcm_dma_exit(pdev); |
631 | |||
632 | if (!ssi->fiq_init) | ||
633 | imx_pcm_fiq_exit(pdev); | ||
633 | 634 | ||
634 | snd_soc_unregister_component(&pdev->dev); | 635 | snd_soc_unregister_component(&pdev->dev); |
635 | 636 | ||
diff --git a/sound/soc/fsl/imx-ssi.h b/sound/soc/fsl/imx-ssi.h index fb1616ba8c59..560c40fc9ebb 100644 --- a/sound/soc/fsl/imx-ssi.h +++ b/sound/soc/fsl/imx-ssi.h | |||
@@ -211,6 +211,8 @@ struct imx_ssi { | |||
211 | struct imx_dma_data filter_data_rx; | 211 | struct imx_dma_data filter_data_rx; |
212 | struct imx_pcm_fiq_params fiq_params; | 212 | struct imx_pcm_fiq_params fiq_params; |
213 | 213 | ||
214 | int fiq_init; | ||
215 | int dma_init; | ||
214 | int enabled; | 216 | int enabled; |
215 | }; | 217 | }; |
216 | 218 | ||