USB: serial: cp210x: clean up auto-RTS handling
authorJohan Hovold <johan@kernel.org>
Mon, 25 Jan 2021 13:48:17 +0000 (14:48 +0100)
committerJohan Hovold <johan@kernel.org>
Mon, 1 Feb 2021 09:03:56 +0000 (10:03 +0100)
Clear the RTS bits of the flow-control request before determining the
new value when updating the settings.

Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/cp210x.c

index f00b736..cc4f63a 100644 (file)
@@ -1163,9 +1163,9 @@ static void cp210x_set_flow_control(struct tty_struct *tty,
        else
                ctl_hs |= CP210X_SERIAL_DTR_INACTIVE;
 
+       flow_repl &= ~CP210X_SERIAL_RTS_MASK;
        if (C_CRTSCTS(tty)) {
                ctl_hs |= CP210X_SERIAL_CTS_HANDSHAKE;
-               flow_repl &= ~CP210X_SERIAL_RTS_MASK;
                if (port_priv->rts)
                        flow_repl |= CP210X_SERIAL_RTS_FLOW_CTL;
                else
@@ -1173,7 +1173,6 @@ static void cp210x_set_flow_control(struct tty_struct *tty,
                port_priv->crtscts = true;
        } else {
                ctl_hs &= ~CP210X_SERIAL_CTS_HANDSHAKE;
-               flow_repl &= ~CP210X_SERIAL_RTS_MASK;
                if (port_priv->rts)
                        flow_repl |= CP210X_SERIAL_RTS_ACTIVE;
                else