aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hid-input.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 0b27da7d7497..3a18ec45a71f 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -89,6 +89,7 @@ static const struct {
89/* hardware needing special handling due to colliding MSVENDOR page usages */ 89/* hardware needing special handling due to colliding MSVENDOR page usages */
90#define IS_CHICONY_TACTICAL_PAD(x) (x->vendor == 0x04f2 && device->product == 0x0418) 90#define IS_CHICONY_TACTICAL_PAD(x) (x->vendor == 0x04f2 && device->product == 0x0418)
91#define IS_MS_KB(x) (x->vendor == 0x045e && (x->product == 0x00db || x->product == 0x00f9)) 91#define IS_MS_KB(x) (x->vendor == 0x045e && (x->product == 0x00db || x->product == 0x00f9))
92#define IS_MS_PRESENTER_8000(x) (x->vendor == 0x045e && x->product == 0x0713)
92 93
93#ifdef CONFIG_USB_HIDINPUT_POWERBOOK 94#ifdef CONFIG_USB_HIDINPUT_POWERBOOK
94 95
@@ -780,9 +781,20 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
780 set_bit(KEY_F18, input->keybit); 781 set_bit(KEY_F18, input->keybit);
781 default: goto ignore; 782 default: goto ignore;
782 } 783 }
783 } else { 784
785 /* Microsoft Wireless Notebook Presenter Mouse 8000 */
786 } else if (IS_MS_PRESENTER_8000(device)) {
787 set_bit(EV_REP, input->evbit);
788 switch(usage->hid & HID_USAGE) {
789 /* Useful mappings of bottom-side keys for presentations */
790 case 0xfd08: map_key_clear(KEY_RIGHT); break;
791 case 0xfd09: map_key_clear(KEY_LEFT); break;
792 case 0xfd0b: map_key_clear(KEY_PAUSE); break;
793 case 0xfd0f: map_key_clear(KEY_F5); break;
794 default: goto ignore;
795 }
796 } else
784 goto ignore; 797 goto ignore;
785 }
786 break; 798 break;
787 799
788 case HID_UP_CUSTOM: /* Reported on Logitech and Powerbook USB keyboards */ 800 case HID_UP_CUSTOM: /* Reported on Logitech and Powerbook USB keyboards */