summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Weingartner <weingart@cvs.openbsd.org>1998-07-12 18:56:07 +0000
committerTobias Weingartner <weingart@cvs.openbsd.org>1998-07-12 18:56:07 +0000
commit2d68808cfff780677255e0f5b7ef0be71a0d9800 (patch)
tree2f4fe6c3f206c661803cf42d91f809c4d18aa551
parentadc79b87eeb37567b18cdb8a13769baf19003e5c (diff)
Fix for the new fast PII-400 machines. This makes them work, and does not
seem to have an adverse affect on other machines. Thanks to martin@ for testing on the PII-400 (wish I had one...), and millert@ for testing on his machines (and finding a bug in my original fix). pccons & pckbd need fixing too...
-rw-r--r--sys/arch/i386/isa/pcvt/pcvt_kbd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/arch/i386/isa/pcvt/pcvt_kbd.c b/sys/arch/i386/isa/pcvt/pcvt_kbd.c
index 630f27f64cc..ccab226fc36 100644
--- a/sys/arch/i386/isa/pcvt/pcvt_kbd.c
+++ b/sys/arch/i386/isa/pcvt/pcvt_kbd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pcvt_kbd.c,v 1.16 1998/06/30 20:51:12 millert Exp $ */
+/* $OpenBSD: pcvt_kbd.c,v 1.17 1998/07/12 18:56:06 weingart Exp $ */
/*
* Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
@@ -317,11 +317,13 @@ kbd_wait_output()
{
u_int i;
- for (i = 100000; i; i--)
+ for (i = 100000; i; i--) {
+ PCVT_KBD_DELAY();
if ((inb(CONTROLLER_CTRL) & STATUS_INPBF) == 0) {
PCVT_KBD_DELAY();
return 1;
}
+ }
return 0;
}
@@ -330,11 +332,13 @@ kbd_wait_input()
{
u_int i;
- for (i = 100000; i; i--)
+ for (i = 100000; i; i--) {
+ PCVT_KBD_DELAY();
if ((inb(CONTROLLER_CTRL) & STATUS_OUTPBF) != 0) {
PCVT_KBD_DELAY();
return 1;
}
+ }
return 0;
}