Commit f71a8923 authored by Knut Petersen's avatar Knut Petersen Committed by Linus Torvalds

[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.
parent d548fa6f
...@@ -111,6 +111,7 @@ static unsigned char atkbd_unxlate_table[128] = { ...@@ -111,6 +111,7 @@ static unsigned char atkbd_unxlate_table[128] = {
#define ATKBD_CMD_SETREP 0x10f3 #define ATKBD_CMD_SETREP 0x10f3
#define ATKBD_CMD_ENABLE 0x00f4 #define ATKBD_CMD_ENABLE 0x00f4
#define ATKBD_CMD_RESET_DIS 0x00f5 #define ATKBD_CMD_RESET_DIS 0x00f5
#define ATKBD_CMD_SETALL_MBR 0x00fa
#define ATKBD_CMD_RESET_BAT 0x02ff #define ATKBD_CMD_RESET_BAT 0x02ff
#define ATKBD_CMD_RESEND 0x00fe #define ATKBD_CMD_RESEND 0x00fe
#define ATKBD_CMD_EX_ENABLE 0x10ea #define ATKBD_CMD_EX_ENABLE 0x10ea
...@@ -520,6 +521,8 @@ static int atkbd_set_3(struct atkbd *atkbd) ...@@ -520,6 +521,8 @@ static int atkbd_set_3(struct atkbd *atkbd)
return 2; return 2;
} }
atkbd_command(atkbd, param, ATKBD_CMD_SETALL_MBR);
return 3; return 3;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment