linux/drivers/usb/serial
Johan Hovold 63a8eef70c USB: serial: cp210x: fix CP2102N-A01 modem control
CP2102N revision A01 (firmware version <= 1.0.4) has a buggy
flow-control implementation that uses the ulXonLimit instead of
ulFlowReplace field of the flow-control settings structure (erratum
CP2102N_E104).

A recent change that set the input software flow-control limits
incidentally broke RTS control for these devices when CRTSCTS is not set
as the new limits would always enable hardware flow control.

Fix this by explicitly disabling flow control for the buggy firmware
versions and only updating the input software flow-control limits when
IXOFF is requested. This makes sure that the terminal settings matches
the default zero ulXonLimit (ulFlowReplace) for these devices.

Link: https://lore.kernel.org/r/20210609161509.9459-1-johan@kernel.org
Reported-by: David Frey <dpfrey@gmail.com>
Reported-by: Alex Villacís Lasso <a_villacis@palosanto.com>
Tested-by: Alex Villacís Lasso <a_villacis@palosanto.com>
Fixes: f61309d9c9 ("USB: serial: cp210x: set IXOFF thresholds")
Cc: stable@vger.kernel.org      # 5.12
Signed-off-by: Johan Hovold <johan@kernel.org>
2021-06-10 16:59:00 +02:00
..
aircable.c USB: serial: drop redundant transfer-buffer casts 2020-07-09 09:20:17 +02:00
ark3116.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
belkin_sa.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
belkin_sa.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
bus.c USB: serial: drop bogus to_usb_serial_port() checks 2021-02-09 13:14:30 +01:00
ch341.c USB: serial: ch341: add new Product ID 2021-03-09 09:05:36 +01:00
console.c USB: serial: console: add support for flow control 2020-07-02 10:38:45 +02:00
cp210x.c USB: serial: cp210x: fix CP2102N-A01 modem control 2021-06-10 16:59:00 +02:00
cyberjack.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
cypress_m8.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
cypress_m8.h USB: serial: cypress_m8: enable Simply Automated UPB PIM 2020-06-23 09:56:17 +02:00
digi_acceleport.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
empeg.c docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
ezusb_convert.pl
f81232.c USB: serial: f81232: drop time-based drain delay 2021-04-13 18:19:28 +02:00
f81534.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
ftdi_sio_ids.h USB: serial: ftdi_sio: add NovaTech OrionMX product ID 2021-06-05 12:26:01 +02:00
ftdi_sio.c USB: serial: ftdi_sio: add NovaTech OrionMX product ID 2021-06-05 12:26:01 +02:00
ftdi_sio.h USB: Fix up terminology 2020-07-01 14:04:04 +02:00
garmin_gps.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
generic.c USB: serial: drop redundant transfer-buffer casts 2020-07-09 09:20:17 +02:00
io_16654.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
io_edgeport.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
io_edgeport.h USB: serial: io_edgeport: drop unused definitions 2021-04-08 09:50:04 +02:00
io_ionsp.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
io_ti.c USB: serial: io_ti: drop unnecessary packed attributes 2021-04-13 18:23:34 +02:00
io_ti.h USB: serial: io_ti: drop unnecessary packed attributes 2021-04-13 18:23:34 +02:00
io_usbvend.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
ipaq.c
ipw.c
ir-usb.c USB: serial: ir-usb: Silence harmless uninitialized variable warning 2020-02-10 10:06:51 +01:00
iuu_phoenix.c USB: serial: iuu_phoenix: remove redundant variable 'error' 2021-04-01 09:53:14 +02:00
iuu_phoenix.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
Kconfig USB: serial: add MaxLinear/Exar USB to Serial driver 2021-01-21 10:49:37 +01:00
keyspan_pda.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
keyspan_usa26msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa28msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa49msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa67msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa90msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan.c USB: serial: keyspan: drop unneeded forward declarations 2021-03-15 09:29:47 +01:00
kl5kusb105.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
kl5kusb105.h USB: serial: kl5kusb105: remove KLSI device id 2018-07-11 10:11:29 +02:00
kobil_sct.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
kobil_sct.h
Makefile USB: serial: add MaxLinear/Exar USB to Serial driver 2021-01-21 10:49:37 +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: make remove callback return void 2021-02-09 13:13:58 +01:00
mct_u232.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
metro-usb.c USB: serial: do not use tty class device for debugging 2021-04-09 17:55:21 +02:00
mos7720.c USB/Thunderbolt patches for 5.13-rc1 2021-04-26 11:32:23 -07:00
mos7840.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
mxuport.c USB: serial: mxuport: drop short control-transfer check 2021-01-18 14:26:14 +01:00
navman.c
omninet.c USB: serial: omninet: update driver description 2021-05-25 08:59:17 +02:00
opticon.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
option.c USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011 2021-05-10 11:07:25 +02:00
oti6858.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
oti6858.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
pl2303.c USB: serial: pl2303: add device id for ADLINK ND-6530 GC 2021-05-10 11:15:23 +02:00
pl2303.h USB: serial: pl2303: add device id for ADLINK ND-6530 GC 2021-05-10 11:15:23 +02:00
qcaux.c
qcserial.c USB: serial: qcserial: fix altsetting probing 2020-10-01 09:37:30 +02:00
quatech2.c USB: serial: quatech2: fix control-request directions 2021-05-25 07:58:10 +02:00
safe_serial.c
sierra.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
spcp8x5.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
ssu100.c USB: serial: add generic support for TIOCSSERIAL 2021-04-08 09:46:02 +02:00
symbolserial.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
ti_usb_3410_5052.c USB: serial: ti_usb_3410_5052: add startech.com device id 2021-05-10 11:09:16 +02:00
upd78f0730.c USB: serial: do not use tty class device for debugging 2021-04-09 17:55:21 +02: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: add generic support for TIOCSSERIAL 2021-04-08 09:46:02 +02:00
usb-serial-simple.c USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx 2020-01-13 15:04:35 +01:00
usb-serial.c USB: serial: do not use tty class device for debugging 2021-04-09 17:55:21 +02:00
usb-wwan.h USB: serial: add generic support for TIOCSSERIAL 2021-04-08 09:46:02 +02:00
visor.c docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
visor.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
whiteheat.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
whiteheat.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
wishbone-serial.c
xr_serial.c USB: serial: xr: add copyright notice 2021-04-13 18:36:39 +02:00
xsens_mt.c