mirror-linux/drivers/tty/serial
j.turek 267ee93c41 serial: xilinx_uartps: fix rs485 delay_rts_after_send
RTS line control with delay should be triggered when there is no more
bytes in kfifo and hardware buffer is empty. Without this patch RTS
control is scheduled right after feeding hardware buffer and this is too
early.

RTS line may change state before hardware buffer is empty.

With this patch delayed RTS state change is triggered when function
cdns_uart_handle_tx is called from cdns_uart_isr on
CDNS_UART_IXR_TXEMPTY exactly when hardware completed transmission

Fixes: fccc9d9233 ("tty: serial: uartps: Add rs485 support to uartps driver")
Cc: stable <stable@kernel.org>
Link: https://patch.msgid.link/20251221103221.1971125-1-jakub.turek@elsta.tech
Signed-off-by: Jakub Turek  <jakub.turek@elsta.tech>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-12-23 11:55:16 +01:00
..
8250 serial: 8250: longson: Fix NULL vs IS_ERR() bug in probe 2025-12-17 15:11:00 +01:00
jsm treewide: Drop pci_save_state() after pci_restore_state() 2025-11-24 16:58:59 -06:00
21285.c
Kconfig serial: sc16is7xx: Kconfig: allow building with COMPILE_TEST 2025-10-28 15:25:41 +01:00
Makefile serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
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 serial: amba-pl011: prefer dma_mapping_error() over explicit address checking 2025-10-28 15:26:47 +01:00
apbuart.c
apbuart.h
ar933x_uart.c serial: ar933x: Add polling support 2025-10-22 12:04:43 +02:00
arc_uart.c
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
dz.h
earlycon-riscv-sbi.c
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 tty: serial: fsl_lpuart: Add missing wakeup event reporting 2025-10-22 12:04:51 +02:00
icom.c TTY/Serial changes for 6.19-rc1 2025-12-06 18:38:19 -08:00
imx.c tty: serial: imx: Add missing wakeup event reporting 2025-10-22 12:06:35 +02:00
imx_earlycon.c
ip22zilog.c tty: serial: ip22zilog: Use platform device for probing 2025-08-14 11:58:40 +02:00
ip22zilog.h
kgdboc.c drivers: serial: kgdboc: Drop checks for CON_ENABLED and CON_BOOT 2025-11-27 15:54:50 +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
max310x.c serial: max310x: improve interrupt handling 2025-09-12 16:10:16 +02:00
max3100.c tty: serial: Modify the use of dev_err_probe() 2025-08-21 08:09:20 +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 tty: remove redundant condition checks 2025-09-06 15:49:58 +02:00
mux.c serial: mux: Fix kernel doc for mux_poll() 2025-11-26 13:11:17 +01:00
mvebu-uart.c tty: serial: mvebu-uart: convert from round_rate() to determine_rate() 2025-08-14 11:59:04 +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 pch_uart: Fix dma_sync_sg_for_device() nents value 2025-07-09 13:43:02 +02: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
qcom_geni_serial.c serial: qcom-geni: Enable Serial on SA8255p Qualcomm platforms 2025-11-26 13:12:50 +01: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
rsci.c serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
rsci.h serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02: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: Declare earlycon for Exynos850 2025-11-26 13:11:55 +01:00
sb1250-duart.c
sc16is7xx.c serial: sc16is7xx: add comments for lock requirements 2025-10-28 15:25:41 +01:00
sc16is7xx.h serial: sc16is7xx: use KBUILD_MODNAME 2025-10-28 15:25:41 +01:00
sc16is7xx_i2c.c serial: sc16is7xx: use KBUILD_MODNAME 2025-10-28 15:25:41 +01:00
sc16is7xx_spi.c serial: sc16is7xx: use KBUILD_MODNAME 2025-10-28 15:25:41 +01:00
sccnxp.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
serial-tegra.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
serial_base.h
serial_base_bus.c serial: core: Fix serial device initialization 2025-12-23 11:53:37 +01:00
serial_core.c serial: Keep rs485 settings for devices without firmware node 2025-11-26 13:13:37 +01: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
sh-sci-common.h serial: sh-sci: Add support for RZ/T2H SCI 2025-07-09 13:45:30 +02:00
sh-sci.c serial: sh-sci: Check that the DMA cookie is valid 2025-12-23 11:54:00 +01:00
sifive.c Linux 6.15-rc4 2025-04-28 10:13:28 +02:00
sprd_serial.c serial: sprd: Return -EPROBE_DEFER when uart clock is not ready 2025-11-26 13:12:19 +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
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: fix rs485 delay_rts_after_send 2025-12-23 11:55:16 +01:00
zs.c
zs.h