Subject: Keyboard lockup on startup fix(?)
To: None <current-users@sun-lamp.cs.berkeley.edu>
From: None <Mark_Weaver@brown.edu>
List: current-users
Date: 02/09/1994 14:26:29
I created a patchfile for the kernel sources between Dec-16 and
Feb-06, and it turns out the only functional change to pccons.c over
that time was the removal of part of the keyboard-reset code
(presumably so that keyboards no longer need to be plugged in during
startup).

It turns out that putting this code back in seems to fix the
"keyboard-freeze-on-boot" problem for my Gateway 2000 keyboard.  I
can't be sure, since the freeze doesn't always happen, but I tried
power-cycling and booting NetBSD without touching the keyboard about 8
times without a hitch.

Here's a unidiff:

diff -u  src/sys/arch/i386/isa/pccons.c.mhw1 src/sys/arch/i386/isa/pccons.c
--- src/sys/arch/i386/isa/pccons.c.mhw1	Tue Feb  1 05:25:16 1994
+++ src/sys/arch/i386/isa/pccons.c	Wed Feb  9 13:50:12 1994
@@ -241,7 +241,7 @@
 	if (kbd_cmd(KBC_RESET) != 0)
 		printf("Timeout for keyboard reset command\n");
 
-#if 0
+#if 1
 	/* Wait for the first response to reset and handle retries */
 	while ((response = kbd_response()) != KBR_ACK) {
 		if (response < 0) {

I realize that this isn't a good fix, but for now it will help a lot
of people.  At some point I'll investigate how to do this properly.

	Mark
--------------------------------------------------------------------
Email: Mark_Weaver@brown.edu           | Brown University
PGP Key: finger mhw@cs.brown.edu       | Dept of Computer Science

------------------------------------------------------------------------------