[ARM] i.MX serial: fix IRQ allocation
authorPavel Pisa <ppisa4lists@pikron.com>
Tue, 6 Feb 2007 00:10:20 +0000 (16:10 -0800)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 11 Feb 2007 16:46:23 +0000 (16:46 +0000)
If RTS interrupt is caused by RTS senzing logic inside i.MX UART module the
IRQ type cannot be set.

It applies only for interrupts going through GPIO layer.  The problem has
been noticed by Konstantin Kletschke some time ago.

  No IRQF_TRIGGER set_type function for IRQ 26 (MPU)

I would not change type to fixed 0, because it could be possible to use
different GPIO MX1 pin for RTS in the theory.  On the other hand it is only
for documentation purposes now, because RTS read code would have to be
adjusted in such case.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/serial/imx.c

index 03b495c2de14537b9f46109b40c2c96a47d2723a..04cc88cc528cec7eb742eee9e5e952e3662be502 100644 (file)
@@ -403,7 +403,8 @@ static int imx_startup(struct uart_port *port)
        if (retval) goto error_out2;
 
        retval = request_irq(sport->rtsirq, imx_rtsint,
-                            IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+                            (sport->rtsirq < IMX_IRQS) ? 0 :
+                              IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
                             DRIVER_NAME, sport);
        if (retval) goto error_out3;