lkml.org 
[lkml]   [2002]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.5.40: AT keyboard input problem
On Thu, Oct 03, 2002 at 02:43:04PM +0200, Tobias Ringstrom wrote:
> On Thu, 3 Oct 2002, Vojtech Pavlik wrote:
>
> > Good. You can use that for now, and I'll make a fix so that it works
> > even without it.
>
> Great, thanks!

Ok, here is the promised fix. I'll send it to Linus soon.

===================================================================

diff -Nru a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
--- a/drivers/input/serio/i8042.c Mon Oct 7 14:30:14 2002
+++ b/drivers/input/serio/i8042.c Mon Oct 7 14:30:14 2002
@@ -63,7 +63,7 @@

extern struct pt_regs *kbd_pt_regs;

-static unsigned long i8042_unxlate_seen[128 / BITS_PER_LONG];
+static unsigned long i8042_unxlate_seen[256 / BITS_PER_LONG];
static unsigned char i8042_unxlate_table[128] = {
0,118, 22, 30, 38, 37, 46, 54, 61, 62, 70, 69, 78, 85,102, 13,
21, 29, 36, 45, 44, 53, 60, 67, 68, 77, 84, 91, 90, 20, 28, 27,
@@ -407,14 +407,14 @@
}

if (data > 0x7f) {
- if (test_and_clear_bit(data & 0x7f, i8042_unxlate_seen)) {
+ if (test_and_clear_bit((data & 0x7f) | (i8042_last_e0 << 7), i8042_unxlate_seen)) {
serio_interrupt(&i8042_kbd_port, 0xf0, dfl);
if (i8042_last_e0 && (data == 0xaa || data == 0xb6))
- set_bit(data & 0x7f, i8042_unxlate_seen);
+ set_bit((data & 0x7f) | (i8042_last_e0 << 7), i8042_unxlate_seen);
data = i8042_unxlate_table[data & 0x7f];
}
} else {
- set_bit(data, i8042_unxlate_seen);
+ set_bit(data | (i8042_last_e0 << 7), i8042_unxlate_seen);
data = i8042_unxlate_table[data];
}

===================================================================
--
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/

\
 
 \ /
  Last update: 2005-03-22 13:29    [W:0.165 / U:0.336 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site