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

Jiri Slaby <[email protected]> Mon, 3 Aug 2026 06:46:51 +0200
Newsgroups gmane.linux.serial,gmane.linux.kernel
Message-ID <[email protected]>
On 02. 08. 26, 11:10, Andy Shevchenko wrote:
> On Fri, Jul 31, 2026 at 10:49 AM Crescent Hsieh
> <[email protected]> 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?

I haven't tried, can we make the helper a variadic macro?

-- 
js
suse labs