aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-input.c
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2007-11-14 06:13:26 -0500
committerJiri Kosina <jkosina@suse.cz>2008-01-28 08:51:20 -0500
commitaf9e0eacdc072ba28fd139b90de27023d9cb0598 (patch)
treeb93832415d5d19d76bb7348355978d4e0a04aedb /drivers/hid/hid-input.c
parent3ba5619f06300cd0944150901ed20de87483ad8c (diff)
HID: add full support for Genius KB-29E
Genius KB-29E has broken report descriptor, which causes some of the Consumer usages to appear incorrectly as Button usages. We fix it by fixing the report descriptor before it is being parsed. Also a few of the keys violate the HUT standard, so they need a special handling. They currently fall into "Reserved" range as per HUT 1.12. Reported-by: Szekeres Istvan <szekeres@iii.hu> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-input.c')
-rw-r--r--drivers/hid/hid-input.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index de270b16bde3..0da29cf43713 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -630,6 +630,12 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
630 case 0x0f6: map_key_clear(KEY_NEXT); break; 630 case 0x0f6: map_key_clear(KEY_NEXT); break;
631 case 0x0fa: map_key_clear(KEY_BACK); break; 631 case 0x0fa: map_key_clear(KEY_BACK); break;
632 632
633 /* reserved in HUT 1.12. Reported on Genius KB29E */
634 case 0x156: map_key_clear(KEY_WORDPROCESSOR); break;
635 case 0x157: map_key_clear(KEY_SPREADSHEET); break;
636 case 0x158: map_key_clear(KEY_PRESENTATION); break;
637 case 0x15c: map_key_clear(KEY_STOP); break;
638
633 case 0x182: map_key_clear(KEY_BOOKMARKS); break; 639 case 0x182: map_key_clear(KEY_BOOKMARKS); break;
634 case 0x183: map_key_clear(KEY_CONFIG); break; 640 case 0x183: map_key_clear(KEY_CONFIG); break;
635 case 0x184: map_key_clear(KEY_WORDPROCESSOR); break; 641 case 0x184: map_key_clear(KEY_WORDPROCESSOR); break;