tty/8250 Add XR17D15x devices to the exar_handle_irq override
authorMatt Schulte <matts@commtech-fastcom.com>
Wed, 21 Nov 2012 15:40:49 +0000 (09:40 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Nov 2012 00:30:03 +0000 (16:30 -0800)
Add XR17D15x devices to the exar_handle_irq override: they have the
same extra interrupt register that could fire and never be serviced by
the standard handle_irq.

Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250.c

index 4ab8af797ad9addf7d5b55d55fcffec26f626b13..d085e3a8ec0644bc9760caa0aed026533905c2a4 100644 (file)
@@ -1578,7 +1578,8 @@ static int exar_handle_irq(struct uart_port *port)
 
        ret = serial8250_handle_irq(port, iir);
 
-       if (port->type == PORT_XR17V35X) {
+       if ((port->type == PORT_XR17V35X) ||
+          (port->type == PORT_XR17D15X)) {
                int0 = serial_port_in(port, 0x80);
                int1 = serial_port_in(port, 0x81);
                int2 = serial_port_in(port, 0x82);
@@ -2689,7 +2690,8 @@ static void serial8250_config_port(struct uart_port *port, int flags)
                serial8250_release_std_resource(up);
 
        /* Fixme: probably not the best place for this */
-       if (port->type == PORT_XR17V35X)
+       if ((port->type == PORT_XR17V35X) ||
+          (port->type == PORT_XR17D15X))
                port->handle_irq = exar_handle_irq;
 }