linux/drivers/usb/serial
Ji-Ze Hong (Peter Hong) cd644b805d USB: serial: f81232: fix incomplete serial port generation
The Fintek F81532A/534A/535/536 family relies on the
F81534A_CTRL_CMD_ENABLE_PORT (116h) register during initialization to
both determine serial port status and control port creation. If the
driver experiences fast load/unload cycles, the device state may becomes
unstable, resulting in the incomplete generation of serial ports.

Performing a dummy read operation on the register prior to the initial
write command resolves the issue. This clears the device's stale internal
state. Subsequent write operations will correctly generate all serial
ports.

This patch also removes the retry loop in f81534a_ctrl_set_register()
because the stale state has been fixed.

Tested on: HygonDM1SLT(Hygon C86 3250 8-core Processor)

Signed-off-by: Ji-Ze Hong (Peter Hong) <peter_hong@fintek.com.tw>
Signed-off-by: Johan Hovold <johan@kernel.org>
History 2026-01-13 15:59:07 +01:00
..
aircable.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ark3116.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
belkin_sa.c USB: serial: belkin_sa: clean up tiocmset() 2025-10-27 09:21:55 +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: bus: fix const issue in usb_serial_device_match() 2025-05-21 17:01:37 +02:00
ch341.c USB: serial: ch341: use fix-width types consistently 2025-01-08 13:46:55 +01:00
console.c tty: Cleanup tty_port_set_initialized() bool parameter 2023-01-19 16:04:34 +01:00
cp210x.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
cyberjack.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
cypress_m8.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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: drop driver owner initialization 2024-08-26 15:28:25 +02:00
empeg.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02: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: f81232: fix incomplete serial port generation 2026-01-13 15:59:07 +01:00
f81534.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ftdi_sio.c USB: serial: ftdi_sio: add support for PICAXE AXE027 cable 2026-01-13 14:08:46 +01:00
ftdi_sio.h USB: serial: ftdi_sio: rename channel index 2022-09-15 08:05:53 +02:00
ftdi_sio_ids.h USB: serial: ftdi_sio: add support for PICAXE AXE027 cable 2026-01-13 14:08:46 +01:00
garmin_gps.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
generic.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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 / Thunderbolt (USB4) changes for 6.13-rc1 2024-11-29 11:19:31 -08: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: drop driver owner initialization 2024-08-26 15:28:25 +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: io_ti: add Agilent E5805A support 2022-06-09 14:13:28 +02:00
ipaq.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ipw.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ir-usb.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
iuu_phoenix.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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: simple: add Nokia phone driver 2022-03-03 09:27:36 +01:00
keyspan.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
keyspan_pda.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02: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
kl5kusb105.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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: drop unnecessary initialisations 2025-10-27 09:22:27 +01: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 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 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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: drop driver owner initialization 2024-08-26 15:28:25 +02:00
mos7720.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
mos7840.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mxuport.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
navman.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
omninet.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
opticon.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
option.c USB: serial: option: add Telit LE910 MBIM composition 2026-01-13 11:42:31 +01:00
oti6858.c USB: serial: oti6858: remove extranenous ; after comment 2025-08-26 12:03:19 +02: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 new chip PL2303GC-Q20 and PL2303GT-2AB 2025-05-21 17:19:55 +02:00
pl2303.h USB: serial: pl2303: add device id for Macrosilicon MS3020 2024-09-06 17:11:13 +02:00
qcaux.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
qcserial.c USB: serial: qcserial: add support for Sierra Wireless EM86xx 2024-11-06 15:09:51 +01:00
quatech2.c USB: serial: quatech2: fix null-ptr-deref in qt2_process_read_urb() 2025-01-14 10:32:38 +01:00
safe_serial.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
sierra.c drivers/usb/serial: refactor min with min_t 2024-11-13 15:09:51 +01:00
spcp8x5.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ssu100.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
symbolserial.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ti_usb_3410_5052.c USB: serial: ti_usb_3410_5052: drop bogus read urb check 2025-05-05 14:25:59 +02:00
upd78f0730.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
usb-serial-simple.c USB: serial: simple: add OWON HDS200 series oscilloscope support 2025-04-16 08:38:22 +02:00
usb-serial.c tty: introduce and use tty_port_tty_vhangup() helper 2025-06-17 13:42:33 +02:00
usb-wwan.h USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
usb_debug.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
usb_wwan.c USB-serial updates for 5.20-rc1 2022-07-25 11:28:52 +02:00
visor.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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: drop driver owner initialization 2024-08-26 15:28:25 +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 USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
xr_serial.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
xsens_mt.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00