|
@@ -1,36 +1,8 @@
|
|
|
-From 0c1ec9426772daa2d4cedc2eae807419eba9abfb Mon Sep 17 00:00:00 2001
|
|
|
-From: Jake Day <jake@ninebysix.com>
|
|
|
-Date: Fri, 2 Feb 2018 11:23:08 -0500
|
|
|
-Subject: support for surface keyboards and covers
|
|
|
-
|
|
|
-
|
|
|
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
|
|
-index 0c3f608..b0e22c0 100644
|
|
|
---- a/drivers/hid/hid-core.c
|
|
|
-+++ b/drivers/hid/hid-core.c
|
|
|
-@@ -723,7 +723,8 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
|
|
|
- hid->group = HID_GROUP_SENSOR_HUB;
|
|
|
-
|
|
|
- if (hid->vendor == USB_VENDOR_ID_MICROSOFT &&
|
|
|
-- hid->product == USB_DEVICE_ID_MS_POWER_COVER &&
|
|
|
-+ (hid->product == USB_DEVICE_ID_MS_SURFACE_LAPTOP ||
|
|
|
-+ hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
|
|
|
- hid->group == HID_GROUP_MULTITOUCH)
|
|
|
- hid->group = HID_GROUP_GENERIC;
|
|
|
-
|
|
|
-@@ -2183,6 +2184,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_7K) },
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_600) },
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1) },
|
|
|
-+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_LAPTOP) },
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER) },
|
|
|
- { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT) },
|
|
|
- #endif
|
|
|
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
|
|
-index 5da3d62..1295dcb 100644
|
|
|
+index a0baa5b..3e03ced8 100644
|
|
|
--- a/drivers/hid/hid-ids.h
|
|
|
+++ b/drivers/hid/hid-ids.h
|
|
|
-@@ -767,11 +767,21 @@
|
|
|
+@@ -770,11 +770,22 @@
|
|
|
#define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1 0x0732
|
|
|
#define USB_DEVICE_ID_MS_DIGITAL_MEDIA_600 0x0750
|
|
|
#define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c
|
|
@@ -53,28 +25,16 @@ index 5da3d62..1295dcb 100644
|
|
|
+#define USB_DEVICE_ID_MS_SURFACE_BOOK 0x07cd
|
|
|
+#define USB_DEVICE_ID_MS_SURFACE_BOOK_2 0x0922
|
|
|
+#define USB_DEVICE_ID_MS_SURFACE_LAPTOP 0xf001
|
|
|
++#define HID_DEVICE_ID_MS_SURFACE_LAPTOP 0x0064
|
|
|
+#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
|
|
|
|
|
|
#define USB_VENDOR_ID_MOJO 0x8282
|
|
|
#define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
|
|
|
-diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
|
|
|
-index 96e7d32..9127164 100644
|
|
|
---- a/drivers/hid/hid-microsoft.c
|
|
|
-+++ b/drivers/hid/hid-microsoft.c
|
|
|
-@@ -274,6 +274,8 @@ static const struct hid_device_id ms_devices[] = {
|
|
|
- .driver_data = MS_NOGET },
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500),
|
|
|
- .driver_data = MS_DUPLICATE_USAGES },
|
|
|
-+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_LAPTOP),
|
|
|
-+ .driver_data = MS_HIDINPUT },
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER),
|
|
|
- .driver_data = MS_HIDINPUT },
|
|
|
- { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_KEYBOARD),
|
|
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
|
|
-index 65ea23b..dd416e9 100644
|
|
|
+index 65ea23b..00ce3be 100644
|
|
|
--- a/drivers/hid/hid-multitouch.c
|
|
|
+++ b/drivers/hid/hid-multitouch.c
|
|
|
-@@ -1638,6 +1638,52 @@ static const struct hid_device_id mt_devices[] = {
|
|
|
+@@ -1638,6 +1638,58 @@ static const struct hid_device_id mt_devices[] = {
|
|
|
HID_USB_DEVICE(USB_VENDOR_ID_LG,
|
|
|
USB_DEVICE_ID_LG_MELFAS_MT) },
|
|
|
|
|
@@ -119,6 +79,12 @@ index 65ea23b..dd416e9 100644
|
|
|
+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
|
|
|
+ USB_DEVICE_ID_MS_SURFACE_BOOK_2) },
|
|
|
+
|
|
|
++ /* Microsoft Surface Laptop */
|
|
|
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
|
|
|
++ HID_DEVICE(BUS_I2C, HID_GROUP_ANY,
|
|
|
++ USB_DEVICE_ID_MS_SURFACE_LAPTOP,
|
|
|
++ HID_DEVICE_ID_MS_SURFACE_LAPTOP) },
|
|
|
++
|
|
|
+ /* Microsoft Power Cover */
|
|
|
+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
|
|
|
+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
|