linux/drivers/usb/serial
Preston Fick a5360a53a7 usb: cp210x: Update to support CP2105 and multiple interface devices
This patch updates the cp210x driver to support CP210x multiple
interface devices devices from Silicon Labs. The existing driver
always sends control requests to interface 0, which is hardcoded in
the usb_control_msg function calls. This only allows for single
interface devices to be used, and causes a bug when using ports on an
interface other than 0 in the multiple interface devices.

Here are the changes included in this patch:
- Updated the device list to contain the Silicon Labs factory default
  VID/PID for multiple interface CP210x devices
- Created a cp210x_port_private struct created for each port on
  startup, this struct holds the interface number
- Added a cp210x_release function to clean up the cp210x_port_private
  memory created on startup
- Modified usb_get_config and usb_set_config to get a pointer to the
  cp210x_port_private struct, and use the interface number there in the
  usb_control_message wIndex param

Signed-off-by: Preston Fick <preston.fick@silabs.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-03-02 16:19:16 -08:00
..
aircable.c USB: serial: aircable.c: use module_usb_serial_driver 2012-02-28 13:11:32 -08:00
ark3116.c USB: serial: ark3116.c: use module_usb_serial_driver 2012-02-28 13:11:35 -08:00
belkin_sa.c USB: serial: belkin_sa.c: use module_usb_serial_driver 2012-02-28 13:11:35 -08:00
belkin_sa.h USB: belkin_sa.h: checkpatch cleanups 2010-05-20 13:21:46 -07:00
bus.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ch341.c USB: serial: ch341.c: use module_usb_serial_driver 2012-02-28 13:11:37 -08:00
console.c usb-console: pass baud from console to the initial tty open 2010-05-20 13:21:32 -07:00
cp210x.c usb: cp210x: Update to support CP2105 and multiple interface devices 2012-03-02 16:19:16 -08:00
cyberjack.c USB: serial: cyberjack.c: use module_usb_serial_driver 2012-02-28 13:11:40 -08:00
cypress_m8.c USB: serial: cypress_m8.c: use module_usb_serial_driver 2012-02-28 13:11:41 -08:00
cypress_m8.h USB: cypress_m8.h: checkpatch cleanups 2010-05-20 13:21:46 -07:00
digi_acceleport.c USB: serial: digi_acceleport.c: use module_usb_serial_driver 2012-02-28 13:11:41 -08:00
empeg.c USB: serial: empeg.c: use module_usb_serial_driver 2012-02-28 13:11:42 -08:00
ezusb_convert.pl
ezusb.c
f81232.c USB: serial: add Fintek F81232 usb to serial driver 2012-02-28 13:36:35 -08:00
ftdi_sio_ids.h usb-serial: Add support for the Sealevel SeaLINK+8 2038-ROHS device 2012-02-24 16:15:48 -08:00
ftdi_sio.c USB: ftdi_sio: add support for BeagleBone rev A5+ 2012-03-01 09:28:28 -08:00
ftdi_sio.h USB: Add new FT232H chip to drivers/usb/serial/ftdi_sio.c 2011-06-27 13:46:44 -07:00
funsoft.c USB: serial: funsoft.c: use module_usb_serial_driver 2012-02-28 13:11:44 -08:00
garmin_gps.c USB: serial: garmin_gps.c: use module_usb_serial_driver 2012-02-28 13:11:46 -08:00
generic.c usb-serial: new API for driver registration 2012-02-24 12:39:17 -08:00
hp4x.c USB: serial: hp4x.c: use module_usb_serial_driver 2012-02-28 13:11:49 -08:00
io_16654.h
io_edgeport.c USB: serial: io_edgeport.c: use module_usb_serial_driver 2012-02-28 13:11:51 -08:00
io_edgeport.h Fix common misspellings 2011-03-31 11:26:23 -03:00
io_ionsp.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
io_tables.h usb-serial: use new registration API in [i-j]* drivers 2012-02-24 12:39:18 -08:00
io_ti.c USB: serial: io_ti.c: use module_usb_serial_driver 2012-02-28 13:11:53 -08:00
io_ti.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
io_usbvend.h USB: io_edgeport: checkpatch cleanups 2010-05-20 13:21:47 -07:00
ipaq.c usb-serial: use new registration API in [i-j]* drivers 2012-02-24 12:39:18 -08:00
ipw.c USB: serial: ipw.c: use module_usb_serial_driver 2012-02-28 13:11:56 -08:00
ir-usb.c usb-serial: use new registration API in [i-j]* drivers 2012-02-24 12:39:18 -08:00
iuu_phoenix.c USB: serial: iuu_phoenix.c: use module_usb_serial_driver 2012-02-28 13:11:58 -08:00
iuu_phoenix.h
Kconfig USB: serial: add Fintek F81232 usb to serial driver 2012-02-28 13:36:35 -08:00
keyspan_pda.c USB: serial: keyspan_pda.c: use module_usb_serial_driver 2012-02-28 13:11:59 -08:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: serial: keyspan.c: use module_usb_serial_driver 2012-02-28 13:11:59 -08:00
keyspan.h usb-serial: use new registration API in [k-m]* drivers 2012-02-24 12:39:19 -08:00
kl5kusb105.c USB: serial: kl5kusb105.c: use module_usb_serial_driver 2012-02-28 13:12:00 -08:00
kl5kusb105.h USB: kl5kusb105.h: checkpatch cleanups 2010-05-20 13:21:47 -07:00
kobil_sct.c USB: serial: kobil_sct.c: use module_usb_serial_driver 2012-02-28 13:12:02 -08:00
kobil_sct.h USB: kobil_sct.h: checkpatch cleanups 2010-05-20 13:21:47 -07:00
Makefile USB: serial: add Fintek F81232 usb to serial driver 2012-02-28 13:36:35 -08:00
Makefile-keyspan_pda_fw
mct_u232.c USB: serial: mct_u232.c: use module_usb_serial_driver 2012-02-28 13:12:05 -08:00
mct_u232.h Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
mos7720.c USB: serial: mos7720.c: use module_usb_serial_driver 2012-02-28 13:12:07 -08:00
mos7840.c USB: serial: mos7840.c: use module_usb_serial_driver 2012-02-28 13:12:10 -08:00
moto_modem.c USB: serial: moto_modem.c: use module_usb_serial_driver 2012-02-28 13:12:12 -08:00
navman.c USB: serial: navman.c: use module_usb_serial_driver 2012-02-28 13:12:14 -08:00
omninet.c USB: serial: omninet.c: use module_usb_serial_driver 2012-02-28 13:12:17 -08:00
opticon.c USB: serial: opticon.c: use module_usb_serial_driver 2012-02-28 13:12:19 -08:00
option.c USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems 2012-03-01 09:28:28 -08:00
oti6858.c USB: serial: oti6858.c: use module_usb_serial_driver 2012-02-28 13:12:22 -08:00
oti6858.h
pl2303.c USB: create module_usb_serial_driver macro 2012-02-28 11:21:48 -08:00
pl2303.h USB: serial: pl2303: rm duplicate id 2011-11-15 10:06:15 -08:00
qcaux.c USB: serial: qcaux.c: use module_usb_serial_driver 2012-02-28 13:12:24 -08:00
qcserial.c USB: serial: qcserial.c: use module_usb_serial_driver 2012-02-28 13:12:26 -08:00
safe_serial.c usb-serial: use new registration API in [q-s]* drivers 2012-02-24 12:39:20 -08:00
siemens_mpi.c USB: serial: siemens_mpi.c: use module_usb_serial_driver 2012-02-28 13:12:29 -08:00
sierra.c USB: serial: sierra.c: use module_usb_serial_driver 2012-02-28 13:12:31 -08:00
spcp8x5.c USB: serial: spcp8x5.c: use module_usb_serial_driver 2012-02-28 13:12:34 -08:00
ssu100.c USB: serial: ssu100.c: use module_usb_serial_driver 2012-02-28 13:12:36 -08:00
symbolserial.c USB: serial: symbolserial.c: use module_usb_serial_driver 2012-02-28 13:12:38 -08:00
ti_usb_3410_5052.c usb-serial: use new registration API in [t-z]* drivers 2012-02-24 12:39:21 -08:00
ti_usb_3410_5052.h USB: Serial: ti_usb_3410_5052: Add Abbot Diabetes Care cable id 2012-02-21 16:29:15 -08:00
usb_debug.c USB: serial: usb_debug.c: use module_usb_serial_driver 2012-02-28 13:12:41 -08:00
usb_wwan.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
usb-serial.c USB: serial: remove usb_serial_register and usb_serial_deregister 2012-02-24 12:50:30 -08:00
usb-wwan.h tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
visor.c usb-serial: use new registration API in [t-z]* drivers 2012-02-24 12:39:21 -08:00
visor.h USB: visor.h: checkpatch cleanups 2010-05-20 13:21:47 -07:00
vivopay-serial.c USB: serial: vivopay-serial.c: use module_usb_serial_driver 2012-02-28 13:12:43 -08:00
whiteheat.c USB: serial: whiteheat.c: use module_usb_serial_driver 2012-02-28 13:12:44 -08:00
whiteheat.h
zio.c USB: serial: zio.c: use module_usb_serial_driver 2012-02-28 13:12:46 -08:00