linux/drivers/usb/serial
Johan Hovold d4706c05c5 USB: serial: cp210x: honour device-type maximum line speed
Newer cp210x devices support higher line speeds than the older ones
which supported a discrete set of speeds up to 921.6 kbaud.

To support these higher speeds, we have for some time mapped speeds
lower than 1 Mbaud to the speeds supported by older devices, while
allowing the device to pick the closest possible rate for higher speeds
(without trying to guess and report back what rate was actually chosen).

As this implementation can lead to undefined behaviour for older devices
which do not support the higher rates, let's use the later-added
device-type detection to determine the maximum supported speed.

This will also be useful when adding support for cp2102n which can
handle rates up to 3 Mbaud.

As per the data sheets the following maximum speeds are used

	cp2101		921.6 kbaud
	cp2102/3	1 Mbaud
	cp2104/8	2 Mbaud
	cp2105
	 - ECI port	2 Mbaud
	 - SCI port	921.6 kbaud

while keeping the maximum 2 Mbaud for unknown device types in order to
avoid any regressions.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
2018-07-18 21:53:50 +02:00
..
aircable.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
ark3116.c USB: serial: ark3116: move TIOCGSERIAL ioctl case to function 2018-01-09 12:53:27 +01:00
belkin_sa.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
belkin_sa.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
bus.c USB: serial: use tty_port_register_device() 2018-05-17 11:22:00 +02:00
ch341.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
console.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
cp210x.c USB: serial: cp210x: honour device-type maximum line speed 2018-07-18 21:53:50 +02:00
cyberjack.c USB: serial: cyberjack: use irqsave() in USB's complete callback 2018-06-26 14:13:53 +02:00
cypress_m8.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
cypress_m8.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
digi_acceleport.c USB: serial: digi_acceleport: rename tty flag variable 2018-06-27 07:59:03 +02:00
empeg.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
ezusb_convert.pl License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
f81232.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
f81534.c USB: serial: f81534: fix tx error on some baud rate 2018-01-11 11:00:25 +01:00
ftdi_sio_ids.h Revert "USB: serial: ftdi_sio: add Id for Physik Instrumente E-870" 2018-03-29 18:37:28 +02:00
ftdi_sio.c USB: serial: ftdi_sio: clean up flow control management 2018-05-21 10:04:30 +02:00
ftdi_sio.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
garmin_gps.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
generic.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
io_16654.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
io_edgeport.c USB: serial: io_edgeport: use irqsave() in USB's complete callback 2018-06-26 14:30:17 +02:00
io_edgeport.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
io_ionsp.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
io_ti.c USB: serial: io_ti: use irqsave() in USB's complete callback 2018-06-26 14:34:32 +02:00
io_ti.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
io_usbvend.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
ipaq.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
ipw.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
ir-usb.c USB: serial: cast sizeof() to int when comparing with error code 2018-06-25 10:34:31 +02:00
iuu_phoenix.c USB: serial: iuu_phoenix: drop redundant input-speed re-encoding 2018-07-16 14:12:11 +02:00
iuu_phoenix.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
Kconfig USB: serial: simple: add libtransistor console 2018-04-16 09:19:53 +02:00
keyspan_pda.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
keyspan_usa26msg.h USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
kl5kusb105.c USB: serial: kl5kusb105: remove KLSI device id 2018-07-11 10:11:29 +02:00
kl5kusb105.h USB: serial: kl5kusb105: remove KLSI device id 2018-07-11 10:11:29 +02:00
kobil_sct.c USB: serial: kobil_sct: add missing version error handling 2018-07-06 10:42:42 +02:00
kobil_sct.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile-keyspan_pda_fw USB: add SPDX identifiers to all remaining Makefiles 2017-11-07 15:53:48 +01:00
mct_u232.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
mct_u232.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
metro-usb.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
mos7720.c USB: serial: mos7720: remove redundant variables iflag, mask and serial 2018-07-16 14:10:00 +02:00
mos7840.c USB: serial: mos7840: use irqsave() in USB's complete callback 2018-06-26 14:49:34 +02:00
mxuport.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
navman.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
omninet.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
opticon.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
option.c USB-serial updates for v4.18-rc1 2018-05-31 12:15:20 +02:00
oti6858.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
oti6858.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
pl2303.c USB: serial: pl2303: add support for tx xon/xoff flow control 2018-05-22 10:08:05 +02:00
pl2303.h USB: serial: pl2303: new device id for Chilitag 2018-01-25 10:39:59 +01:00
qcaux.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
qcserial.c USB: serial: qcserial: add Sierra Wireless EM7565 2017-12-15 09:41:46 +01:00
quatech2.c USB: serial: quatech2: use irqsave() in USB's complete callback 2018-06-26 14:52:15 +02:00
safe_serial.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
sierra.c USB: serial: sierra: use irqsave() in USB's complete callback 2018-06-26 15:22:25 +02:00
spcp8x5.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
ssu100.c USB: serial: cast sizeof() to int when comparing with error code 2018-06-25 10:34:31 +02:00
symbolserial.c USB: serial: symbolserial: use irqsave() in USB's complete callback 2018-06-26 15:25:01 +02:00
ti_usb_3410_5052.c USB: serial: ti_usb_3410_5052: use irqsave() in USB's complete callback 2018-06-26 15:26:18 +02:00
upd78f0730.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
usb_debug.c USB: serial: usb_debug: add new USB device id 2017-11-28 09:54:11 +01:00
usb_wwan.c USB: serial: usb_wwan: use irqsave() in USB's complete callback 2018-06-26 15:28:15 +02:00
usb-serial-simple.c USB: serial: simple: add libtransistor console 2018-04-16 09:19:53 +02:00
usb-serial.c USB/PHY patches for 4.18-rc1 2018-06-05 16:14:12 -07:00
usb-wwan.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
visor.c USB: serial: visor: handle potential invalid device configuration 2018-05-02 09:37:19 +02:00
visor.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
whiteheat.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
whiteheat.h USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
wishbone-serial.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
xsens_mt.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00