[alsa-devel] [PATCH] ASoC: omap McBSP: Clear rx_irq at probe time for OMAP4
On OMAP4 we have one interrupt line per McBSP port. At proble 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 --- sound/soc/omap/mcbsp.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c index 21dbb05..c3e31de 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) {
Dear Peter,
Am Mittwoch, den 07.03.2012, 11:17 +0200 schrieb Peter Ujfalusi:
On OMAP4 we have one interrupt line per McBSP port. At proble time tx, and rx irq value will be -ENXIO,
s/proble/probe/
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
sound/soc/omap/mcbsp.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c index 21dbb05..c3e31de 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) {
Reviewed-by: Paul Menzel paulepanter@users.sourceforge.net
Thanks,
Paul
On 03/07/2012 11:48 AM, Paul Menzel wrote:
Dear Peter,
Am Mittwoch, den 07.03.2012, 11:17 +0200 schrieb Peter Ujfalusi:
On OMAP4 we have one interrupt line per McBSP port. At proble time tx, and rx irq value will be -ENXIO,
s/proble/probe/
I think I have acked this earlier to plat-omap/mcbsp.c. You could add my ack here
Acked-by: Jarkko Nikula jarkko.nikula@bitmer.com
On Wed, Mar 07, 2012 at 11:17:19AM +0200, Peter Ujfalusi wrote:
On OMAP4 we have one interrupt line per McBSP port. At proble time tx, and rx irq value will be -ENXIO, and only the tx irq will get corrected.
Acked-by: Mark Brown broonie@opensource.wolfsonmicro.com
participants (4)
-
Jarkko Nikula
-
Mark Brown
-
Paul Menzel
-
Peter Ujfalusi