diff options
author | ache <ache@FreeBSD.org> | 1994-04-01 16:47:01 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1994-04-01 16:47:01 +0000 |
commit | 0e71fc743254056293dc4f58899d609220959fa8 (patch) | |
tree | 1f9cb55df2b2303b9213eee69d44ba578ff36f67 /sys/isa | |
parent | 70d6e4a8c404c8b9b904145721b892889cda255a (diff) | |
download | FreeBSD-src-0e71fc743254056293dc4f58899d609220959fa8.zip FreeBSD-src-0e71fc743254056293dc4f58899d609220959fa8.tar.gz |
Change got_status/modem_status assignment per Bruce suggestion,
because inb clears modem status port.
Diffstat (limited to 'sys/isa')
-rw-r--r-- | sys/isa/sio.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/isa/sio.c b/sys/isa/sio.c index b3272ba..305256d 100644 --- a/sys/isa/sio.c +++ b/sys/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.39 1994/03/25 15:10:50 ache Exp $ + * $Id: sio.c,v 1.40 1994/03/26 13:40:18 ache Exp $ */ #include "sio.h" @@ -715,12 +715,12 @@ bidir_open_top: disable_intr(); (void) inb(com->line_status_port); (void) inb(com->data_port); - com->prev_modem_status = inb(com->modem_status_port); + if (!got_status) + com->last_modem_status = + com->prev_modem_status = inb(com->modem_status_port); outb(iobase + com_ier, IER_ERXRDY | IER_ETXRDY | IER_ERLS | IER_EMSC); enable_intr(); - if (!got_status) - com->last_modem_status = com->prev_modem_status; if (com->prev_modem_status & MSR_DCD || FAKE_DCD(unit)) tp->t_state |= TS_CARR_ON; } else if (tp->t_state & TS_XCLUDE && p->p_ucred->cr_uid != 0) { |