@@ -311,7 +311,7 @@ struct pcmcia_device_id {
/* Input */
#define INPUT_DEVICE_ID_EV_MAX 0x1f
#define INPUT_DEVICE_ID_KEY_MIN_INTERESTING 0x71
-#define INPUT_DEVICE_ID_KEY_MAX 0x2ff
+#define INPUT_DEVICE_ID_KEY_MAX 0x4ff
#define INPUT_DEVICE_ID_REL_MAX 0x0f
#define INPUT_DEVICE_ID_ABS_MAX 0x3f
#define INPUT_DEVICE_ID_MSC_MAX 0x07
b/include/uapi/linux/input-event-codes.h
@@ -774,7 +774,7 @@
/* We avoid low common keys in module aliases so they don't get huge. */
#define KEY_MIN_INTERESTING KEY_MUTE
-#define KEY_MAX 0x2ff
+#define KEY_MAX 0x4ff
#define KEY_CNT (KEY_MAX+1)
/*
Dear Dmitry Torokhov, Today I found out that in 2008, you have expanded the number of potential key codes from 512 to 768. I request to expand keycode space again, from 0x2ff to 0x4ff. I have tested this patch on Ubuntu Kernel, it works well with a USB HID joystick that has more than 80 keys. Story back to I found Linux kernel has max USB HID joystick buttons up to 80, no more. But Windows OS and Mac OS have no such limitations. I have a USB HID joystick device, which has 104 buttons, larger than 80. I did a lot of google search, but nothing I got. then I have to look at Kernel source, to find out where this number max 80 comes from Eventually, I found the final limitation #define BTN_JOYSTICK 0x120 #define BTN_DEAD 0x12f #define BTN_TRIGGER_HAPPY 0x2c0 #define KEY_MAX 0x2ff include/uapi/linux/input-event-codes.h according to function hidinput_configure_usage() in file drivers/hid/hid-input.c the USB joystick button mapping is not a continuous space, generally speak the mapping space is from BTN_JOYSTICK~BTN_DEAD 0x120~0x12f=0x10 BTN_TRIGGER_HAPPY~KEY_MAX 0x2c0~0x2ff=40 0x10+0x40=0x60=80 and finally, I got the max limitation of 80 for joystick keys. This patch is about expanding keycode space from 0x2ff to 0x4ff. I expect this patch won't go with ease, because it affects user space application definition as well. I believe sooner or later Linux kernel will face keycode is not enough Signed-off-by: Wei Shuai <cpuwolf@gmail.com> --- include/linux/mod_devicetable.h | 2 +- include/uapi/linux/input-event-codes.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- 2.17.1