Skip to content

Commit 1deed09

Browse files
Jonathan Bellpopcornmix
authored andcommitted
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: raspberrypi/firmware#1189 Signed-off-by: Jonathan Bell <[email protected]>
1 parent 7a75c94 commit 1deed09

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

drivers/hid/hid-ids.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,9 @@
258258
#define USB_VENDOR_ID_BAANTO 0x2453
259259
#define USB_DEVICE_ID_BAANTO_MT_190W2 0x0100
260260

261+
#define USB_VENDOR_ID_BEKEN 0x25a7
262+
#define USB_DEVICE_ID_AIRMOUSE_T3 0x2402
263+
261264
#define USB_VENDOR_ID_BELKIN 0x050d
262265
#define USB_DEVICE_ID_FLIP_KVM 0x3201
263266

@@ -1481,6 +1484,9 @@
14811484
#define USB_VENDOR_ID_XIAOMI 0x2717
14821485
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
14831486

1487+
#define USB_VENDOR_ID_XENTA 0x1d57
1488+
#define USB_DEVICE_ID_AIRMOUSE_MX3 0xad03
1489+
14841490
#define USB_VENDOR_ID_XIN_MO 0x16c0
14851491
#define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1
14861492
#define USB_DEVICE_ID_THT_2P_ARCADE 0x75e1

drivers/hid/hid-quirks.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ static const struct hid_device_id hid_quirks[] = {
4444
{ HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS682), HID_QUIRK_NOGET },
4545
{ HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS692), HID_QUIRK_NOGET },
4646
{ HID_USB_DEVICE(USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM), HID_QUIRK_NOGET },
47+
{ HID_USB_DEVICE(USB_VENDOR_ID_BEKEN, USB_DEVICE_ID_AIRMOUSE_T3), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
4748
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
4849
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
4950
{ 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_quirks[] = {
213214
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
214215
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
215216
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
217+
{ HID_USB_DEVICE(USB_VENDOR_ID_XENTA, USB_DEVICE_ID_AIRMOUSE_MX3), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
216218

217219
{ 0 }
218220
};

0 commit comments

Comments
 (0)