aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorPavel Troller <patrol@sinus.cz>2007-10-29 06:13:46 -0400
committerJiri Kosina <jkosina@suse.cz>2008-01-28 08:51:19 -0500
commitc80e5ffac0579499ca28444155118ffcdd9b8d7e (patch)
tree628e11f985ee165a7a7f13a547baabcd42fc094e /include/linux
parenta45d82d19a6c2a717bcc33cff243199b77fa0082 (diff)
HID: Implement horizontal wheel handling for A4 Tech X5-005D
This mouse distinguishes horizontal wheel from vertical by a special "pseudo event" GenericDesktop.00b8, with values of 0 for vertical and 8 for horizontal wheel. Because this event is supplied by the parser too late, we need to delay a wheel event, wait for this one and send either REL_WHEEL or REL_HWHEEL to input depending on the event value. Signed-off-by: Pavel Troller <patrol@sinus.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hid.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 833f2af8aab9..991bbcdc1ca7 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -281,6 +281,7 @@ struct hid_item {
281#define HID_QUIRK_LOGITECH_IGNORE_DOUBLED_WHEEL 0x00400000 281#define HID_QUIRK_LOGITECH_IGNORE_DOUBLED_WHEEL 0x00400000
282#define HID_QUIRK_LOGITECH_EXPANDED_KEYMAP 0x00800000 282#define HID_QUIRK_LOGITECH_EXPANDED_KEYMAP 0x00800000
283#define HID_QUIRK_IGNORE_HIDINPUT 0x01000000 283#define HID_QUIRK_IGNORE_HIDINPUT 0x01000000
284#define HID_QUIRK_2WHEEL_MOUSE_HACK_B8 0x02000000
284 285
285/* 286/*
286 * Separate quirks for runtime report descriptor fixup 287 * Separate quirks for runtime report descriptor fixup
@@ -456,6 +457,8 @@ struct hid_device { /* device report descriptor */
456 457
457 void *driver_data; 458 void *driver_data;
458 459
460 __s32 delayed_value; /* For A4 Tech mice hwheel quirk */
461
459 /* device-specific function pointers */ 462 /* device-specific function pointers */
460 int (*hidinput_input_event) (struct input_dev *, unsigned int, unsigned int, int); 463 int (*hidinput_input_event) (struct input_dev *, unsigned int, unsigned int, int);
461 int (*hid_open) (struct hid_device *); 464 int (*hid_open) (struct hid_device *);