From f71a89234474469ba078a0653e6639b78ace903b Mon Sep 17 00:00:00 2001 From: Knut Petersen Date: Thu, 23 Oct 2003 18:30:26 -0700 Subject: [PATCH] [PATCH] input / keyboard / Scancode Set 3 support broken 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 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index 9c25cb8e7f562..d63939c824074 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c @@ -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; } -- 2.53.0