]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] input / keyboard / Scancode Set 3 support broken
authorKnut Petersen <knut_petersen@t-online.de>
Fri, 24 Oct 2003 01:30:26 +0000 (18:30 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Fri, 24 Oct 2003 01:30:26 +0000 (18:30 -0700)
If somebody uses keyboard scancode set 3 it is necessary to explicitly
program the keyboard to send make/break codes for all keys and to set
autorepeat for all keys.

This is critical for some people.  One example is the LK461/46W series
of keyboards from Digital Equipment Corporations.  These are VMS
keyboards that are also usable on a normal PC.

These keyboards support Scancode Set 2, but for some keys this support
is screwed up -- some function keys (e.g.  F18/F20) report the same
scancode sequence combined with both alt and shift keys.

Scancode Set 3 works perfectly if all keys are programmed to give
make/break codes.

A lot of keyboards manufactured by Cherry only make/break for some (not all!)
modifyer keys in scancode set 3 without this fix.

drivers/input/keyboard/atkbd.c

index 9c25cb8e7f5620f5398473de372b6f27b99e632a..d63939c8240743098e909e69993325e122dbc763 100644 (file)
@@ -111,6 +111,7 @@ static unsigned char atkbd_unxlate_table[128] = {
 #define ATKBD_CMD_SETREP       0x10f3
 #define ATKBD_CMD_ENABLE       0x00f4
 #define ATKBD_CMD_RESET_DIS    0x00f5
+#define ATKBD_CMD_SETALL_MBR   0x00fa
 #define ATKBD_CMD_RESET_BAT    0x02ff
 #define ATKBD_CMD_RESEND       0x00fe
 #define ATKBD_CMD_EX_ENABLE    0x10ea
@@ -520,6 +521,8 @@ static int atkbd_set_3(struct atkbd *atkbd)
                return 2;
        }
 
+       atkbd_command(atkbd, param, ATKBD_CMD_SETALL_MBR);
+
        return 3;
 }