Re: [PATCH v5 08/14] serial: 8250_mxpcie: speed up TX using memory-mapped FIFO window

From: Andy Shevchenko

Date: Sun Aug 02 2026 - 05:11:23 EST


On Fri, Jul 31, 2026 at 10:49 AM Crescent Hsieh
<crescentcy.hsieh@xxxxxxxx> wrote:
>
> The MUEx50 UART provides a memory-mapped TX FIFO data window along with
> a TX FIFO level counter.
>
> Fill the TX FIFO in bulk via the MMIO FIFO window based on available
> FIFO space, using uart_port_tx_limited() for the common serial-core TX
> handling.

...

> +static void mxpcie8250_tx_chars(struct uart_8250_port *up)
> +{
> + struct uart_port *port = &up->port;
> + unsigned int offset = 0;
> + unsigned char c;
> +
> + uart_port_tx_limited(port, c, port->fifosize - serial_in(up, MOXA_PUART_TX_FIFO_CNT),
> + true,
> + serial_out(up, MOXA_PUART_TX_FIFO_MEM + offset++, c),
> + ({}));
> +}

At least three randomly chosen drivers use the empty tx_done, perhaps
it's time to have a helper that embeds this ugly piece in it and hides
from the driver?

--
With Best Regards,
Andy Shevchenko