summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2016-01-10 20:24:02 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-01-28 14:17:42 -0800
commitb4749b97ae41f02775967bd109a15b2e223f86be (patch)
tree6fdc10a24d49d1cf829426402fb967746bd988e7 /drivers
parent968af29836297388743d208a360bac6f1a690148 (diff)
downloadlinux-b4749b97ae41f02775967bd109a15b2e223f86be.tar.gz
linux-b4749b97ae41f02775967bd109a15b2e223f86be.tar.bz2
linux-b4749b97ae41f02775967bd109a15b2e223f86be.zip
serial: core: Perform RTS signalling before soft flow ctrl
When throttling, time is of the essence; try RTS signalling before soft flow control, which will take longer. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/tty/serial/serial_core.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index fa7f442424cf..be9359fdf5c7 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -641,11 +641,11 @@ static void uart_throttle(struct tty_struct *tty)
mask &= ~port->status;
}
- if (mask & UPSTAT_AUTOXOFF)
- uart_send_xchar(tty, STOP_CHAR(tty));
-
if (mask & UPSTAT_AUTORTS)
uart_clear_mctrl(port, TIOCM_RTS);
+
+ if (mask & UPSTAT_AUTOXOFF)
+ uart_send_xchar(tty, STOP_CHAR(tty));
}
static void uart_unthrottle(struct tty_struct *tty)
@@ -664,11 +664,11 @@ static void uart_unthrottle(struct tty_struct *tty)
mask &= ~port->status;
}
- if (mask & UPSTAT_AUTOXOFF)
- uart_send_xchar(tty, START_CHAR(tty));
-
if (mask & UPSTAT_AUTORTS)
uart_set_mctrl(port, TIOCM_RTS);
+
+ if (mask & UPSTAT_AUTOXOFF)
+ uart_send_xchar(tty, START_CHAR(tty));
}
static void uart_get_info(struct tty_port *port, struct serial_struct *retinfo)