diff options
author | Johan Hovold <jhovold@gmail.com> | 2013-03-21 07:37:25 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-25 16:52:26 -0400 |
commit | 23bd364dcf90de36f470e5a29f1684e128b53f38 (patch) | |
tree | e654575b52a006a90b79cff7ecf764f0c209c6ed | |
parent | f65f9a50ddc6db4deebd01541bea09fb1672ce40 (diff) |
USB: spcp8x5: remove broken uart-error handling
Remove broken uart-error handling.
This driver appears to implement uart-error handling but does not
receive status interrupts or status information with bulk in transfers.
Instead status was retrieved at open and used to flag only the first
bulk in transfer.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/usb/serial/spcp8x5.c | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c index e24d23b524b1..f34930cda68d 100644 --- a/drivers/usb/serial/spcp8x5.c +++ b/drivers/usb/serial/spcp8x5.c | |||
@@ -456,57 +456,6 @@ static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port) | |||
456 | return usb_serial_generic_open(tty, port); | 456 | return usb_serial_generic_open(tty, port); |
457 | } | 457 | } |
458 | 458 | ||
459 | static void spcp8x5_process_read_urb(struct urb *urb) | ||
460 | { | ||
461 | struct usb_serial_port *port = urb->context; | ||
462 | struct spcp8x5_private *priv = usb_get_serial_port_data(port); | ||
463 | unsigned char *data = urb->transfer_buffer; | ||
464 | unsigned long flags; | ||
465 | u8 status; | ||
466 | char tty_flag; | ||
467 | |||
468 | /* get tty_flag from status */ | ||
469 | tty_flag = TTY_NORMAL; | ||
470 | |||
471 | spin_lock_irqsave(&priv->lock, flags); | ||
472 | status = priv->line_status; | ||
473 | priv->line_status &= ~UART_STATE_TRANSIENT_MASK; | ||
474 | spin_unlock_irqrestore(&priv->lock, flags); | ||
475 | |||
476 | if (!urb->actual_length) | ||
477 | return; | ||
478 | |||
479 | |||
480 | if (status & UART_STATE_TRANSIENT_MASK) { | ||
481 | /* break takes precedence over parity, which takes precedence | ||
482 | * over framing errors */ | ||
483 | if (status & UART_BREAK_ERROR) | ||
484 | tty_flag = TTY_BREAK; | ||
485 | else if (status & UART_PARITY_ERROR) | ||
486 | tty_flag = TTY_PARITY; | ||
487 | else if (status & UART_FRAME_ERROR) | ||
488 | tty_flag = TTY_FRAME; | ||
489 | dev_dbg(&port->dev, "tty_flag = %d\n", tty_flag); | ||
490 | |||
491 | /* overrun is special, not associated with a char */ | ||
492 | if (status & UART_OVERRUN_ERROR) | ||
493 | tty_insert_flip_char(&port->port, 0, TTY_OVERRUN); | ||
494 | |||
495 | if (status & UART_DCD) { | ||
496 | struct tty_struct *tty = tty_port_tty_get(&port->port); | ||
497 | if (tty) { | ||
498 | usb_serial_handle_dcd_change(port, tty, | ||
499 | priv->line_status & MSR_STATUS_LINE_DCD); | ||
500 | tty_kref_put(tty); | ||
501 | } | ||
502 | } | ||
503 | } | ||
504 | |||
505 | tty_insert_flip_string_fixed_flag(&port->port, data, tty_flag, | ||
506 | urb->actual_length); | ||
507 | tty_flip_buffer_push(&port->port); | ||
508 | } | ||
509 | |||
510 | static int spcp8x5_tiocmset(struct tty_struct *tty, | 459 | static int spcp8x5_tiocmset(struct tty_struct *tty, |
511 | unsigned int set, unsigned int clear) | 460 | unsigned int set, unsigned int clear) |
512 | { | 461 | { |
@@ -571,7 +520,6 @@ static struct usb_serial_driver spcp8x5_device = { | |||
571 | .tiocmset = spcp8x5_tiocmset, | 520 | .tiocmset = spcp8x5_tiocmset, |
572 | .port_probe = spcp8x5_port_probe, | 521 | .port_probe = spcp8x5_port_probe, |
573 | .port_remove = spcp8x5_port_remove, | 522 | .port_remove = spcp8x5_port_remove, |
574 | .process_read_urb = spcp8x5_process_read_urb, | ||
575 | }; | 523 | }; |
576 | 524 | ||
577 | static struct usb_serial_driver * const serial_drivers[] = { | 525 | static struct usb_serial_driver * const serial_drivers[] = { |