Michal Koutný 4be84f
From f6d910a89a2391e5ce1f275d205023880a33d3f8 Mon Sep 17 00:00:00 2001
Michal Koutný 4be84f
From: Ankit Patel <anpatel@nvidia.com>
Michal Koutný 4be84f
Date: Tue, 22 Nov 2022 15:35:20 +0800
Michal Koutný 4be84f
Subject: [PATCH] HID: usbhid: Add ALWAYS_POLL quirk for some mice
Michal Koutný 4be84f
Git-commit: f6d910a89a2391e5ce1f275d205023880a33d3f8
Michal Koutný 4be84f
References: git-fixes
Michal Koutný 4be84f
Patch-mainline: v6.1
Michal Koutný 4be84f
Michal Koutný 4be84f
Some additional USB mouse devices are needing ALWAYS_POLL quirk without
Michal Koutný 4be84f
which they disconnect and reconnect every 60s.
Michal Koutný 4be84f
Michal Koutný 4be84f
Add below devices to the known quirk list.
Michal Koutný 4be84f
CHERRY    VID 0x046a, PID 0x000c
Michal Koutný 4be84f
MICROSOFT VID 0x045e, PID 0x0783
Michal Koutný 4be84f
PRIMAX    VID 0x0461, PID 0x4e2a
Michal Koutný 4be84f
Michal Koutný 4be84f
Signed-off-by: Ankit Patel <anpatel@nvidia.com>
Michal Koutný 4be84f
Signed-off-by: Haotien Hsu <haotienh@nvidia.com>
Michal Koutný 4be84f
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Michal Koutný 4be84f
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Michal Koutný 4be84f
---
Michal Koutný 4be84f
 drivers/hid/hid-ids.h    | 3 +++
Michal Koutný 4be84f
 drivers/hid/hid-quirks.c | 3 +++
Michal Koutný 4be84f
 2 files changed, 6 insertions(+)
Michal Koutný 4be84f
Michal Koutný 4be84f
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
Michal Koutný 4be84f
index b3dfe8d9e556..8f58c3c1bec3 100644
Michal Koutný 4be84f
--- a/drivers/hid/hid-ids.h
Michal Koutný 4be84f
+++ b/drivers/hid/hid-ids.h
Michal Koutný 4be84f
@@ -274,6 +274,7 @@
Michal Koutný 4be84f
 #define USB_DEVICE_ID_CH_AXIS_295	0x001c
Michal Koutný 4be84f
 
Michal Koutný 4be84f
 #define USB_VENDOR_ID_CHERRY		0x046a
Michal Koutný 4be84f
+#define USB_DEVICE_ID_CHERRY_MOUSE_000C	0x000c
Michal Koutný 4be84f
 #define USB_DEVICE_ID_CHERRY_CYMOTION	0x0023
Michal Koutný 4be84f
 #define USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR	0x0027
Michal Koutný 4be84f
 
Michal Koutný 4be84f
@@ -917,6 +918,7 @@
Michal Koutný 4be84f
 #define USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER	0x02fd
Michal Koutný 4be84f
 #define USB_DEVICE_ID_MS_PIXART_MOUSE    0x00cb
Michal Koutný 4be84f
 #define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS      0x02e0
Michal Koutný 4be84f
+#define USB_DEVICE_ID_MS_MOUSE_0783      0x0783
Michal Koutný 4be84f
 
Michal Koutný 4be84f
 #define USB_VENDOR_ID_MOJO		0x8282
Michal Koutný 4be84f
 #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201
Michal Koutný 4be84f
@@ -1382,6 +1384,7 @@
Michal Koutný 4be84f
 
Michal Koutný 4be84f
 #define USB_VENDOR_ID_PRIMAX	0x0461
Michal Koutný 4be84f
 #define USB_DEVICE_ID_PRIMAX_MOUSE_4D22	0x4d22
Michal Koutný 4be84f
+#define USB_DEVICE_ID_PRIMAX_MOUSE_4E2A	0x4e2a
Michal Koutný 4be84f
 #define USB_DEVICE_ID_PRIMAX_KEYBOARD	0x4e05
Michal Koutný 4be84f
 #define USB_DEVICE_ID_PRIMAX_REZEL	0x4e72
Michal Koutný 4be84f
 #define USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F	0x4d0f
Michal Koutný 4be84f
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
Michal Koutný 4be84f
index 50e1c717fc0a..0e9702c7f7d6 100644
Michal Koutný 4be84f
--- a/drivers/hid/hid-quirks.c
Michal Koutný 4be84f
+++ b/drivers/hid/hid-quirks.c
Michal Koutný 4be84f
@@ -54,6 +54,7 @@ static const struct hid_device_id hid_quirks[] = {
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE), HID_QUIRK_NOGET },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS), HID_QUIRK_NOGET },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_THROTTLE), HID_QUIRK_NOGET },
Michal Koutný 4be84f
+	{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_MOUSE_000C), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K65RGB), HID_QUIRK_NO_INIT_REPORTS },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K65RGB_RAPIDFIRE), HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K70RGB), HID_QUIRK_NO_INIT_REPORTS },
Michal Koutný 4be84f
@@ -122,6 +123,7 @@ static const struct hid_device_id hid_quirks[] = {
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C05A), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MCS, USB_DEVICE_ID_MCS_GAMEPADBLOCK), HID_QUIRK_MULTI_INPUT },
Michal Koutný 4be84f
+	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_MOUSE_0783), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PIXART_MOUSE), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER), HID_QUIRK_NO_INIT_REPORTS },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE3_COVER), HID_QUIRK_NO_INIT_REPORTS },
Michal Koutný 4be84f
@@ -146,6 +148,7 @@ static const struct hid_device_id hid_quirks[] = {
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN), HID_QUIRK_NO_INIT_REPORTS },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_MOUSE_4D22), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_MOUSE_4E2A), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D65), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4E22), HID_QUIRK_ALWAYS_POLL },
Michal Koutný 4be84f
-- 
Michal Koutný 4be84f
2.35.3
Michal Koutný 4be84f