Subject: re: SS5: keyboard not working
To: None <mouse@Rodents.Montreal.QC.CA>
From: Paul Kranenburg <pk@cs.few.eur.nl>
List: port-sparc
Date: 09/13/1997 21:50:15
I finally found the problem (after it hit me today..) in the keyboard driver
that would make the keyboard seem dead in certain circumstances.

When attaching the keyboard as console input (in kbdattach()) a RESET
command is shipped off to the keyboard with the intention that the
kbd interrupt routine will handle the responses correctly.

This will not work out if the remaining kernel initialization wants
to use the console to ask for filesystems to mount et cetera, since
that'll use cngetc() which on the sparc goes off polling in the PROM,
and probably eating away the keyboard command responses.

Obviously, there's a timing dependency (keyboard response time, CPU speed,
framebuffer/tty-out speed) that'll make all this have different effects
on different configurations.

Also, this race was masked previously when RB_ASK handling was done
earlier than it is now.


Anyway, I checked in a fix today. Let me know if that doesn't work
for you.. Not all races have eliminated: e.g. if you're pounding on the
keyboard while the reset command is sent off, you may still lose.

-pk