USB: pl2303 usb_serial: implement sysrq handling on break
authorJason Wessel <jason.wessel@windriver.com>
Fri, 29 May 2009 18:34:16 +0000 (13:34 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 16 Jun 2009 04:44:46 +0000 (21:44 -0700)
Add callbacks to process the sysrq when using a pl2303 usb device as a
console.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/pl2303.c

index e02dc3d643c7ae1279f467b21584e2899a82dfb7..6357b57f628cff41c97a94e694084129bba940a4 100644 (file)
@@ -927,6 +927,8 @@ static void pl2303_update_line_status(struct usb_serial_port *port,
        spin_lock_irqsave(&priv->lock, flags);
        priv->line_status = data[status_idx];
        spin_unlock_irqrestore(&priv->lock, flags);
+       if (priv->line_status & UART_BREAK_ERROR)
+               usb_serial_handle_break(port);
        wake_up_interruptible(&priv->delta_msr_wait);
 }
 
@@ -1037,7 +1039,8 @@ static void pl2303_read_bulk_callback(struct urb *urb)
                if (line_status & UART_OVERRUN_ERROR)
                        tty_insert_flip_char(tty, 0, TTY_OVERRUN);
                for (i = 0; i < urb->actual_length; ++i)
-                       tty_insert_flip_char(tty, data[i], tty_flag);
+                       if (!usb_serial_handle_sysrq_char(port, data[i]))
+                               tty_insert_flip_char(tty, data[i], tty_flag);
                tty_flip_buffer_push(tty);
        }
        tty_kref_put(tty);