linux/drivers/tty/serial
Ilpo Järvinen be03b0651f serial: 8250: Store to lsr_save_flags after lsr read
Not all LSR register flags are preserved across reads. Therefore, LSR
readers must store the non-preserved bits into lsr_save_flags.

This fix was initially mixed into feature commit f6f586102a ("serial:
8250: Handle UART without interrupt on TEMT using em485"). However,
that feature change had a flaw and it was reverted to make room for
simpler approach providing the same feature. The embedded fix got
reverted with the feature change.

Re-add the lsr_save_flags fix and properly mark it's a fix.

Link: https://lore.kernel.org/all/1d6c31d-d194-9e6a-ddf9-5f29af829f3@linux.intel.com/T/#m1737eef986bd20cf19593e344cebd7b0244945fc
Fixes: e490c9144c ("tty: Add software emulated RS485 support for 8250")
Cc: stable <stable@kernel.org>
Acked-by: Uwe Kleine-König <u.kleine-koenig@penugtronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/f4d774be-1437-a550-8334-19d8722ab98c@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-10 13:52:19 +02:00
..
8250 serial: 8250: Store to lsr_save_flags after lsr read 2022-06-10 13:52:19 +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: amba-pl011: move header content to .c 2022-05-19 18:23: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
ar933x_uart.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01: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: atmel: remove redundant assignment in rs485_config 2022-04-15 11:30:22 +02:00
atmel_serial.h
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
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
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: fsl_lpuart: Remove unnecessary clearing for CRTSCTS 2022-05-19 18:26:17 +02:00
icom.c serial: icom: remove unused struct icom_port members 2022-04-22 16:19:53 +02:00
imx_earlycon.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
imx.c TTY / Serial driver changes for 5.19-rc1 2022-06-03 11:08:40 -07:00
ip22zilog.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
ip22zilog.h
Kconfig TTY / Serial driver changes for 5.19-rc1 2022-06-03 11:08:40 -07:00
kgdb_nmi.c
kgdboc.c kgdboc: fix return value of __setup handler 2022-03-18 13:12:33 +01: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: max310: remove redundant memset in rs485_config 2022-04-15 11:30:22 +02:00
max3100.c TTY/Serial driver changes for 5.18-rc1 2022-03-28 13:00:51 -07:00
mcf.c serial: mcf: use helpers in mcf_tx_chars() 2022-01-26 14:55:14 +01: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: meson: acquire port->lock in startup() 2022-05-19 18:29:25 +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_serial: disable interrupts in __msm_console_write() 2022-05-19 18:29:44 +02:00
mux.c
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: omap: remove redundant code in rs485_config 2022-04-15 11:30:22 +02:00
owl-uart.c tty: serial: owl: Fix missing clk_disable_unprepare() in owl_uart_probe 2022-04-15 11:08:12 +02:00
pch_uart.c serial: pch: inline pop_tx() into handle_tx() 2022-05-05 22:42:47 +02:00
pic32_uart.c serial: pic32: restore disabled irqs in pic32_uart_startup() 2022-05-05 22:39:20 +02:00
pmac_zilog.c serial: pmac_zilog: remove initial print 2022-05-19 18:23:19 +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: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01: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: rda-uart: Don't allow CS5-6 2022-05-19 18:32:39 +02:00
rp2.c
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 suspend/resume on S5L 2022-05-19 18:24:47 +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 Merge 5.18-rc5 into tty-next 2022-05-02 14:56:14 +02:00
sccnxp.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
serial_core.c serial: core: Introduce callback for start_rx and do stop_rx in suspend only if this callback implementation is present. 2022-06-10 13:30:41 +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
serial-tegra.c tty: serial: make use of UART_LCR_WLEN() + tty_get_char_size() 2022-02-28 21:49:06 +01:00
sh-sci.c serial: sh-sci: Don't allow CS5-6 2022-05-19 18:32:40 +02:00
sh-sci.h
sifive.c serial: sifive: Sanitize CSIZE and c_iflag 2022-05-19 18:32:40 +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: Sanitize CSIZE and correct PARENB for CS7 2022-05-19 18:32:40 +02:00
stm32-usart.c serial: stm32-usart: Correct CSIZE, bits, and parity 2022-05-19 18:32:40 +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
sunhv.c
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
sunsu.c tty: remove CMSPAR ifdefs 2022-05-19 18:26:16 +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
tegra-tcu.c
timbuart.c
timbuart.h
uartlite.c serial: uartlite: Fix BRKINT clearing 2022-05-19 18:32:39 +02:00
ucc_uart.c
vr41xx_siu.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01: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