aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/cp2101.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-02-01 22:28:57 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2008-02-01 22:28:57 -0500
commitb6cf160c4b788a31f6a4017a469b956ca77febf4 (patch)
treed4d525000e283fe08905385d91dd0170454eae9a /drivers/usb/serial/cp2101.c
parented50d6cbc394cd0966469d3e249353c9dd1d38b9 (diff)
parent2c044a4803804708984931bcbd03314732e995d5 (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: (128 commits) USB: fix codingstyle issues in drivers/usb/core/*.c USB: fix codingstyle issues in drivers/usb/core/message.c USB: fix codingstyle issues in drivers/usb/core/hcd-pci.c USB: fix codingstyle issues in drivers/usb/core/devio.c USB: fix codingstyle issues in drivers/usb/core/devices.c USB: fix codingstyle issues in drivers/usb/core/*.h USB: fix codingstyle issues in include/linux/usb/ USB: fix codingstyle issues in include/linux/usb.h USB: mark USB drivers as being GPL only USB: use a real vendor and product id for root hubs USB: mount options: fix usbfs USB: Fix usb_serial_driver structure for Kobil cardreader driver. usb: ehci should use u16 for isochronous intervals usb: ehci, remove false clear-reset path USB: Use menuconfig objects usb: ohci-sm501 driver usb: dma bounce buffer support USB: last abuses of intfdata in close for usb-serial drivers USB: kl5kusb105 don't flush to logically disconnected devices USB: oti6858: cleanup ...
Diffstat (limited to 'drivers/usb/serial/cp2101.c')
-rw-r--r--drivers/usb/serial/cp2101.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/serial/cp2101.c b/drivers/usb/serial/cp2101.c
index 22833589c4be..f3ca66017a03 100644
--- a/drivers/usb/serial/cp2101.c
+++ b/drivers/usb/serial/cp2101.c
@@ -59,6 +59,7 @@ static struct usb_device_id id_table [] = {
59 { USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */ 59 { USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */
60 { USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */ 60 { USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */
61 { USB_DEVICE(0x10B5, 0xAC70) }, /* Nokia CA-42 USB */ 61 { USB_DEVICE(0x10B5, 0xAC70) }, /* Nokia CA-42 USB */
62 { USB_DEVICE(0x10C4, 0x800A) }, /* SPORTident BSM7-D-USB main station */
62 { USB_DEVICE(0x10C4, 0x803B) }, /* Pololu USB-serial converter */ 63 { USB_DEVICE(0x10C4, 0x803B) }, /* Pololu USB-serial converter */
63 { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */ 64 { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */
64 { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */ 65 { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */
@@ -76,8 +77,13 @@ static struct usb_device_id id_table [] = {
76 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */ 77 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */
77 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ 78 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
78 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ 79 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
80 { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
81 { USB_DEVICE(0x10C4, 0xF002) }, /* Elan Digital Systems USBwave12 */
82 { USB_DEVICE(0x10C4, 0xF003) }, /* Elan Digital Systems USBpulse100 */
83 { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */
79 { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ 84 { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */
80 { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ 85 { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */
86 { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */
81 { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */ 87 { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */
82 { } /* Terminating Entry */ 88 { } /* Terminating Entry */
83}; 89};
@@ -342,7 +348,10 @@ static void cp2101_close (struct usb_serial_port *port, struct file * filp)
342 usb_kill_urb(port->write_urb); 348 usb_kill_urb(port->write_urb);
343 usb_kill_urb(port->read_urb); 349 usb_kill_urb(port->read_urb);
344 350
345 cp2101_set_config_single(port, CP2101_UART, UART_DISABLE); 351 mutex_lock(&port->serial->disc_mutex);
352 if (!port->serial->disconnected)
353 cp2101_set_config_single(port, CP2101_UART, UART_DISABLE);
354 mutex_unlock(&port->serial->disc_mutex);
346} 355}
347 356
348/* 357/*