aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/serial/serial_core.c7
-rw-r--r--include/linux/serial_core.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index bd10bbd56446..9d8796e77188 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -1255,6 +1255,13 @@ static void uart_set_termios(struct tty_struct *tty,
1255 uart_set_mctrl(uport, mask); 1255 uart_set_mctrl(uport, mask);
1256 } 1256 }
1257 1257
1258 /*
1259 * If the port is doing h/w assisted flow control, do nothing.
1260 * We assume that tty->hw_stopped has never been set.
1261 */
1262 if (uport->flags & UPF_HARD_FLOW)
1263 return;
1264
1258 /* Handle turning off CRTSCTS */ 1265 /* Handle turning off CRTSCTS */
1259 if ((old_termios->c_cflag & CRTSCTS) && !(cflag & CRTSCTS)) { 1266 if ((old_termios->c_cflag & CRTSCTS) && !(cflag & CRTSCTS)) {
1260 spin_lock_irqsave(&uport->lock, flags); 1267 spin_lock_irqsave(&uport->lock, flags);
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 00051388de3c..e2cda5d04e48 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -163,6 +163,8 @@ struct uart_port {
163#define UPF_BUGGY_UART ((__force upf_t) (1 << 14)) 163#define UPF_BUGGY_UART ((__force upf_t) (1 << 14))
164#define UPF_NO_TXEN_TEST ((__force upf_t) (1 << 15)) 164#define UPF_NO_TXEN_TEST ((__force upf_t) (1 << 15))
165#define UPF_MAGIC_MULTIPLIER ((__force upf_t) (1 << 16)) 165#define UPF_MAGIC_MULTIPLIER ((__force upf_t) (1 << 16))
166/* Port has hardware-assisted h/w flow control (iow, auto-RTS *not* auto-CTS) */
167#define UPF_HARD_FLOW ((__force upf_t) (1 << 21))
166/* Port has hardware-assisted s/w flow control */ 168/* Port has hardware-assisted s/w flow control */
167#define UPF_SOFT_FLOW ((__force upf_t) (1 << 22)) 169#define UPF_SOFT_FLOW ((__force upf_t) (1 << 22))
168#define UPF_CONS_FLOW ((__force upf_t) (1 << 23)) 170#define UPF_CONS_FLOW ((__force upf_t) (1 << 23))