From 25292c48664d32e5e8193ca2e1de558d8e8134e1 Mon Sep 17 00:00:00 2001 From: Khelben Blackstaff Date: Thu, 4 Oct 2007 10:35:41 +0200 Subject: [PATCH] --- yaml --- r: 68671 b: refs/heads/master c: 3cc5f916050be1d1910c5dd5732110b0a8f27ac8 h: refs/heads/master i: 68669: 924244c36cdf56c6c7000f27bf9d6cbdcaa5d67e 68667: 7a54d831062f97998772a100b1dc20254ec0307d 68663: 54edb723d7b020d48e7d97f078e8c80c381d503d 68655: 15f87a286e05ee5b41d6a0bc65ecaf80e2b9a0ef 68639: d2d83475204be61d624153d8aaa15b3c013e428c 68607: 55b50b910eceaa64163a1eade6d44ed3fb21e653 v: v3 --- [refs] | 2 +- trunk/drivers/hid/hid-input.c | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 1024f450e3e6..d36115d5bdc9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e2bca0749c3fef4e3eb39e8aaca7a0c923a70396 +refs/heads/master: 3cc5f916050be1d1910c5dd5732110b0a8f27ac8 diff --git a/trunk/drivers/hid/hid-input.c b/trunk/drivers/hid/hid-input.c index 8be28d205d6d..0c3e12c1794c 100644 --- a/trunk/drivers/hid/hid-input.c +++ b/trunk/drivers/hid/hid-input.c @@ -88,7 +88,7 @@ static const struct { /* hardware needing special handling due to colliding MSVENDOR page usages */ #define IS_CHICONY_TACTICAL_PAD(x) (x->vendor == 0x04f2 && device->product == 0x0418) -#define IS_MS_NEK4K(x) (x->vendor == 0x045e && x->product == 0x00db) +#define IS_MS_KB(x) (x->vendor == 0x045e && (x->product == 0x00db || x->product == 0x00f9)) #ifdef CONFIG_USB_HIDINPUT_POWERBOOK @@ -606,6 +606,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel case 0x0f6: map_key_clear(KEY_NEXT); break; case 0x0fa: map_key_clear(KEY_BACK); break; + case 0x182: map_key_clear(KEY_BOOKMARKS); break; case 0x183: map_key_clear(KEY_CONFIG); break; case 0x184: map_key_clear(KEY_WORDPROCESSOR); break; case 0x185: map_key_clear(KEY_EDITOR); break; @@ -622,10 +623,13 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel case 0x192: map_key_clear(KEY_CALC); break; case 0x194: map_key_clear(KEY_FILE); break; case 0x196: map_key_clear(KEY_WWW); break; + case 0x19c: map_key_clear(KEY_LOGOFF); break; case 0x19e: map_key_clear(KEY_COFFEE); break; case 0x1a6: map_key_clear(KEY_HELP); break; case 0x1a7: map_key_clear(KEY_DOCUMENTS); break; case 0x1ab: map_key_clear(KEY_SPELLCHECK); break; + case 0x1b6: map_key_clear(KEY_MEDIA); break; + case 0x1b7: map_key_clear(KEY_SOUND); break; case 0x1bc: map_key_clear(KEY_MESSENGER); break; case 0x1bd: map_key_clear(KEY_INFO); break; case 0x201: map_key_clear(KEY_NEW); break; @@ -758,8 +762,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel } /* Microsoft Natural Ergonomic Keyboard 4000 */ - } else if (IS_MS_NEK4K(device)) { + } else if (IS_MS_KB(device)) { switch(usage->hid & HID_USAGE) { + case 0xfd06: + map_key_clear(KEY_CHAT); + break; + case 0xfd07: + map_key_clear(KEY_PHONE); + break; case 0xff05: set_bit(EV_REP, input->evbit); map_key_clear(KEY_F13); @@ -1029,8 +1039,8 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct return; } - /* Handling MS NEK4K special buttons */ - if (IS_MS_NEK4K(hid) && usage->hid == (HID_UP_MSVENDOR | 0xff05)) { + /* Handling MS keyboards special buttons */ + if (IS_MS_KB(hid) && usage->hid == (HID_UP_MSVENDOR | 0xff05)) { int key = 0; static int last_key = 0; switch (value) {