Messages in this thread | | | Date | Sun, 23 Feb 2003 09:19:36 +0100 | From | Vojtech Pavlik <> | Subject | Re: Toshiba keyboard workaroun |
| |
On Tue, Feb 18, 2003 at 10:19:40PM +0100, Pavel Machek wrote:
> You said that you'll submit toshiba keyboard fix for 2.4 to > marcelo... Here goes 2.5 version, will you submit it to Linus? ;-).
This belongs into drivers/input/keyboard/atkbd.c, not here!
Subsequent keypresses are already ignored - autorepeat is done in software, however if you get a very quick press-release-press of the same key that means the keyboard controller didn't do proper debouncing and you probably can ignore the later release and press. But you must ignore the release as well. Further - comparing to 10 jiffies isn't a good idea - jiffies speed is different on different archs.
> --- clean/drivers/char/keyboard.c 2003-02-15 18:51:18.000000000 +0100 > +++ linux/drivers/char/keyboard.c 2003-02-15 19:19:45.000000000 +0100 > @@ -1020,6 +1041,23 @@ > struct tty_struct *tty; > int shift_final; > > + /* > + * Fix for Toshiba Satellites. Toshiba's like to repeat > + * "key down" event for A in combinations like shift-A. > + * Thanx to Andrei Pitis <pink@roedu.net>. > + */ > + static int prev_scancode = 0; > + static int stop_jiffies = 0; > + > + /* new scancode, trigger delay */ > + if (keycode != prev_scancode) stop_jiffies = jiffies; > + else if (jiffies - stop_jiffies >= 10) stop_jiffies = 0; > + else { > + printk( "Keyboard glitch detected, ignoring keypress\n" ); > + return; > + } > + prev_scancode = keycode; > + > if (down != 2) > add_keyboard_randomness((keycode << 1) ^ down);
-- Vojtech Pavlik SuSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |