Re: [PATCH v5 7/7] serial: 8250_exar: Set missing rs485_supported flag
From: Ilpo Järvinen
Date: Wed Dec 13 2023 - 05:19:06 EST
On Sat, 9 Dec 2023, Lino Sanfilippo wrote:
> The UART supports an auto-RTS mode in which the RTS pin is automatically
> activated during transmission. So mark this mode as being supported even
> if RTS is not controlled by the driver but the UART.
>
> Also the serial core expects now at least one of both modes rts-on-send or
> rts-after-send to be supported. This is since during sanitization
> unsupported flags are deleted from a RS485 configuration set by userspace.
> However if the configuration ends up with both flags unset, the core prints
> a warning since it considers such a configuration invalid (see
> uart_sanitize_serial_rs485()).
>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Lino Sanfilippo <l.sanfilippo@xxxxxxxxxx>
> ---
> drivers/tty/serial/8250/8250_exar.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
> index 6085d356ad86..23366f868ae3 100644
> --- a/drivers/tty/serial/8250/8250_exar.c
> +++ b/drivers/tty/serial/8250/8250_exar.c
> @@ -480,7 +480,7 @@ static int sealevel_rs485_config(struct uart_port *port, struct ktermios *termio
> }
>
> static const struct serial_rs485 generic_rs485_supported = {
> - .flags = SER_RS485_ENABLED,
> + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND,
> };
>
> static const struct exar8250_platform exar8250_default_platform = {
> @@ -524,7 +524,8 @@ static int iot2040_rs485_config(struct uart_port *port, struct ktermios *termios
> }
>
> static const struct serial_rs485 iot2040_rs485_supported = {
> - .flags = SER_RS485_ENABLED | SER_RS485_RX_DURING_TX | SER_RS485_TERMINATE_BUS,
> + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND |
> + SER_RS485_RX_DURING_TX | SER_RS485_TERMINATE_BUS,
> };
>
> static const struct property_entry iot2040_gpio_properties[] = {
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
(I assume you picked the correct flag among the two alternatives).
--
i.