aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/uart
diff options
context:
space:
mode:
authorStephen Hurd <shurd@FreeBSD.org>2019-06-12 18:07:04 +0000
committerStephen Hurd <shurd@FreeBSD.org>2019-06-12 18:07:04 +0000
commit705aad98c64572aefe9bdb8f1fd854f976c1b03d (patch)
treea16bee1d7069dfb81f667ff7dcbee04f821f542c /sys/dev/uart
parent0026d8ccb7296de6f66d3f2d2813b1a5f77b4035 (diff)
Notes
Diffstat (limited to 'sys/dev/uart')
-rw-r--r--sys/dev/uart/uart_tty.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/uart/uart_tty.c b/sys/dev/uart/uart_tty.c
index 1bef6384678e..ad7052289f0b 100644
--- a/sys/dev/uart/uart_tty.c
+++ b/sys/dev/uart/uart_tty.c
@@ -285,13 +285,16 @@ uart_tty_param(struct tty *tp, struct termios *t)
parity = UART_PARITY_NONE;
if (UART_PARAM(sc, t->c_ospeed, databits, stopbits, parity) != 0)
return (EINVAL);
- UART_SETSIG(sc, SER_DDTR | SER_DTR);
+ if ((t->c_cflag & CNO_RTSDTR) == 0)
+ UART_SETSIG(sc, SER_DDTR | SER_DTR);
/* Set input flow control state. */
if (!sc->sc_hwiflow) {
if ((t->c_cflag & CRTS_IFLOW) && sc->sc_isquelch)
UART_SETSIG(sc, SER_DRTS);
- else
- UART_SETSIG(sc, SER_DRTS | SER_RTS);
+ else {
+ if ((t->c_cflag & CNO_RTSDTR) == 0)
+ UART_SETSIG(sc, SER_DRTS | SER_RTS);
+ }
} else
UART_IOCTL(sc, UART_IOCTL_IFLOW, (t->c_cflag & CRTS_IFLOW));
/* Set output flow control state. */