Skip to content

Commit 0439de7

Browse files
stephenjustJiri Kosina
authored andcommitted
HID: microsoft: Add Surface 3 type cover
Adding support for the Microsoft Surface 3 (non-pro) Type Cover. The existing definitions and quirks are actually for the Surface Pro 3 type covers. I've renamed the old constants to reflect that they belong to the Surface Pro 3, and added a new constant and matching code for the Surface 3. Signed-off-by: Stephen Just <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 67db8a8 commit 0439de7

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

drivers/hid/hid-core.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -705,8 +705,9 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
705705
hid->group = HID_GROUP_SENSOR_HUB;
706706

707707
if (hid->vendor == USB_VENDOR_ID_MICROSOFT &&
708-
(hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 ||
709-
hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3_JP ||
708+
(hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 ||
709+
hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP ||
710+
hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 ||
710711
hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
711712
hid->group == HID_GROUP_MULTITOUCH)
712713
hid->group = HID_GROUP_GENERIC;
@@ -1902,8 +1903,9 @@ static const struct hid_device_id hid_have_special_driver[] = {
19021903
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K) },
19031904
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0) },
19041905
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_OFFICE_KB) },
1906+
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
1907+
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
19051908
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3) },
1906-
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP) },
19071909
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER) },
19081910
{ HID_USB_DEVICE(USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E) },
19091911
{ HID_USB_DEVICE(USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL) },

drivers/hid/hid-ids.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -663,8 +663,9 @@
663663
#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
664664
#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
665665
#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
666-
#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc
667-
#define USB_DEVICE_ID_MS_TYPE_COVER_3_JP 0x07dd
666+
#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 0x07dc
667+
#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
668+
#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07de
668669
#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
669670

670671
#define USB_VENDOR_ID_MOJO 0x8282

drivers/hid/hid-microsoft.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,11 @@ static const struct hid_device_id ms_devices[] = {
276276
.driver_data = MS_NOGET },
277277
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500),
278278
.driver_data = MS_DUPLICATE_USAGES },
279-
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3),
279+
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3),
280+
.driver_data = MS_HIDINPUT },
281+
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP),
280282
.driver_data = MS_HIDINPUT },
281-
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP),
283+
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3),
282284
.driver_data = MS_HIDINPUT },
283285
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER),
284286
.driver_data = MS_HIDINPUT },

drivers/hid/usbhid/hid-quirks.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ static const struct hid_blacklist {
8787
{ USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C05A, HID_QUIRK_ALWAYS_POLL },
8888
{ USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A, HID_QUIRK_ALWAYS_POLL },
8989
{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
90+
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3, HID_QUIRK_NO_INIT_REPORTS },
91+
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
9092
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
91-
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP, HID_QUIRK_NO_INIT_REPORTS },
9293
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER, HID_QUIRK_NO_INIT_REPORTS },
9394
{ USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
9495
{ USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS },

0 commit comments

Comments
 (0)