Clear the RTS bits of the flow-control request before determining the
new value when updating the settings.

Signed-off-by: Johan Hovold <jo...@kernel.org>
---
 drivers/usb/serial/cp210x.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index f00b736f3cd3..cc4f63a06f9e 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -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
-- 
2.26.2

Reply via email to