aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/uart/uart_tty.c
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2003-09-11 23:06:42 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2003-09-11 23:06:42 +0000
commit8194412b8964d4bfb77866d3ac4ceadb27e80d7b (patch)
tree0bacf5d5df77a2825660a1165c400033575725a0 /sys/dev/uart/uart_tty.c
parent78f94aa95136605c7e67672b9416b97dea1e7723 (diff)
Notes
Diffstat (limited to 'sys/dev/uart/uart_tty.c')
-rw-r--r--sys/dev/uart/uart_tty.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/uart/uart_tty.c b/sys/dev/uart/uart_tty.c
index 3841889ddf22..2814e6d4ae48 100644
--- a/sys/dev/uart/uart_tty.c
+++ b/sys/dev/uart/uart_tty.c
@@ -476,6 +476,9 @@ uart_tty_close(dev_t dev, int flags, int mode, struct thread *td)
if (sc->sc_sysdev == NULL)
UART_SETSIG(sc, UART_SIG_DDTR | UART_SIG_DRTS);
+ /* Disable pulse capturing. */
+ sc->sc_pps.ppsparam.mode = 0;
+
(*linesw[tp->t_line].l_close)(tp, flags);
ttyclose(tp);
wakeup(sc);
@@ -505,6 +508,7 @@ uart_tty_ioctl(dev_t dev, u_long cmd, caddr_t data, int flags,
if (error != ENOIOCTL)
return (error);
+ error = 0;
switch (cmd) {
case TIOCSBRK:
UART_IOCTL(sc, UART_IOCTL_BREAK, 1);
@@ -563,7 +567,10 @@ uart_tty_ioctl(dev_t dev, u_long cmd, caddr_t data, int flags,
*(int*)data = bits;
break;
default:
- return (ENOTTY);
+ error = pps_ioctl(cmd, data, &sc->sc_pps);
+ if (error == ENODEV)
+ error = ENOTTY;
+ break;
}
- return (0);
+ return (error);
}