Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level

The FIFO is 64 bytes, but the FCR is configured to fire the TX interrupt
when the FIFO is half empty (bit 3 = 0). Thus, we should only write 32
bytes when a TX interrupt occurs.

This fixes a problem observed on the PXA168 that dropped a bunch of TX
bytes during large transmissions.

Fixes: ab28f51c77cd ("serial: rewrite pxa2xx-uart to use 8250_core")
Signed-off-by: Doug Brown <doug@schmorgal.com>
Link: https://lore.kernel.org/r/20240519191929.122202-1-doug@schmorgal.com
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Doug Brown and committed by
Greg Kroah-Hartman
5208e7ce 2c945120

+1
+1
drivers/tty/serial/8250/8250_pxa.c
··· 125 125 uart.port.iotype = UPIO_MEM32; 126 126 uart.port.regshift = 2; 127 127 uart.port.fifosize = 64; 128 + uart.tx_loadsz = 32; 128 129 uart.dl_write = serial_pxa_dl_write; 129 130 130 131 ret = serial8250_register_8250_port(&uart);