aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/fsl/fsl_ssi.c
diff options
context:
space:
mode:
authorMichael Grzeschik <m.grzeschik@pengutronix.de>2013-08-19 11:06:01 -0400
committerMark Brown <broonie@linaro.org>2013-08-22 06:11:20 -0400
commitf037708654eef9c5477ac2a88b3a1e8b5d190dc4 (patch)
treeae3916f29a99d267dc5dd52cf6cca6308661ec18 /sound/soc/fsl/fsl_ssi.c
parent9b443e3d89ba507ba5f51682f3896f859b2e5007 (diff)
ASoC: fsl: disable ssi irq for imx
We have to disable the ssi irq, as it is not safe for all platforms to write back into the status register. It also runs into non-linefetch aborts. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/fsl/fsl_ssi.c')
-rw-r--r--sound/soc/fsl/fsl_ssi.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
index 198656fd171d..5cf626c4dc96 100644
--- a/sound/soc/fsl/fsl_ssi.c
+++ b/sound/soc/fsl/fsl_ssi.c
@@ -941,18 +941,6 @@ static int fsl_ssi_probe(struct platform_device *pdev)
941 return -ENXIO; 941 return -ENXIO;
942 } 942 }
943 943
944 if (ssi_private->use_dma) {
945 /* The 'name' should not have any slashes in it. */
946 ret = devm_request_irq(&pdev->dev, ssi_private->irq,
947 fsl_ssi_isr, 0, ssi_private->name,
948 ssi_private);
949 if (ret < 0) {
950 dev_err(&pdev->dev, "could not claim irq %u\n",
951 ssi_private->irq);
952 goto error_irqmap;
953 }
954 }
955
956 /* Are the RX and the TX clocks locked? */ 944 /* Are the RX and the TX clocks locked? */
957 if (!of_find_property(np, "fsl,ssi-asynchronous", NULL)) 945 if (!of_find_property(np, "fsl,ssi-asynchronous", NULL))
958 ssi_private->cpu_dai_drv.symmetric_rates = 1; 946 ssi_private->cpu_dai_drv.symmetric_rates = 1;
@@ -1020,6 +1008,16 @@ static int fsl_ssi_probe(struct platform_device *pdev)
1020 dma_events[0], shared ? IMX_DMATYPE_SSI_SP : IMX_DMATYPE_SSI); 1008 dma_events[0], shared ? IMX_DMATYPE_SSI_SP : IMX_DMATYPE_SSI);
1021 imx_pcm_dma_params_init_data(&ssi_private->filter_data_rx, 1009 imx_pcm_dma_params_init_data(&ssi_private->filter_data_rx,
1022 dma_events[1], shared ? IMX_DMATYPE_SSI_SP : IMX_DMATYPE_SSI); 1010 dma_events[1], shared ? IMX_DMATYPE_SSI_SP : IMX_DMATYPE_SSI);
1011 } else if (ssi_private->use_dma) {
1012 /* The 'name' should not have any slashes in it. */
1013 ret = devm_request_irq(&pdev->dev, ssi_private->irq,
1014 fsl_ssi_isr, 0, ssi_private->name,
1015 ssi_private);
1016 if (ret < 0) {
1017 dev_err(&pdev->dev, "could not claim irq %u\n",
1018 ssi_private->irq);
1019 goto error_irqmap;
1020 }
1023 } 1021 }
1024 1022
1025 /* Initialize the the device_attribute structure */ 1023 /* Initialize the the device_attribute structure */