diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch new file mode 100644 index 0000000000..203e8638a2 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -0,0 +1,63 @@ +From 8f4720ca2ed61fbaf2a3039b510e276d06d6a2fb Mon Sep 17 00:00:00 2001 +From: Jonathan Bell <jonathan@raspberrypi.org> +Date: Thu, 1 Aug 2019 16:41:20 +0100 +Subject: [PATCH] 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 <jonathan@raspberrypi.org> +--- + 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 +@@ -223,6 +223,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 + +@@ -1226,6 +1229,9 @@ + #define USB_VENDOR_ID_XAT 0x2505 + #define USB_DEVICE_ID_XAT_CSR 0x0220 + ++#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 +@@ -41,6 +41,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 }, +@@ -176,6 +177,7 @@ static const struct hid_device_id hid_qu + { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, + { 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_XENTA, USB_DEVICE_ID_AIRMOUSE_MX3), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + + { 0 } + }; |