mirror-linux/drivers/tty/serial
Hugo Villeneuve b35f8dbbce serial: max310x: prevent infinite while() loop in port startup
If there is a problem after resetting a port, the do/while() loop that
checks the default value of DIVLSB register may run forever and spam the
I2C bus.

Add a delay before each read of DIVLSB, and a maximum number of tries to
prevent that situation from happening.

Also fail probe if port reset is unsuccessful.

Fixes: 10d8b34a42 ("serial: max310x: Driver rework")
Cc: stable@vger.kernel.org
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Link: https://lore.kernel.org/r/20240116213001.3691629-5-hugo@hugovil.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-27 19:09:10 -08:00
..
8250 serial: 8250_pci1xxxx: fix off by one in pci1xxxx_process_read_data() 2024-01-27 19:08:16 -08:00
jsm tty: jsm: remove unused struct jsm_board members 2023-11-23 19:16:03 +00:00
21285.c serial: 21285: Use port lock wrappers 2023-09-18 11:18:08 +02:00
Kconfig RISC-V Patches for the 6.8 Merge Window, Part 4 2024-01-20 11:06:04 -08:00
Makefile drivers/tty/serial: add ESP32S3 ACM gadget driver 2023-10-16 20:18:15 +02:00
altera_jtaguart.c serial: altera_jtaguart: Convert to platform remove callback returning void 2023-11-23 19:12:30 +00:00
altera_uart.c tty/serial: altera_uart: use more informative labels in /proc/interrupts 2024-01-04 16:20:51 +01:00
amba-pl010.c serial: amba-pl010: Use port lock wrappers 2023-09-18 11:18:09 +02:00
amba-pl011.c tty: serial: amba-pl011: factor QDF2400 SoC erratum 44 out of probe 2023-12-15 14:24:12 +01:00
apbuart.c serial: apbuart: fix console prompt on qemu 2024-01-04 16:21:06 +01:00
apbuart.h
ar933x_uart.c serial: ar933x: Convert to platform remove callback returning void 2023-11-23 19:12:30 +00:00
arc_uart.c serial: arc_uart: Use port lock wrappers 2023-09-18 11:18:10 +02:00
atmel_serial.c serial: atmel: convert not to use dma_request_slave_channel() 2023-11-23 19:32:36 +00:00
atmel_serial.h
bcm63xx_uart.c serial: bcm63xx: Convert to platform remove callback returning void 2023-11-23 19:12:30 +00:00
clps711x.c serial: clps711x: Convert to platform remove callback returning void 2023-11-23 19:12:31 +00:00
cpm_uart.c serial: cpm: Convert to platform remove callback returning void 2023-11-23 19:12:31 +00:00
cpm_uart.h serial: cpm_uart: Remove cpm_uart/ subdirectory 2023-08-04 15:08:30 +02:00
digicolor-usart.c serial: digicolor: Convert to platform remove callback returning void 2023-11-23 19:12:31 +00:00
dz.c serial: dz: Use port lock wrappers 2023-09-18 11:18:11 +02:00
dz.h
earlycon-riscv-sbi.c tty/serial: Add RISC-V SBI debug console based earlycon 2024-01-10 07:04:04 -08:00
earlycon-semihost.c
earlycon.c
esp32_acm.c serial: esp32_acm: Add explicit platform_device.h include 2023-12-15 14:20:00 +01:00
esp32_uart.c serial: esp32_uart: Use device_get_match_data() 2023-12-15 14:20:00 +01:00
fsl_linflexuart.c serial: fsl_linflexuart: Convert to platform remove callback returning void 2023-11-23 19:12:31 +00:00
fsl_lpuart.c serial: fsl_lpuart: Convert to platform remove callback returning void 2023-11-23 19:12:31 +00:00
icom.c serial: icom: Use port lock wrappers 2023-09-18 11:18:11 +02:00
imx.c serial: core, imx: do not set RS485 enabled if it is not supported 2024-01-04 16:29:51 +01:00
imx_earlycon.c
ip22zilog.c serial: ip22zilog: Use port lock wrappers 2023-09-18 11:18:11 +02:00
ip22zilog.h
kgdb_nmi.c tty: make tty_operations::write()'s count size_t 2023-08-11 21:12:46 +02:00
kgdboc.c
lantiq.c serial: lantiq: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
liteuart.c serial: liteuart: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
lpc32xx_hs.c serial: lpc32xx_hs: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
ma35d1_serial.c serial: ma35d1: Fix spelling mistake "ononsole" -> "console" 2023-12-15 14:23:30 +01:00
max310x.c serial: max310x: prevent infinite while() loop in port startup 2024-01-27 19:09:10 -08:00
max3100.c serial: drivers: switch ch and flag to u8 2023-07-25 19:21:04 +02:00
mcf.c serial: mcf: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
men_z135_uart.c serial: men_z135_uart: Use port lock wrappers 2023-09-18 11:18:12 +02:00
meson_uart.c serial: meson: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
milbeaut_usio.c serial: milbeaut_usio: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
mpc52xx_uart.c serial: mpc52xx: Convert to platform remove callback returning void 2023-11-23 19:12:32 +00:00
mps2-uart.c serial: mps2-uart: Use port lock wrappers 2023-09-18 11:18:12 +02:00
msm_serial.c serial: msm: Use OPP table for DVFS support 2023-12-08 12:02:37 +01:00
mux.c
mvebu-uart.c serial: mvebu-uart: Use port lock wrappers 2023-09-18 11:18:12 +02:00
mxs-auart.c serial: mxs-auart: convert not to use dma_request_slave_channel() 2023-11-23 19:33:01 +00:00
omap-serial.c serial: omap: do not override settings for RS485 support 2024-01-04 16:29:51 +01:00
owl-uart.c serial: owl: Convert to platform remove callback returning void 2023-11-23 19:12:33 +00:00
pch_uart.c serial: pch: Use port lock wrappers 2023-09-18 11:18:13 +02:00
pic32_uart.c serial: pic32: Convert to platform remove callback returning void 2023-11-23 19:12:33 +00:00
pmac_zilog.c serial: pmac_zilog: Use port lock wrappers 2023-09-18 11:18:13 +02:00
pmac_zilog.h
pxa.c serial: pxa: Use port lock wrappers 2023-09-18 11:18:13 +02:00
qcom_geni_serial.c serial: qcom_geni: Convert to platform remove callback returning void 2023-11-23 19:12:33 +00:00
rda-uart.c serial: rda: Convert to platform remove callback returning void 2023-11-23 19:12:33 +00:00
rp2.c tty: rp2: remove unused rp2_uart_port::ignore_rx 2023-11-23 19:16:03 +00:00
sa1100.c serial: sa1100: Convert to platform remove callback returning void 2023-11-23 19:12:33 +00:00
samsung_tty.c TTY/Serial changes for 6.8-rc1 2024-01-18 11:37:24 -08:00
sb1250-duart.c serial: sb1250-duart: Use port lock wrappers 2023-09-18 11:18:14 +02:00
sc16is7xx.c serial: sc16is7xx: refactor EFR lock 2024-01-04 16:30:05 +01:00
sccnxp.c serial: sccnxp: Convert to platform remove callback returning void 2023-11-23 19:12:34 +00:00
serial-tegra.c serial: tegra: Convert to platform remove callback returning void 2023-11-23 19:12:34 +00:00
serial_base.h serial: core: Fix serial core port id, including multiport devices 2023-08-11 21:19:22 +02:00
serial_base_bus.c serial: core: Fix serial core port id, including multiport devices 2023-08-11 21:19:22 +02:00
serial_core.c serial: core: Fix atomicity violation in uart_tiocmget 2024-01-27 19:08:30 -08:00
serial_ctrl.c serial: core: Start managing serial controllers to enable runtime PM 2023-05-31 10:46:59 +01:00
serial_mctrl_gpio.c serial: mctrl_gpio: Use port lock wrappers 2023-09-18 11:18:14 +02:00
serial_mctrl_gpio.h
serial_port.c serial: core: Use port lock wrappers 2023-09-18 11:18:14 +02:00
serial_txx9.c serial: txx9: Convert to platform remove callback returning void 2023-11-23 19:12:34 +00:00
sh-sci.c serial: sh-sci: convert not to use dma_request_slave_channel() 2023-11-23 19:33:03 +00:00
sh-sci.h tty: serial: sh-sci: Add support for tx end interrupt handling 2023-04-20 13:47:33 +02:00
sifive.c serial: sifive: Declare PM operations as static 2023-11-23 19:31:18 +00:00
sprd_serial.c serial: sprd: Convert to platform remove callback returning void 2023-11-23 19:12:34 +00:00
st-asc.c serial: st-asc: Convert to platform remove callback returning void 2023-11-23 19:12:34 +00:00
stm32-usart.c serial: Do not hold the port lock when setting rx-during-tx GPIO 2024-01-04 16:26:09 +01:00
stm32-usart.h serial: stm32: group dma pause/resume error handling into single function 2023-08-22 15:28:51 +02:00
suncore.c
sunhv.c serial: sunhv: Convert to platform remove callback returning void 2023-11-23 19:12:35 +00:00
sunplus-uart.c serial: sunplus: Convert to platform remove callback returning void 2023-11-23 19:12:35 +00:00
sunsab.c serial: sunsab: remove trailing whitespaces 2023-11-23 19:31:25 +00:00
sunsab.h
sunsu.c serial: sunsu: Convert to platform remove callback returning void 2023-11-23 19:12:35 +00:00
sunzilog.c serial: sunzilog: Convert to platform remove callback returning void 2023-11-23 19:12:35 +00:00
sunzilog.h
tegra-tcu.c serial: tegra-tcu: Convert to platform remove callback returning void 2023-11-23 19:12:35 +00:00
timbuart.c serial: timbuart: Convert to platform remove callback returning void 2023-11-23 19:12:35 +00:00
timbuart.h
uartlite.c serial: uartlite: Use dynamic allocation for major number when uart ports > 4 2023-11-25 07:23:16 +00:00
ucc_uart.c serial: ucc_uart: Fix multiple address space type errors 2023-12-08 12:02:37 +01:00
vt8500_serial.c serial: vt8500: Use port lock wrappers 2023-09-18 11:18:16 +02:00
xilinx_uartps.c serial: xilinx_uartps: Fix kernel doc about .remove()'s return code 2023-11-25 07:23:16 +00:00
zs.c serial: drivers: switch ch and flag to u8 2023-07-25 19:21:04 +02:00
zs.h