linux-xiaomi-chiron/drivers/tty/serial
VAMSHI GAJJELA 4f4e670342 serial: 8250_dw: Avoid pslverr on reading empty receiver fifo
With PSLVERR_RESP_EN parameter set to 1, the device generates an error
response when an attempt to read an empty RBR with FIFO enabled.

This happens when LCR writes are ignored when UART is busy.
dw8250_check_lcr() in retries to update LCR, invokes dw8250_force_idle()
to clear and reset FIFO and eventually reads UART_RX causing the error.

Avoid this by not reading RBR/UART_RX when no data is available.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: VAMSHI GAJJELA <vamshigajjela@google.com>
Link: https://lore.kernel.org/r/20220713131722.2316829-1-vamshigajjela@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-14 16:33:35 +02:00
..
8250 serial: 8250_dw: Avoid pslverr on reading empty receiver fifo 2022-07-14 16:33:35 +02:00
cpm_uart serial: cpm_uart: Fix build error without CONFIG_SERIAL_CPM_CONSOLE 2022-05-19 18:31:58 +02:00
jsm serial: jsm: Use B0 instead of 0 2022-05-19 18:26:17 +02:00
21285.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
altera_jtaguart.c tty: serial: altera: use altera_jtaguart_stop_tx() 2022-04-14 18:27:18 +02:00
altera_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
amba-pl010.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
amba-pl011.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
apbuart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
apbuart.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ar933x_uart.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
arc_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
atmel_serial.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
atmel_serial.h tty: serial: Use the correct style for SPDX License Identifier 2020-03-07 09:52:01 +01:00
bcm63xx_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
clps711x.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
digicolor-usart.c serial: digicolor-usart: Don't allow CS5-6 2022-05-19 18:32:39 +02:00
dz.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
dz.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
earlycon-arm-semihost.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
earlycon-riscv-sbi.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
earlycon.c earlycon: prevent multiple register_console() 2022-06-30 17:10:11 +02:00
fsl_linflexuart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
fsl_lpuart.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
icom.c serial: icom: remove unused struct icom_port members 2022-04-22 16:19:53 +02:00
imx.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
imx_earlycon.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
ip22zilog.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
ip22zilog.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig serial: max310x: implement I2C support 2022-06-10 13:43:19 +02:00
kgdb_nmi.c tty: drop put_tty_driver 2021-07-27 12:17:21 +02:00
kgdboc.c serial: kgdboc: Fix typo in comment 2022-06-27 14:37:09 +02:00
lantiq.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
liteuart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
lpc32xx_hs.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
Makefile serial: sunplus-uart: Add Sunplus SoC UART Driver 2022-02-26 10:03:21 +01:00
max310x.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
max3100.c TTY/Serial driver changes for 5.18-rc1 2022-03-28 13:00:51 -07:00
mcf.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
men_z135_uart.c serial: men_z135_uart: Drop duplicated iotype assignment 2022-05-05 22:34:55 +02:00
meson_uart.c serial: Convert SERIAL_XMIT_SIZE to UART_XMIT_SIZE 2022-06-27 14:41:31 +02:00
milbeaut_usio.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
mpc52xx_uart.c tty: serial: Prepare cleanup of powerpc's asm/prom.h 2022-04-15 08:42:29 +02:00
mps2-uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
msm_serial.c serial: msm: Rename UART_* defines to MSM_UART_* 2022-06-27 14:41:31 +02:00
mux.c serial: Drop timeout from uart_port 2022-06-27 14:34:45 +02:00
mvebu-uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
mxs-auart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
omap-serial.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
owl-uart.c serial: Convert SERIAL_XMIT_SIZE to UART_XMIT_SIZE 2022-06-27 14:41:31 +02:00
pch_uart.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
pic32_uart.c serial: pic32: fix missing clk_disable_unprepare() on error in pic32_uart_startup() 2022-06-10 13:33:28 +02:00
pmac_zilog.c serial: pmac_zilog: remove unused header 2022-06-10 13:33:57 +02:00
pmac_zilog.h serial: pmac_zilog: remove unused uart_pmac_port::termios_cache 2022-05-19 18:23:19 +02:00
pxa.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
qcom_geni_serial.c tty: serial: qcom-geni-serial: Implement start_rx callback 2022-06-10 13:30:41 +02:00
rda-uart.c serial: Convert SERIAL_XMIT_SIZE to UART_XMIT_SIZE 2022-06-27 14:41:31 +02:00
rp2.c serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait' 2021-05-21 20:34:02 +02:00
sa1100.c drivers: tty: serial: Fix deadlock in sa1100_set_termios() 2022-04-22 16:23:37 +02:00
samsung_tty.c tty: serial: samsung_tty: fix s3c24xx_serial_set_mctrl() 2022-07-14 16:33:26 +02:00
sb1250-duart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
sc16is7xx.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
sccnxp.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
serial-tegra.c drivers: tty: serial: Add missing of_node_put() in serial-tegra.c 2022-06-27 14:36:02 +02:00
serial_core.c serial: RS485 termination is supported if DT provides one 2022-07-08 15:14:09 +02:00
serial_mctrl_gpio.c serial: mctrl_gpio: add a new API to enable / disable wake_irq 2022-02-08 11:07:16 +01:00
serial_mctrl_gpio.h serial: mctrl_gpio: add a new API to enable / disable wake_irq 2022-02-08 11:07:16 +01:00
serial_txx9.c serial: txx9: Don't allow CS5-6 2022-05-19 18:32:40 +02:00
sh-sci.c serial: sh-sci: Don't allow CS5-6 2022-05-19 18:32:40 +02:00
sh-sci.h serial: sh-sci: Add support for RZ/G2L SoC 2021-06-04 15:12:40 +02:00
sifive.c serial: sifive: Remove useless license text when SPDX-License-Identifier is already used 2022-06-27 14:32:37 +02:00
sprd_serial.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
st-asc.c serial: st-asc: remove include of pm_runtime.h 2022-06-27 14:39:51 +02:00
stm32-usart.c serial: Embed rs485_supported to uart_port 2022-07-08 15:14:09 +02:00
stm32-usart.h serial: stm32: Use TC interrupt to deassert GPIO RTS in RS485 mode 2022-05-05 22:37:47 +02:00
suncore.c tty: Use of_node_name_{eq,prefix} for node name comparisons 2018-12-17 16:12:17 +01:00
sunhv.c Revert "serial: sunhv: Initialize lock for non-registered console" 2020-07-21 18:21:49 +02:00
sunplus-uart.c serial: sunplus-uart: change sunplus_console_ports from global to static 2022-04-22 16:21:33 +02:00
sunsab.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
sunsab.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sunsu.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
sunzilog.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
sunzilog.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tegra-tcu.c serial: tegra-tcu: Reorder channel initialization 2021-06-15 14:02:06 +02:00
timbuart.c serial: timbuart: drop low-latency workaround 2021-04-22 12:09:26 +02:00
timbuart.h tty: serial: Use the correct style for SPDX License Identifier 2020-03-07 09:52:01 +01:00
uartlite.c serial: uartlite: Fix BRKINT clearing 2022-05-19 18:32:39 +02:00
ucc_uart.c tty: serial: Fix refcount leak bug in ucc_uart.c 2022-06-27 14:36:07 +02:00
vr41xx_siu.c serial: Consolidate BOTH_EMPTY use 2022-06-27 14:41:31 +02:00
vt8500_serial.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
xilinx_uartps.c serial: xilinx_uartps: cache xmit in cdns_uart_handle_tx() 2022-04-22 16:21:53 +02:00
zs.c serial: zs: use NULL as a pointer, not 0 2022-04-22 16:21:53 +02:00
zs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00