serial: ar933x: Fix check for RS485 support
authorLino Sanfilippo <l.sanfilippo@kunbus.com>
Sun, 10 Jul 2022 16:44:35 +0000 (18:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Jul 2022 14:34:23 +0000 (16:34 +0200)
RS485 is not possible without an RTS GPIO regardless of whether RS485 is
enabled at boot time or not. So correct the concerning check in the probe()
function.

Fixes: e849145e1fdd ("serial: ar933x: Fill in rs485_supported")
Signed-off-by: Lino Sanfilippo <l.sanfilippo@kunbus.com>
Link: https://lore.kernel.org/r/20220710164442.2958979-2-LinoSanfilippo@gmx.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/ar933x_uart.c

index f931ecb..f7b4638 100644 (file)
@@ -798,11 +798,12 @@ static int ar933x_uart_probe(struct platform_device *pdev)
 
        up->rts_gpiod = mctrl_gpio_to_gpiod(up->gpios, UART_GPIO_RTS);
 
-       if ((port->rs485.flags & SER_RS485_ENABLED) &&
-           !up->rts_gpiod) {
-               dev_err(&pdev->dev, "lacking rts-gpio, disabling RS485\n");
-               port->rs485.flags &= ~SER_RS485_ENABLED;
+       if (!up->rts_gpiod) {
                port->rs485_supported = ar933x_no_rs485;
+               if (port->rs485.flags & SER_RS485_ENABLED) {
+                       dev_err(&pdev->dev, "lacking rts-gpio, disabling RS485\n");
+                       port->rs485.flags &= ~SER_RS485_ENABLED;
+               }
        }
 
 #ifdef CONFIG_SERIAL_AR933X_CONSOLE