From bfbc1f09d4834699050e5f75f46a0f6e1f72e2d4 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Sat, 26 Feb 1994 00:04:03 +0000 Subject: [PATCH] RTS shouldn't be touched unless CS_RTS_IFLOW is set. --- sys/dev/sio/sio.c | 5 +++-- sys/i386/isa/sio.c | 5 +++-- sys/isa/sio.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index 6bcee349704b..f17f6ae131a9 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.28 1994/02/07 18:37:21 ache Exp $ + * $Id: sio.c,v 1.29 1994/02/24 16:39:48 phk Exp $ */ #include "sio.h" @@ -1243,7 +1243,8 @@ repeat: * of input, so enable RTS if it is now disabled and * there is room in the high-level buffer. */ - if (!(com->mcr_image & MCR_RTS) + if ((com->state & CS_RTS_IFLOW) + && !(com->mcr_image & MCR_RTS) && !(tp->t_state & TS_RTS_IFLOW)) outb(com->modem_ctl_port, com->mcr_image |= MCR_RTS); diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c index 6bcee349704b..f17f6ae131a9 100644 --- a/sys/i386/isa/sio.c +++ b/sys/i386/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.28 1994/02/07 18:37:21 ache Exp $ + * $Id: sio.c,v 1.29 1994/02/24 16:39:48 phk Exp $ */ #include "sio.h" @@ -1243,7 +1243,8 @@ repeat: * of input, so enable RTS if it is now disabled and * there is room in the high-level buffer. */ - if (!(com->mcr_image & MCR_RTS) + if ((com->state & CS_RTS_IFLOW) + && !(com->mcr_image & MCR_RTS) && !(tp->t_state & TS_RTS_IFLOW)) outb(com->modem_ctl_port, com->mcr_image |= MCR_RTS); diff --git a/sys/isa/sio.c b/sys/isa/sio.c index 6bcee349704b..f17f6ae131a9 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.28 1994/02/07 18:37:21 ache Exp $ + * $Id: sio.c,v 1.29 1994/02/24 16:39:48 phk Exp $ */ #include "sio.h" @@ -1243,7 +1243,8 @@ repeat: * of input, so enable RTS if it is now disabled and * there is room in the high-level buffer. */ - if (!(com->mcr_image & MCR_RTS) + if ((com->state & CS_RTS_IFLOW) + && !(com->mcr_image & MCR_RTS) && !(tp->t_state & TS_RTS_IFLOW)) outb(com->modem_ctl_port, com->mcr_image |= MCR_RTS);