summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2012-03-07 11:15:37 +0200
committerLiam Girdwood <lrg@ti.com>2012-03-12 13:34:23 +0000
commit73c9522e76d7147d99ff859699405a9af81fec72 (patch)
treed02c53fc4946ce5ce5d4176ccf5b61902d534ed4 /sound
parente386615c01d37145aa27fd06d1f8de26f1acbb7f (diff)
downloadlinux-73c9522e76d7147d99ff859699405a9af81fec72.tar.gz
linux-73c9522e76d7147d99ff859699405a9af81fec72.tar.bz2
linux-73c9522e76d7147d99ff859699405a9af81fec72.zip
ASoC: omap McBSP: Clear rx_irq at probe time for OMAP4
On OMAP4 we have one interrupt line per McBSP port. At probe time tx, and rx irq value will be -ENXIO, and only the tx irq will get corrected. In omap_mcbsp_request if the rx_irq is not 0 we proceed, and try to request the interrupt, which will fail on OMAP4 (rx_irq == -6). To avoid this error, clear the rx_irq at probe time on OMAP4. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/omap/mcbsp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c
index 21dbb0532bca..c3e31deafa07 100644
--- a/sound/soc/omap/mcbsp.c
+++ b/sound/soc/omap/mcbsp.c
@@ -958,8 +958,10 @@ int __devinit omap_mcbsp_init(struct platform_device *pdev)
mcbsp->rx_irq = platform_get_irq_byname(pdev, "rx");
/* From OMAP4 there will be a single irq line */
- if (mcbsp->tx_irq == -ENXIO)
+ if (mcbsp->tx_irq == -ENXIO) {
mcbsp->tx_irq = platform_get_irq(pdev, 0);
+ mcbsp->rx_irq = 0;
+ }
res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
if (!res) {