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 */ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]