aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/uart/uart_core.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_core.c
parent78f94aa95136605c7e67672b9416b97dea1e7723 (diff)
Notes
Diffstat (limited to 'sys/dev/uart/uart_core.c')
-rw-r--r--sys/dev/uart/uart_core.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/uart/uart_core.c b/sys/dev/uart/uart_core.c
index 450313a92b9fd..883bea299683d 100644
--- a/sys/dev/uart/uart_core.c
+++ b/sys/dev/uart/uart_core.c
@@ -162,6 +162,15 @@ uart_intr_sigchg(struct uart_softc *sc)
int new, old, sig;
sig = UART_GETSIG(sc);
+
+ if (sc->sc_pps.ppsparam.mode & PPS_CAPTUREBOTH) {
+ if (sig & UART_SIG_DPPS) {
+ pps_capture(&sc->sc_pps);
+ pps_event(&sc->sc_pps, (sig & UART_SIG_PPS) ?
+ PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
+ }
+ }
+
do {
old = sc->sc_ttypend;
new = old & ~UART_SIGMASK_STATE;
@@ -393,6 +402,9 @@ uart_bus_attach(device_t dev)
sc->sc_sysdev->stopbits);
}
+ sc->sc_pps.ppscap = PPS_CAPTUREBOTH;
+ pps_init(&sc->sc_pps);
+
error = (sc->sc_sysdev != NULL && sc->sc_sysdev->attach != NULL)
? (*sc->sc_sysdev->attach)(sc) : uart_tty_attach(sc);
if (error)