2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/tty/serial
Fabio Estevam f23c52aafb serial: imx: Restore original RXTL for console to fix data loss
Commit 7a637784d5 ("serial: imx: reduce RX interrupt frequency")
introduced a regression on the i.MX6UL EVK board. The issue can be
reproduced with the following steps:

- Open vi on the board.
- Paste a text file (~150 characters).
- Save the file, then repeat the process.
- Compare the sha256sum of the saved files.

The checksums do not match due to missing characters or entire lines.

Fix this by restoring the RXTL value to 1 when the UART is used as a
console.

This ensures timely RX interrupts and reliable data reception in console
mode.

With this change, pasted content is saved correctly, and checksums are
always consistent.

Cc: stable <stable@kernel.org>
Fixes: 7a637784d5 ("serial: imx: reduce RX interrupt frequency")
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20250619114617.2791939-1-festevam@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-06-24 15:34:21 +01:00
..
8250 treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
jsm serial: jsm: fix NPE during jsm_uart_port_init 2025-05-21 13:35:58 +02:00
21285.c
altera_jtaguart.c serial: altera_jtaguart: Use KBUILD_MODNAME 2024-12-04 16:35:53 +01:00
altera_uart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
amba-pl010.c serial: amba-pl010: Switch to irq_get_nr_irqs() 2024-10-16 21:56:58 +02:00
amba-pl011.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
apbuart.c serial: apbuart: fix console prompt on qemu 2024-01-04 16:21:06 +01:00
apbuart.h
ar933x_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
arc_uart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
atmel_serial.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
atmel_serial.h
bcm63xx_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
clps711x.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
cpm_uart.c TTY / Serial driver updates for 6.13-rc1 2024-11-30 09:03:16 -08:00
cpm_uart.h
digicolor-usart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
dz.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +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 init: Don't proxy console= to earlycon 2024-10-01 14:11:39 +02:00
esp32_acm.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
esp32_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
fsl_linflexuart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
fsl_lpuart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
icom.c serial: icom: fix code format problems 2025-03-20 08:10:40 -07:00
imx_earlycon.c
imx.c serial: imx: Restore original RXTL for console to fix data loss 2025-06-24 15:34:21 +01:00
ip22zilog.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
ip22zilog.h
Kconfig serial: tegra-utc: Add driver for Tegra UART Trace Controller (UTC) 2025-02-14 10:06:50 +01:00
kgdboc.c Revert "tty/serial: Add kgdb_nmi driver" 2025-02-14 10:05:43 +01:00
lantiq.c serial: lantiq: Remove unnecessary print function dev_err() 2025-04-11 16:51:49 +02:00
liteuart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
lpc32xx_hs.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
ma35d1_serial.c tty: serial: pl011: remove incorrect of_match_ptr annotation 2025-03-20 08:09:56 -07:00
Makefile serial: tegra-utc: Add driver for Tegra UART Trace Controller (UTC) 2025-02-14 10:06:50 +01:00
max310x.c serial: max310x: use new GPIO line value setter callbacks 2025-04-11 16:52:25 +02:00
max3100.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mcf.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
men_z135_uart.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
meson_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
milbeaut_usio.c serial: Fix potential null-ptr-deref in mlb_usio_probe() 2025-04-11 16:53:34 +02:00
mpc52xx_uart.c serial: mpc52xx_uart: Remove legacy PM hook 2025-02-04 14:38:32 +01:00
mps2-uart.c
msm_serial.c serial: msm: Configure correct working mode before starting earlycon 2025-04-11 16:58:47 +02:00
mux.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mvebu-uart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
mxs-auart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
omap-serial.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
owl-uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
pch_uart.c serial: pch_uart: Remove legacy PM hook 2025-02-04 14:38:36 +01:00
pic32_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
pmac_zilog.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
pmac_zilog.h
pxa.c serial: pxa: Use uart_prepare_sysrq_char(). 2024-03-02 22:06:21 +01:00
qcom_geni_serial.c serial: qcom-geni: Remove alias dependency from qcom serial driver 2025-04-11 16:52:11 +02:00
rda-uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
rp2.c serial: rp2: Replace deprecated PCI functions 2024-10-30 16:07:38 -05:00
sa1100.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
samsung_tty.c tty: serial: samsung_tty: support 18 uart ports 2025-05-01 17:20:27 +02:00
sb1250-duart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
sc16is7xx_i2c.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
sc16is7xx_spi.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
sc16is7xx.c serial: sc16is7xx: use new GPIO line value setter callbacks 2025-04-11 16:52:25 +02:00
sc16is7xx.h serial: sc16is7xx: split into core and I2C/SPI parts (sc16is7xx_regcfg) 2024-04-11 14:08:08 +02:00
sccnxp.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
serial_base_bus.c serial: core: restore of_node information in sysfs 2025-06-19 13:27:48 +02:00
serial_base.h serial: core: Add serial_base_match_and_update_preferred_console() 2024-07-04 15:41:44 +02:00
serial_core.c serial: use uart_port_ref_lock() helper 2025-04-25 13:46:31 +02:00
serial_ctrl.c
serial_mctrl_gpio.c serial: mctrl_gpio: split disable_ms into sync and no_sync APIs 2025-02-19 15:08:36 +01:00
serial_mctrl_gpio.h serial: mctrl_gpio: split disable_ms into sync and no_sync APIs 2025-02-19 15:08:36 +01:00
serial_port.c serial: port: Make ->iotype validation global in __uart_read_properties() 2025-02-04 14:44:44 +01:00
serial_txx9.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
serial-tegra.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sh-sci-common.h serial: sh-sci: Introduced sci_of_data 2025-04-11 16:56:32 +02:00
sh-sci.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
sh-sci.h serial: sh-sci: Introduced function pointers 2025-04-11 16:56:30 +02:00
sifive.c Linux 6.15-rc4 2025-04-28 10:13:28 +02:00
sprd_serial.c serial: sprd: Add support for sc9632 2024-11-13 15:14:17 +01:00
st-asc.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
stm32-usart.c serial: stm32: do not deassert RS485 RTS GPIO prematurely 2025-03-20 08:30:44 -07:00
stm32-usart.h serial: stm32: get FIFO size from hwcfg register 2024-01-27 19:04:11 -08:00
suncore.c
sunhv.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunplus-uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunsab.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunsab.h
sunsu.c tty: sunsu: remove unused serial_icr_read() 2025-03-20 08:00:51 -07:00
sunzilog.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunzilog.h
tegra-tcu.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
tegra-utc.c serial: tegra-utc: Remove unneeded semicolon 2025-04-11 16:52:21 +02:00
timbuart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
timbuart.h
uartlite.c tty: serial: uartlite: register uart driver in init 2025-04-11 16:52:06 +02:00
ucc_uart.c TTY / Serial driver updates for 6.13-rc1 2024-11-30 09:03:16 -08:00
vt8500_serial.c
xilinx_uartps.c serial: xilinx_uartps: Switch to use hrtimer_setup() 2025-02-20 15:38:34 +01:00
zs.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
zs.h