diff options
Diffstat (limited to 'drivers/usb/serial/spcp8x5.c')
-rw-r--r-- | drivers/usb/serial/spcp8x5.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c index 329d311a35d9..f88bc511da65 100644 --- a/drivers/usb/serial/spcp8x5.c +++ b/drivers/usb/serial/spcp8x5.c | |||
@@ -133,7 +133,7 @@ struct spcp8x5_usb_ctrl_arg { | |||
133 | 133 | ||
134 | /* how come ??? */ | 134 | /* how come ??? */ |
135 | #define UART_STATE 0x08 | 135 | #define UART_STATE 0x08 |
136 | #define UART_STATE_TRANSIENT_MASK 0x74 | 136 | #define UART_STATE_TRANSIENT_MASK 0x75 |
137 | #define UART_DCD 0x01 | 137 | #define UART_DCD 0x01 |
138 | #define UART_DSR 0x02 | 138 | #define UART_DSR 0x02 |
139 | #define UART_BREAK_ERROR 0x04 | 139 | #define UART_BREAK_ERROR 0x04 |
@@ -526,6 +526,10 @@ static void spcp8x5_process_read_urb(struct urb *urb) | |||
526 | /* overrun is special, not associated with a char */ | 526 | /* overrun is special, not associated with a char */ |
527 | if (status & UART_OVERRUN_ERROR) | 527 | if (status & UART_OVERRUN_ERROR) |
528 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); | 528 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); |
529 | |||
530 | if (status & UART_DCD) | ||
531 | usb_serial_handle_dcd_change(port, tty, | ||
532 | priv->line_status & MSR_STATUS_LINE_DCD); | ||
529 | } | 533 | } |
530 | 534 | ||
531 | tty_insert_flip_string_fixed_flag(tty, data, tty_flag, | 535 | tty_insert_flip_string_fixed_flag(tty, data, tty_flag, |
@@ -646,6 +650,7 @@ static struct usb_serial_driver spcp8x5_device = { | |||
646 | .name = "SPCP8x5", | 650 | .name = "SPCP8x5", |
647 | }, | 651 | }, |
648 | .id_table = id_table, | 652 | .id_table = id_table, |
653 | .usb_driver = &spcp8x5_driver, | ||
649 | .num_ports = 1, | 654 | .num_ports = 1, |
650 | .open = spcp8x5_open, | 655 | .open = spcp8x5_open, |
651 | .dtr_rts = spcp8x5_dtr_rts, | 656 | .dtr_rts = spcp8x5_dtr_rts, |