Bug#121335: Please add the Toshiby keybounce fix
Hi,
this is the patch for the current 2.4.20-pre11 kernel. Please apply.
--- drivers/char/keyboard.c.original 2002-10-25 21:19:03.000000000 +0200
+++ drivers/char/keyboard.c 2002-10-25 21:24:20.000000000 +0200
@@ -97,6 +97,9 @@
void compute_shiftstate(void);
+static unsigned char prev_scancode;
+static unsigned char next_scancode;
+
typedef void (*k_hand)(unsigned char value, char up_flag);
typedef void (k_handfn)(unsigned char value, char up_flag);
@@ -213,7 +216,19 @@
}
kbd = kbd_table + fg_console;
if ((raw_mode = (kbd->kbdmode == VC_RAW))) {
- put_queue(scancode | up_flag);
+ /* put_queue(scancode | up_flag); */
+ /* The following 'if' is a workaround for hardware
+ * which sometimes send the key release event twice
+ */
+ unsigned char next_scancode = scancode|up_flag;
+ if (up_flag && next_scancode==prev_scancode) {
+ /* unexpected 2nd release event */
+ } else {
+ prev_scancode=next_scancode;
+ put_queue(next_scancode);
+ }
+
+
/* we do not return yet, because we want to maintain
the key_down array, so that we have the correct
values when finishing RAW mode or when changing VT's */
Reply to: