serial: Add rs485_supported to uart_port
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 6 Jun 2022 10:04:00 +0000 (13:04 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Dec 2022 16:40:59 +0000 (17:40 +0100)
[ Upstream commit 8925c31c1ac2f1e05da988581f2a70a2a8c4d638 ]

Preparing to move serial_rs485 struct sanitization into serial core,
each driver has to provide what fields/flags it supports. This
information is pointed into by rs485_supported.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20220606100433.13793-4-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stable-dep-of: 76bad3f88750 ("tty: serial: fsl_lpuart: don't break the on-going transfer when global reset")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/tty/serial/8250/8250_core.c
include/linux/serial_core.h

index c3348d5..f3bfaa1 100644 (file)
@@ -1016,6 +1016,7 @@ int serial8250_register_8250_port(const struct uart_8250_port *up)
                uart->port.throttle     = up->port.throttle;
                uart->port.unthrottle   = up->port.unthrottle;
                uart->port.rs485_config = up->port.rs485_config;
+               uart->port.rs485_supported = up->port.rs485_supported;
                uart->port.rs485        = up->port.rs485;
                uart->rs485_start_tx    = up->rs485_start_tx;
                uart->rs485_stop_tx     = up->rs485_stop_tx;
index 86fa187..d5b6b15 100644 (file)
@@ -254,6 +254,7 @@ struct uart_port {
        struct attribute_group  *attr_group;            /* port specific attributes */
        const struct attribute_group **tty_groups;      /* all attributes (serial core use only) */
        struct serial_rs485     rs485;
+       const struct serial_rs485       *rs485_supported;       /* Supported mask for serial_rs485 */
        struct gpio_desc        *rs485_term_gpio;       /* enable RS485 bus termination */
        struct serial_iso7816   iso7816;
        void                    *private_data;          /* generic platform data pointer */