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>
This commit is contained in:
Peter Ujfalusi 2012-03-07 11:15:37 +02:00 committed by Liam Girdwood
parent e386615c01
commit 73c9522e76

View File

@ -958,8 +958,10 @@ int __devinit omap_mcbsp_init(struct platform_device *pdev)
mcbsp->rx_irq = platform_get_irq_byname(pdev, "rx"); mcbsp->rx_irq = platform_get_irq_byname(pdev, "rx");
/* From OMAP4 there will be a single irq line */ /* 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->tx_irq = platform_get_irq(pdev, 0);
mcbsp->rx_irq = 0;
}
res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx"); res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
if (!res) { if (!res) {