aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-input.c
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2008-05-16 05:49:19 -0400
committerJiri Kosina <jkosina@suse.cz>2008-10-14 17:50:49 -0400
commit5f22a7992349c5ca3842190be52d5e9a1dd7adf4 (patch)
treeedcb112c502a311d51c29cc0304a1316dcd2d433 /drivers/hid/hid-input.c
parent022e8c4d08b3b06361594b60412db0242035c4b4 (diff)
HID: move logitech quirks
Move them from the core and input code to a separate driver. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-input.c')
-rw-r--r--drivers/hid/hid-input.c38
1 files changed, 0 insertions, 38 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index be2c7a8ad254..4f2bac010f59 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -58,19 +58,6 @@ static const unsigned char hid_keyboard[256] = {
58 150,158,159,128,136,177,178,176,142,152,173,140,unk,unk,unk,unk 58 150,158,159,128,136,177,178,176,142,152,173,140,unk,unk,unk,unk
59}; 59};
60 60
61/* extended mapping for certain Logitech hardware (Logitech cordless desktop LX500) */
62#define LOGITECH_EXPANDED_KEYMAP_SIZE 80
63static int logitech_expanded_keymap[LOGITECH_EXPANDED_KEYMAP_SIZE] = {
64 0,216, 0,213,175,156, 0, 0, 0, 0,
65 144, 0, 0, 0, 0, 0, 0, 0, 0,212,
66 174,167,152,161,112, 0, 0, 0,154, 0,
67 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
68 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
69 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
70 0, 0, 0, 0, 0,183,184,185,186,187,
71 188,189,190,191,192,193,194, 0, 0, 0
72};
73
74static const struct { 61static const struct {
75 __s32 x; 62 __s32 x;
76 __s32 y; 63 __s32 y;
@@ -437,21 +424,6 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
437 } 424 }
438 } 425 }
439 426
440 /* Special handling for Logitech Cordless Desktop */
441 if (field->application != HID_GD_MOUSE) {
442 if (device->quirks & HID_QUIRK_LOGITECH_EXPANDED_KEYMAP) {
443 int hid = usage->hid & HID_USAGE;
444 if (hid < LOGITECH_EXPANDED_KEYMAP_SIZE && logitech_expanded_keymap[hid] != 0)
445 code = logitech_expanded_keymap[hid];
446 }
447 } else {
448 if (device->quirks & HID_QUIRK_LOGITECH_IGNORE_DOUBLED_WHEEL) {
449 int hid = usage->hid & HID_USAGE;
450 if (hid == 7 || hid == 8)
451 goto ignore;
452 }
453 }
454
455 map_key(code); 427 map_key(code);
456 break; 428 break;
457 429
@@ -788,18 +760,8 @@ mapped:
788 || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007))) 760 || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007)))
789 goto ignore; 761 goto ignore;
790 762
791 if ((device->quirks & HID_QUIRK_BAD_RELATIVE_KEYS) &&
792 usage->type == EV_KEY && (field->flags & HID_MAIN_ITEM_RELATIVE))
793 field->flags &= ~HID_MAIN_ITEM_RELATIVE;
794
795 set_bit(usage->type, input->evbit); 763 set_bit(usage->type, input->evbit);
796 764
797 if (device->quirks & HID_QUIRK_DUPLICATE_USAGES &&
798 (usage->type == EV_KEY ||
799 usage->type == EV_REL ||
800 usage->type == EV_ABS))
801 clear_bit(usage->code, bit);
802
803 while (usage->code <= max && test_and_set_bit(usage->code, bit)) 765 while (usage->code <= max && test_and_set_bit(usage->code, bit))
804 usage->code = find_next_zero_bit(bit, max + 1, usage->code); 766 usage->code = find_next_zero_bit(bit, max + 1, usage->code);
805 767