diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 16:06:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 16:06:10 -0400 |
commit | e1f5b94fd0c93c3e27ede88b7ab652d086dc960f (patch) | |
tree | e8de7a132eb88521dd1c19e128eba2d5349bdf4f /drivers/usb/serial/pl2303.c | |
parent | 6fd03301d76bc439382710e449f58efbb233df1b (diff) | |
parent | 1b6ed69f974f6f32c8be0d9a7fc952822eb83b6f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (143 commits)
USB: xhci depends on PCI.
USB: xhci: Add Makefile, MAINTAINERS, and Kconfig entries.
USB: xhci: Respect critical sections.
USB: xHCI: Fix interrupt moderation.
USB: xhci: Remove packed attribute from structures.
usb; xhci: Fix TRB offset calculations.
USB: xhci: replace if-elseif-else with switch-case
USB: xhci: Make xhci-mem.c include linux/dmapool.h
USB: xhci: drop spinlock in xhci_urb_enqueue() error path.
USB: Change names of SuperSpeed ep companion descriptor structs.
USB: xhci: Avoid compiler reordering in Link TRB giveback.
USB: xhci: Clean up xhci_irq() function.
USB: xhci: Avoid global namespace pollution.
USB: xhci: Fix Link TRB handoff bit twiddling.
USB: xhci: Fix register write order.
USB: xhci: fix some compiler warnings in xhci.h
USB: xhci: fix lots of compiler warnings.
USB: xhci: use xhci_handle_event instead of handle_event
USB: xhci: URB cancellation support.
USB: xhci: Scatter gather list support for bulk transfers.
...
Diffstat (limited to 'drivers/usb/serial/pl2303.c')
-rw-r--r-- | drivers/usb/serial/pl2303.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index e02dc3d643c7..ec6c132a25b5 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c | |||
@@ -878,7 +878,7 @@ static void pl2303_break_ctl(struct tty_struct *tty, int break_state) | |||
878 | dbg("%s - error sending break = %d", __func__, result); | 878 | dbg("%s - error sending break = %d", __func__, result); |
879 | } | 879 | } |
880 | 880 | ||
881 | static void pl2303_shutdown(struct usb_serial *serial) | 881 | static void pl2303_release(struct usb_serial *serial) |
882 | { | 882 | { |
883 | int i; | 883 | int i; |
884 | struct pl2303_private *priv; | 884 | struct pl2303_private *priv; |
@@ -890,7 +890,6 @@ static void pl2303_shutdown(struct usb_serial *serial) | |||
890 | if (priv) { | 890 | if (priv) { |
891 | pl2303_buf_free(priv->buf); | 891 | pl2303_buf_free(priv->buf); |
892 | kfree(priv); | 892 | kfree(priv); |
893 | usb_set_serial_port_data(serial->port[i], NULL); | ||
894 | } | 893 | } |
895 | } | 894 | } |
896 | } | 895 | } |
@@ -927,6 +926,8 @@ static void pl2303_update_line_status(struct usb_serial_port *port, | |||
927 | spin_lock_irqsave(&priv->lock, flags); | 926 | spin_lock_irqsave(&priv->lock, flags); |
928 | priv->line_status = data[status_idx]; | 927 | priv->line_status = data[status_idx]; |
929 | spin_unlock_irqrestore(&priv->lock, flags); | 928 | spin_unlock_irqrestore(&priv->lock, flags); |
929 | if (priv->line_status & UART_BREAK_ERROR) | ||
930 | usb_serial_handle_break(port); | ||
930 | wake_up_interruptible(&priv->delta_msr_wait); | 931 | wake_up_interruptible(&priv->delta_msr_wait); |
931 | } | 932 | } |
932 | 933 | ||
@@ -1037,7 +1038,8 @@ static void pl2303_read_bulk_callback(struct urb *urb) | |||
1037 | if (line_status & UART_OVERRUN_ERROR) | 1038 | if (line_status & UART_OVERRUN_ERROR) |
1038 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); | 1039 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); |
1039 | for (i = 0; i < urb->actual_length; ++i) | 1040 | for (i = 0; i < urb->actual_length; ++i) |
1040 | tty_insert_flip_char(tty, data[i], tty_flag); | 1041 | if (!usb_serial_handle_sysrq_char(port, data[i])) |
1042 | tty_insert_flip_char(tty, data[i], tty_flag); | ||
1041 | tty_flip_buffer_push(tty); | 1043 | tty_flip_buffer_push(tty); |
1042 | } | 1044 | } |
1043 | tty_kref_put(tty); | 1045 | tty_kref_put(tty); |
@@ -1120,7 +1122,7 @@ static struct usb_serial_driver pl2303_device = { | |||
1120 | .write_room = pl2303_write_room, | 1122 | .write_room = pl2303_write_room, |
1121 | .chars_in_buffer = pl2303_chars_in_buffer, | 1123 | .chars_in_buffer = pl2303_chars_in_buffer, |
1122 | .attach = pl2303_startup, | 1124 | .attach = pl2303_startup, |
1123 | .shutdown = pl2303_shutdown, | 1125 | .release = pl2303_release, |
1124 | }; | 1126 | }; |
1125 | 1127 | ||
1126 | static int __init pl2303_init(void) | 1128 | static int __init pl2303_init(void) |