AT-Keyboard probing too strict in current bk?

Michael Gernoth
2005-01-27T16:47:42Z

Hi,

since the introduction of libps2 in the mainline 2.6 kernel I had the
issue that my keyboard[1] was no longer recognized.
The cause of this is that my "keyboard" responds to all commands with
an acknowledgement (0xFA), even if the command is not implemented. One
of those not implemented commands is 0xF2 (ATKBD_GETID_CMD).

In drivers/input/keyboard/atkbd.c ATKBD_GETID_CMD is used to probe
for the keyboard, and if this fails, another method of detecting
the keyboard is used. It seems that in 2.6.10 atkbd_command
indicated that my keyboard did not successfully execute the command,
but in the current bk-version ps2_command is used, which indicates
a successfull execution, leaving behind invalid keyboard-ids.
This leads to the kernel ignoring my keyboard.

I fixed the problem in my keyboard-converter, but I don't know if
the checking in keyboard-probing shouldn't be changed to catch that
case, too. I have included a patch which does that.

Regards,
Michael

[1] SUN Type 5 keyboard connected to a self-built sun->ps2 adapter

--- 1.73/drivers/input/keyboard/atkbd.c 2005-01-06 17:42:09 +01:00
+++ edited/drivers/input/keyboard/atkbd.c 2005-01-27 17:27:03 +01:00
@@ -512,7 +512,8 @@
*/

param[0] = param[1] = 0xa5; /* initialize with invalid values */
- if (ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
+ if (ps2_command(ps2dev, param, ATKBD_CMD_GETID) ||
+ (param[0] == 0xa5 && param[1] == 0xa5)) {

/*
* If the get ID command failed, we check if we can at least set the LEDs on