diff options
| author | Bruce Evans <bde@FreeBSD.org> | 1998-12-17 19:23:09 +0000 |
|---|---|---|
| committer | Bruce Evans <bde@FreeBSD.org> | 1998-12-17 19:23:09 +0000 |
| commit | 747c608e8d180d523f312051c6bd9ecb85a2c6fe (patch) | |
| tree | 973d92b896d2689ba5c96113794b93335d49ead3 | |
| parent | 303826838c64469a83b67dfe94b937702abfe7ae (diff) | |
Notes
| -rw-r--r-- | sys/dev/cy/cy.c | 7 | ||||
| -rw-r--r-- | sys/dev/cy/cy_isa.c | 7 | ||||
| -rw-r--r-- | sys/i386/isa/cy.c | 7 |
3 files changed, 12 insertions, 9 deletions
diff --git a/sys/dev/cy/cy.c b/sys/dev/cy/cy.c index df09722e5120a..b23cf66a3e5ab 100644 --- a/sys/dev/cy/cy.c +++ b/sys/dev/cy/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.78 1998/12/17 18:18:06 bde Exp $ + * $Id: cy.c,v 1.79 1998/12/17 18:43:08 bde Exp $ */ #include "opt_compat.h" @@ -2387,15 +2387,16 @@ siostop(tp, rw) com->state &= ~(CS_ODONE | CS_BUSY); } if (rw & FREAD) { + /* XXX no way to reset only input fifo. */ com_events -= (com->iptr - com->ibuf); com->iptr = com->ibuf; } enable_intr(); if (wakeup_etc) wakeup(&com->etc); + if (rw & FWRITE && com->etc == ETC_NONE) + cd1400_channel_cmd(com, CD1400_CCR_CMDRESET | CD1400_CCR_FTF); comstart(tp); - - /* XXX should clear h/w fifos too. */ } static struct tty * diff --git a/sys/dev/cy/cy_isa.c b/sys/dev/cy/cy_isa.c index df09722e5120a..b23cf66a3e5ab 100644 --- a/sys/dev/cy/cy_isa.c +++ b/sys/dev/cy/cy_isa.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.78 1998/12/17 18:18:06 bde Exp $ + * $Id: cy.c,v 1.79 1998/12/17 18:43:08 bde Exp $ */ #include "opt_compat.h" @@ -2387,15 +2387,16 @@ siostop(tp, rw) com->state &= ~(CS_ODONE | CS_BUSY); } if (rw & FREAD) { + /* XXX no way to reset only input fifo. */ com_events -= (com->iptr - com->ibuf); com->iptr = com->ibuf; } enable_intr(); if (wakeup_etc) wakeup(&com->etc); + if (rw & FWRITE && com->etc == ETC_NONE) + cd1400_channel_cmd(com, CD1400_CCR_CMDRESET | CD1400_CCR_FTF); comstart(tp); - - /* XXX should clear h/w fifos too. */ } static struct tty * diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c index df09722e5120a..b23cf66a3e5ab 100644 --- a/sys/i386/isa/cy.c +++ b/sys/i386/isa/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.78 1998/12/17 18:18:06 bde Exp $ + * $Id: cy.c,v 1.79 1998/12/17 18:43:08 bde Exp $ */ #include "opt_compat.h" @@ -2387,15 +2387,16 @@ siostop(tp, rw) com->state &= ~(CS_ODONE | CS_BUSY); } if (rw & FREAD) { + /* XXX no way to reset only input fifo. */ com_events -= (com->iptr - com->ibuf); com->iptr = com->ibuf; } enable_intr(); if (wakeup_etc) wakeup(&com->etc); + if (rw & FWRITE && com->etc == ETC_NONE) + cd1400_channel_cmd(com, CD1400_CCR_CMDRESET | CD1400_CCR_FTF); comstart(tp); - - /* XXX should clear h/w fifos too. */ } static struct tty * |
