aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/pl2303.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/pl2303.c')
-rw-r--r--drivers/usb/serial/pl2303.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 7eab5d4cf3a8..3cf245bdda54 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -95,6 +95,7 @@ static struct usb_device_id id_table [] = {
95 { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) }, 95 { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) },
96 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) }, 96 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) },
97 { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) }, 97 { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) },
98 { USB_DEVICE( NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID ) },
98 { } /* Terminating entry */ 99 { } /* Terminating entry */
99}; 100};
100 101
@@ -538,8 +539,10 @@ static int pl2303_open (struct usb_serial_port *port, struct file *filp)
538 539
539 dbg("%s - port %d", __FUNCTION__, port->number); 540 dbg("%s - port %d", __FUNCTION__, port->number);
540 541
541 usb_clear_halt(serial->dev, port->write_urb->pipe); 542 if (priv->type != HX) {
542 usb_clear_halt(serial->dev, port->read_urb->pipe); 543 usb_clear_halt(serial->dev, port->write_urb->pipe);
544 usb_clear_halt(serial->dev, port->read_urb->pipe);
545 }
543 546
544 buf = kmalloc(10, GFP_KERNEL); 547 buf = kmalloc(10, GFP_KERNEL);
545 if (buf==NULL) 548 if (buf==NULL)
@@ -650,8 +653,7 @@ static void pl2303_close (struct usb_serial_port *port, struct file *filp)
650 timeout = max((HZ*2560)/bps,HZ/10); 653 timeout = max((HZ*2560)/bps,HZ/10);
651 else 654 else
652 timeout = 2*HZ; 655 timeout = 2*HZ;
653 set_current_state(TASK_INTERRUPTIBLE); 656 schedule_timeout_interruptible(timeout);
654 schedule_timeout(timeout);
655 657
656 /* shutdown our urbs */ 658 /* shutdown our urbs */
657 dbg("%s - shutting down urbs", __FUNCTION__); 659 dbg("%s - shutting down urbs", __FUNCTION__);