Bug with keyboard input

From: Eric . Brunet
Date: Tue May 13 2008 - 05:45:32 EST


Hi list,

With uptodate Fedora 7 (kernel kernel-2.6.23.15-80.fc7) on a Dell D430
laptop.

In short, if I do
echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind
followed by
echo -n "i8042" > /sys/bus/platform/drivers/i8042/bind
everything works fine, EXCEPT if I hit a key on the keyboard between the
unbind and the bind (tested with leftcontrol and spacebar). If I hit a
key, it looks like the keyboard isn't taking release events anymore and
the next key I hit is forever repeated. When my keyboard is in its working
state, I read
N: Name="AT Translated Set 2 keyboard"
in /proc/bus/input/devices. When it is in its non-working state (I hit a
key between unbind and bind), I read
N: Name="AT Raw Set 2 keyboard"
in the same file, and each time I hit a key, I have messages such as
atkbd.c: Unknown key pressed (raw set 2, code 0x11f on isa0060/serio0).
atkbd.c: Use 'setkeycodes 1f <keycode>' to make it known.
atkbd.c: Unknown key pressed (raw set 2, code 0x11e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 1e <keycode>' to make it known.
in my logs.

Note that the key doesn't have to be pressed while the bind happens, it
is sufficient that the key have been pressed and released before the
bind.

So, is there a way to make it work and have the input layer automatically
recognize the correct keyboard type or keyboard mode ? If not, is there a
way to keep it from guessing and to force it to treat the keyboard as an
"AT Translated Set 2 keyboard" ?

As a final note, I get hit by this bug quite often during suspend/resume
cycles. I had found that the keyboard wasn't all the time properly waking up,
(it was getting stuck) so I've added a file in /etc/pm/sleep.d to do the
unbind at suspend time and the bind at resume time. This fixed my
problem, except that at times I stupidly press a key in the hope that the
resume is done and that the screen is black only because of the
screensaver, and that hitting a key will make appear the unlocking
window...

Thanks,

Éric Brunet
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/