diff options
author | Jiri Kosina <jkosina@suse.cz> | 2007-11-14 06:13:26 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2008-01-28 08:51:20 -0500 |
commit | af9e0eacdc072ba28fd139b90de27023d9cb0598 (patch) | |
tree | b93832415d5d19d76bb7348355978d4e0a04aedb /drivers/hid/hid-input.c | |
parent | 3ba5619f06300cd0944150901ed20de87483ad8c (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.c | 6 |
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; |