linux/drivers/tty/serial
Sherry Sun 3e05af2f82 tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete
commit d5a2e08343 upstream.

When the user initializes the uart port, and waits for the transmit
engine to complete in lpuart32_set_termios(), if the UART TX fifo has
dirty data and the UARTMODIR enable the flow control, the TX fifo may
never be empty. So here we should disable the flow control first to make
sure the transmit engin can complete.

Fixes: 380c966c09 ("tty: serial: fsl_lpuart: add 32-bit register interface support")
Cc: stable <stable@kernel.org>
Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
Link: https://lore.kernel.org/r/20220821101527.10066-1-sherry.sun@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2022-09-08 11:24:01 +02:00
..
8250 serial: 8250_bcm2835aux: Add missing clk_disable_unprepare() 2022-08-17 15:15:59 +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: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle 2022-06-27 14:47:02 +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: 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 tty: serial: atmel: Preserve previous USART mode if RS485 disabled 2022-09-08 11:24:01 +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: simplify earlycon-table implementation 2020-12-04 15:49:48 +01: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 tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete 2022-09-08 11:24:01 +02:00
icom.c serial: icom: remove unused struct icom_port members 2022-04-22 16:19:53 +02:00
imx.c TTY / Serial driver changes for 5.19-rc1 2022-06-03 11:08:40 -07: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 TTY / Serial driver changes for 5.19-rc1 2022-06-03 11:08:40 -07:00
kgdb_nmi.c tty: drop put_tty_driver 2021-07-27 12:17:21 +02:00
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 parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
mvebu-uart.c serial: mvebu-uart: uart2 error bits clearing 2022-08-17 15:13:55 +02: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: fix missing clk_disable_unprepare() on error in pic32_uart_startup() 2022-08-17 15:15:45 +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: Fix %lu -> %u in print statements 2022-08-17 15:16:01 +02:00
rda-uart.c serial: rda-uart: Don't allow CS5-6 2022-05-19 18:32:39 +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: set dma burst_size to 1 2022-06-27 14:46:39 +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-tegra.c tty: serial: make use of UART_LCR_WLEN() + tty_get_char_size() 2022-02-28 21:49:06 +01:00
serial_core.c serial: 8250: Fix PM usage_count for console handover 2022-06-30 17:17:31 +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: 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: Clear prev values before setting RTS delays 2022-06-30 17:15:31 +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 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 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-08-25 11:45:48 +02:00
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 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00