summaryrefslogtreecommitdiffstats
path: root/sys/dev/uart/uart_dev_sab82532.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2005-01-30 22:14:30 +0000
committermarcel <marcel@FreeBSD.org>2005-01-30 22:14:30 +0000
commit456a3116c9b3bbb023f006fb186df785e0e19f57 (patch)
treec95cd487a95a15ec2eaf1b2d5be69b48f99d7dd4 /sys/dev/uart/uart_dev_sab82532.c
parent19b479b41fcc8ce21f9b6cc851406e12d90f73a3 (diff)
downloadFreeBSD-src-456a3116c9b3bbb023f006fb186df785e0e19f57.zip
FreeBSD-src-456a3116c9b3bbb023f006fb186df785e0e19f57.tar.gz
Fix a logic bug that caused DSR to never be deasserted.
MFC after: 5 days
Diffstat (limited to 'sys/dev/uart/uart_dev_sab82532.c')
-rw-r--r--sys/dev/uart/uart_dev_sab82532.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/uart/uart_dev_sab82532.c b/sys/dev/uart/uart_dev_sab82532.c
index 0da0891..112dca4 100644
--- a/sys/dev/uart/uart_dev_sab82532.c
+++ b/sys/dev/uart/uart_dev_sab82532.c
@@ -459,7 +459,7 @@ sab82532_bus_getsig(struct uart_softc *sc)
SIGCHG(star & SAB_STAR_CTS, sig, SER_CTS, SER_DCTS);
vstr = uart_getreg(bas, SAB_VSTR);
SIGCHG(vstr & SAB_VSTR_CD, sig, SER_DCD, SER_DDCD);
- pvr = uart_getreg(bas, SAB_PVR);
+ pvr = ~uart_getreg(bas, SAB_PVR);
switch (bas->chan) {
case 1:
pvr &= SAB_PVR_DSR_A;
@@ -468,7 +468,7 @@ sab82532_bus_getsig(struct uart_softc *sc)
pvr &= SAB_PVR_DSR_B;
break;
}
- SIGCHG(~pvr, sig, SER_DSR, SER_DDSR);
+ SIGCHG(pvr, sig, SER_DSR, SER_DDSR);
mtx_unlock_spin(&sc->sc_hwmtx);
new = sig & ~UART_SIGMASK_DELTA;
} while (!atomic_cmpset_32(&sc->sc_hwsig, old, new));
OpenPOWER on IntegriCloud