diff options
author | Jiri Kosina <jkosina@suse.cz> | 2007-03-01 03:54:44 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2007-03-01 03:54:44 -0500 |
commit | 25914662b7e86f8cf8abdde0497e7fe8bdddf2ae (patch) | |
tree | 63abd15444fd5a3c04e8d3429950653b8ca7044f /drivers/usb | |
parent | a4dff3980697fc374008d005f56da3d8bab8c316 (diff) |
HID: fix Logitech DiNovo Edge touchwheel and Logic3 /SpectraVideo middle button
Dongle shipped with Logitech DiNovo Edge (0x046d/0xc714) behaves in a weird
non-standard way - it contains multiple reports with the same usage, which
results in remapping of GenericDesktop.X and GenericDesktop.Y usages to
GenericDesktop.Z and GenericDesktop.RX respectively, thus rendering the
touchwheel unusable.
The commit 35068976916fdef82d6e69ef1f8c9a1c47732759 solved this
in a way that it didn't remap certain usages. This however breaks
(at least) middle button of Logic3 / SpectraVideo (0x1267/0x0210),
which in contrary requires the remapping.
To make both of the harware work, allow remapping of these usages again,
and introduce a quirk for Logitech DiNovo Edge "touchwheel" instead - we
disable remapping for key, abs and rel events only for this hardware.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/input/hid-core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c index 5d5221324e63..12ec8b432953 100644 --- a/drivers/usb/input/hid-core.c +++ b/drivers/usb/input/hid-core.c | |||
@@ -756,6 +756,7 @@ void usbhid_init_reports(struct hid_device *hid) | |||
756 | #define USB_VENDOR_ID_LOGITECH 0x046d | 756 | #define USB_VENDOR_ID_LOGITECH 0x046d |
757 | #define USB_DEVICE_ID_LOGITECH_USB_RECEIVER 0xc101 | 757 | #define USB_DEVICE_ID_LOGITECH_USB_RECEIVER 0xc101 |
758 | #define USB_DEVICE_ID_LOGITECH_USB_RECEIVER_2 0xc517 | 758 | #define USB_DEVICE_ID_LOGITECH_USB_RECEIVER_2 0xc517 |
759 | #define USB_DEVICE_ID_DINOVO_EDGE 0xc714 | ||
759 | 760 | ||
760 | #define USB_VENDOR_ID_IMATION 0x0718 | 761 | #define USB_VENDOR_ID_IMATION 0x0718 |
761 | #define USB_DEVICE_ID_DISC_STAKKA 0xd000 | 762 | #define USB_DEVICE_ID_DISC_STAKKA 0xd000 |
@@ -776,6 +777,8 @@ static const struct hid_blacklist { | |||
776 | unsigned quirks; | 777 | unsigned quirks; |
777 | } hid_blacklist[] = { | 778 | } hid_blacklist[] = { |
778 | 779 | ||
780 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_EDGE, HID_QUIRK_DUPLICATE_USAGES }, | ||
781 | |||
779 | { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_01, HID_QUIRK_IGNORE }, | 782 | { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_01, HID_QUIRK_IGNORE }, |
780 | { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_10, HID_QUIRK_IGNORE }, | 783 | { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_10, HID_QUIRK_IGNORE }, |
781 | { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_20, HID_QUIRK_IGNORE }, | 784 | { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_20, HID_QUIRK_IGNORE }, |