diff options
Diffstat (limited to 'uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c')
-rw-r--r-- | uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c b/uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c index 79979c6..06c3a47 100644 --- a/uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c +++ b/uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c @@ -329,8 +329,14 @@ static void generic_shutdown (struct usb_serial *serial); #ifdef CONFIG_USB_SERIAL_GENERIC -static __u16 vendor = 0x05f9; -static __u16 product = 0xffff; +#ifdef CONFIG_WINBOND_VCOM +static __u16 vendor = 0x0416; +static __u16 product = 0x7021; +#else +static __u16 vendor = 0x05f9; +static __u16 product = 0xffff; +#endif +#endif static struct usb_device_id generic_device_ids[2]; /* Initially all zeroes. */ @@ -940,6 +946,13 @@ static int generic_write (struct usb_serial_port *port, int from_user, const uns usb_serial_debug_data (__FILE__, __FUNCTION__, count, port->write_urb->transfer_buffer); +#ifdef CONFIG_WINBOND_VCOM + /* + Send vendor command to USBD regarding the following bulk out length. + */ + usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), + 0xA0, 0x40, 0x12, count, NULL, 0, 100); +#endif /* set up our urb */ usb_fill_bulk_urb (port->write_urb, serial->dev, usb_sndbulkpipe (serial->dev, |