aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cy
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1998-12-17 19:23:09 +0000
committerBruce Evans <bde@FreeBSD.org>1998-12-17 19:23:09 +0000
commit747c608e8d180d523f312051c6bd9ecb85a2c6fe (patch)
tree973d92b896d2689ba5c96113794b93335d49ead3 /sys/dev/cy
parent303826838c64469a83b67dfe94b937702abfe7ae (diff)
Notes
Diffstat (limited to 'sys/dev/cy')
-rw-r--r--sys/dev/cy/cy.c7
-rw-r--r--sys/dev/cy/cy_isa.c7
2 files changed, 8 insertions, 6 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 *