| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- From 5226bda44e9da513da7836b3481bf4e7ce36954f Mon Sep 17 00:00:00 2001
- From: Jonathan Bell <[email protected]>
- Date: Thu, 1 Aug 2019 16:41:20 +0100
- Subject: [PATCH 0169/1085] hid: usb: Add device quirks for Freeway Airmouse T3
- and MX3
- These wireless mouse/keyboard combo remote control devices specify
- multiple "wheel" events in their report descriptors. The wheel events
- are incorrectly defined and apparently map to accelerometer data, leading
- to spurious mouse scroll events being generated at an extreme rate when
- the device is moved.
- As a workaround, use HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE to mask
- feeding the extra wheel events to the input subsystem.
- See: https://github.com/raspberrypi/firmware/issues/1189
- Signed-off-by: Jonathan Bell <[email protected]>
- ---
- drivers/hid/hid-ids.h | 6 ++++++
- drivers/hid/hid-quirks.c | 2 ++
- 2 files changed, 8 insertions(+)
- --- a/drivers/hid/hid-ids.h
- +++ b/drivers/hid/hid-ids.h
- @@ -248,6 +248,9 @@
- #define USB_VENDOR_ID_BAANTO 0x2453
- #define USB_DEVICE_ID_BAANTO_MT_190W2 0x0100
-
- +#define USB_VENDOR_ID_BEKEN 0x25a7
- +#define USB_DEVICE_ID_AIRMOUSE_T3 0x2402
- +
- #define USB_VENDOR_ID_BELKIN 0x050d
- #define USB_DEVICE_ID_FLIP_KVM 0x3201
-
- @@ -1449,6 +1452,9 @@
- #define USB_VENDOR_ID_XIAOMI 0x2717
- #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
-
- +#define USB_VENDOR_ID_XENTA 0x1d57
- +#define USB_DEVICE_ID_AIRMOUSE_MX3 0xad03
- +
- #define USB_VENDOR_ID_XIN_MO 0x16c0
- #define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1
- #define USB_DEVICE_ID_THT_2P_ARCADE 0x75e1
- --- a/drivers/hid/hid-quirks.c
- +++ b/drivers/hid/hid-quirks.c
- @@ -44,6 +44,7 @@ static const struct hid_device_id hid_qu
- { HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS682), HID_QUIRK_NOGET },
- { HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS692), HID_QUIRK_NOGET },
- { HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM), HID_QUIRK_NOGET },
- + { HID_USB_DEVICE(USB_VENDOR_ID_BEKEN, USB_DEVICE_ID_AIRMOUSE_T3), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
- { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
- { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
- { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
- @@ -213,6 +214,7 @@ static const struct hid_device_id hid_qu
- { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
- { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
- { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
- + { HID_USB_DEVICE(USB_VENDOR_ID_XENTA, USB_DEVICE_ID_AIRMOUSE_MX3), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
-
- { 0 }
- };
|