Re: [PATCH v6 2/8] serial: 8250: share the RX trigger conversion helper
From: Andy Shevchenko
Date: Tue Nov 03 2026 - 07:13:20 EST
On Mon, Nov 02, 2026 at 12:55:17PM -0700, James Hilliard wrote:
> Drivers can supply receive-trigger thresholds through the RX trigger
> callbacks without adding a legacy port type to uart_config[]. Extract the
> threshold search into serial8250_bytes_to_fcr() so those drivers can use
> the same conversion as the generic 8250 implementation.
>
> Keep the implementation in 8250_port.c and export it in the SERIAL_8250
> namespace. Include the unsupported-table check and preserve the existing
> nearest-lower selection and highest-encoding fallback.
...
> -static int bytes_to_fcr_rxtrig(struct uart_8250_port *up, unsigned char bytes)
> +int serial8250_bytes_to_fcr(const unsigned char *rxtrig_bytes, unsigned char bytes)
> {
> - const struct serial8250_config *conf_type = &uart_config[up->port.type];
> - int i;
> -
> - if (!conf_type->rxtrig_bytes[UART_FCR_R_TRIG_BITS(UART_FCR_R_TRIG_00)])
> + if (!rxtrig_bytes[UART_FCR_R_TRIG_BITS(UART_FCR_R_TRIG_00)])
> return -EOPNOTSUPP;
>
> - for (i = 1; i < UART_FCR_R_TRIG_MAX_STATE; i++) {
> - if (bytes < conf_type->rxtrig_bytes[i])
> + for (unsigned int i = 1; i < UART_FCR_R_TRIG_MAX_STATE; i++) {
> + if (bytes < rxtrig_bytes[i])
> /* Use the nearest lower value */
> - return (--i) << UART_FCR_R_TRIG_SHIFT;
> + return (i - 1) << UART_FCR_R_TRIG_SHIFT;
> }
Strictly speaking cosmetics should go into a separate patch (for-loop iterator
locality, (--i) morph).
> return UART_FCR_R_TRIG_11;
> }
--
With Best Regards,
Andy Shevchenko