diff options
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/hid-input.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 7f817897b178..ce6d7644e6a1 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c | |||
@@ -688,7 +688,28 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
688 | break; | 688 | break; |
689 | 689 | ||
690 | case HID_UP_MSVENDOR: | 690 | case HID_UP_MSVENDOR: |
691 | goto ignore; | 691 | |
692 | /* special case - Chicony Chicony KU-0418 tactical pad */ | ||
693 | if (device->vendor == 0x04f2 && device->product == 0x0418) { | ||
694 | set_bit(EV_REP, input->evbit); | ||
695 | switch(usage->hid & HID_USAGE) { | ||
696 | case 0xff01: map_key_clear(BTN_1); break; | ||
697 | case 0xff02: map_key_clear(BTN_2); break; | ||
698 | case 0xff03: map_key_clear(BTN_3); break; | ||
699 | case 0xff04: map_key_clear(BTN_4); break; | ||
700 | case 0xff05: map_key_clear(BTN_5); break; | ||
701 | case 0xff06: map_key_clear(BTN_6); break; | ||
702 | case 0xff07: map_key_clear(BTN_7); break; | ||
703 | case 0xff08: map_key_clear(BTN_8); break; | ||
704 | case 0xff09: map_key_clear(BTN_9); break; | ||
705 | case 0xff0a: map_key_clear(BTN_A); break; | ||
706 | case 0xff0b: map_key_clear(BTN_B); break; | ||
707 | default: goto ignore; | ||
708 | } | ||
709 | } else { | ||
710 | goto ignore; | ||
711 | } | ||
712 | break; | ||
692 | 713 | ||
693 | case HID_UP_CUSTOM: /* Reported on Logitech and Powerbook USB keyboards */ | 714 | case HID_UP_CUSTOM: /* Reported on Logitech and Powerbook USB keyboards */ |
694 | 715 | ||