diff options
author | bde <bde@FreeBSD.org> | 1995-07-29 04:05:57 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-07-29 04:05:57 +0000 |
commit | fc1f58e6bbb8b5f01b0e63dbc29d6f8ce797f3b6 (patch) | |
tree | 83ebf6956051d1ef9894f27f80de68e1034d8f96 /sys/dev/sio | |
parent | 74ba692f9541a63e7a4a98df507d39a8b5811768 (diff) | |
download | FreeBSD-src-fc1f58e6bbb8b5f01b0e63dbc29d6f8ce797f3b6.zip FreeBSD-src-fc1f58e6bbb8b5f01b0e63dbc29d6f8ce797f3b6.tar.gz |
Always wake up writers after clearing TS_BUSY. This will soon be
essential when I fix excessive wakeups for output-below-low-water.
In cy.c and sio.c, wake up via the driver start routine to also
eliminate duplicated code involving the clearing of TS_TTSTOP.
Always (except in code to be replaced soon) call driver start
routine directly instead of going through ttstart().
Diffstat (limited to 'sys/dev/sio')
-rw-r--r-- | sys/dev/sio/sio.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index fd30f74..93469e0 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.104 1995/07/22 01:30:02 bde Exp $ + * $Id: sio.c,v 1.105 1995/07/22 16:44:50 bde Exp $ */ #include "sio.h" @@ -114,7 +114,7 @@ * The following com and tty flags correspond closely: * CS_BUSY = TS_BUSY (maintained by comstart(), siopoll() and * siostop()) - * CS_TTGO = ~TS_TTSTOP (maintained by comstart() and siostop()) + * CS_TTGO = ~TS_TTSTOP (maintained by comparam() and comstart()) * CS_CTS_OFLOW = CCTS_OFLOW (maintained by comparam()) * CS_RTS_IFLOW = CRTS_IFLOW (maintained by comparam()) * TS_FLUSH is not used. @@ -1591,7 +1591,7 @@ repeat: || tp->t_cc[VSTART] == tp->t_cc[VSTOP])) { tp->t_state &= ~TS_TTSTOP; tp->t_lflag &= ~FLUSHO; - ttstart(tp); + comstart(tp); } } else { do { @@ -1886,11 +1886,8 @@ siostop(tp, rw) com_events -= (com->iptr - com->ibuf); com->iptr = com->ibuf; } - if (tp->t_state & TS_TTSTOP) - com->state &= ~CS_TTGO; - else - com->state |= CS_TTGO; enable_intr(); + comstart(tp); /* XXX should clear h/w fifos too. */ } |