diff options
Diffstat (limited to 'uClinux-2.4.20-uc1/drivers/usb/serial')
-rw-r--r-- | uClinux-2.4.20-uc1/drivers/usb/serial/Config.in | 3 | ||||
-rw-r--r-- | uClinux-2.4.20-uc1/drivers/usb/serial/usbserial.c | 17 |
2 files changed, 18 insertions, 2 deletions
diff --git a/uClinux-2.4.20-uc1/drivers/usb/serial/Config.in b/uClinux-2.4.20-uc1/drivers/usb/serial/Config.in index 64dabbb..2d611fe 100644 --- a/uClinux-2.4.20-uc1/drivers/usb/serial/Config.in +++ b/uClinux-2.4.20-uc1/drivers/usb/serial/Config.in @@ -8,6 +8,9 @@ dep_tristate 'USB Serial Converter support' CONFIG_USB_SERIAL $CONFIG_USB if [ "$CONFIG_USB_SERIAL" != "n" ]; then dep_bool ' USB Serial Converter verbose debug' CONFIG_USB_SERIAL_DEBUG $CONFIG_USB_SERIAL dep_mbool ' USB Generic Serial Driver' CONFIG_USB_SERIAL_GENERIC $CONFIG_USB_SERIAL +if [ "$CONFIG_USB_SERIAL_GENERIC" = "y" ]; then + bool ' Support Winbond VCOM with Generic Serial Driver' $CONFIG_WINBOND_VCOM +fi dep_tristate ' USB Belkin and Peracom Single Port Serial Driver' CONFIG_USB_SERIAL_BELKIN $CONFIG_USB_SERIAL dep_tristate ' USB ConnectTech WhiteHEAT Serial Driver' CONFIG_USB_SERIAL_WHITEHEAT $CONFIG_USB_SERIAL dep_tristate ' USB Digi International AccelePort USB Serial Driver' CONFIG_USB_SERIAL_DIGI_ACCELEPORT $CONFIG_USB_SERIAL 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, |