From fc1f58e6bbb8b5f01b0e63dbc29d6f8ce797f3b6 Mon Sep 17 00:00:00 2001 From: bde Date: Sat, 29 Jul 1995 04:05:57 +0000 Subject: 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(). --- sys/dev/sio/sio.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'sys/dev/sio') 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. */ } -- cgit v1.1