aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hid-input.c23
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