HID: fix Logitech DiNovo Edge touchwheel and Logic3 /SpectraVideo middle button
authorJiri Kosina <jkosina@suse.cz>
Thu, 1 Mar 2007 08:54:44 +0000 (09:54 +0100)
committerJiri Kosina <jkosina@suse.cz>
Thu, 1 Mar 2007 08:54:44 +0000 (09:54 +0100)
commit25914662b7e86f8cf8abdde0497e7fe8bdddf2ae
tree63abd15444fd5a3c04e8d3429950653b8ca7044f
parenta4dff3980697fc374008d005f56da3d8bab8c316
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>
drivers/hid/hid-input.c
drivers/usb/input/hid-core.c
include/linux/hid.h