Adding support for the Microsoft Surface Pro Power Cover, Patch was tested on Debian, Keyboard and Trackpad are fully working, both when plugged in at boot or hotplugged. Signed-off-by: Raimund Roth <raimundmroth@xxxxxxxxx> --- diff -uprN linux-4.1-rc6-vanilla/drivers/hid/hid-core.c linux-4.1-rc6-wip/drivers/hid/hid-core.c --- linux-4.1-rc6-vanilla/drivers/hid/hid-core.c 2015-06-01 04:01:07.000000000 +0200 +++ linux-4.1-rc6-wip/drivers/hid/hid-core.c 2015-06-06 23:31:58.373034000 +0200 @@ -706,7 +706,8 @@ static void hid_scan_collection(struct h if (hid->vendor == USB_VENDOR_ID_MICROSOFT && (hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 || - hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3_JP) && + hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3_JP || + hid->product == USB_DEVICE_ID_MS_POWER_COVER) && hid->group == HID_GROUP_MULTITOUCH) hid->group = HID_GROUP_GENERIC; @@ -1901,6 +1902,7 @@ static const struct hid_device_id hid_ha { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_OFFICE_KB) }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3) }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP) }, + { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER) }, { HID_USB_DEVICE(USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E) }, { HID_USB_DEVICE(USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL) }, { HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN) }, diff -uprN linux-4.1-rc6-vanilla/drivers/hid/hid-ids.h linux-4.1-rc6-wip/drivers/hid/hid-ids.h --- linux-4.1-rc6-vanilla/drivers/hid/hid-ids.h 2015-06-01 04:01:07.000000000 +0200 +++ linux-4.1-rc6-wip/drivers/hid/hid-ids.h 2015-06-06 23:32:05.100989000 +0200 @@ -673,6 +673,7 @@ #define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9 #define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc #define USB_DEVICE_ID_MS_TYPE_COVER_3_JP 0x07dd +#define USB_DEVICE_ID_MS_POWER_COVER 0x07da #define USB_VENDOR_ID_MOJO 0x8282 #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201 diff -uprN linux-4.1-rc6-vanilla/drivers/hid/hid-microsoft.c linux-4.1-rc6-wip/drivers/hid/hid-microsoft.c --- linux-4.1-rc6-vanilla/drivers/hid/hid-microsoft.c 2015-06-01 04:01:07.000000000 +0200 +++ linux-4.1-rc6-wip/drivers/hid/hid-microsoft.c 2015-06-06 23:32:19.016894000 +0200 @@ -280,6 +280,8 @@ static const struct hid_device_id ms_dev .driver_data = MS_HIDINPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP), .driver_data = MS_HIDINPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER), + .driver_data = MS_HIDINPUT }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT), .driver_data = MS_PRESENTER }, diff -uprN linux-4.1-rc6-vanilla/drivers/hid/usbhid/hid-quirks.c linux-4.1-rc6-wip/drivers/hid/usbhid/hid-quirks.c --- linux-4.1-rc6-vanilla/drivers/hid/usbhid/hid-quirks.c 2015-06-01 04:01:07.000000000 +0200 +++ linux-4.1-rc6-wip/drivers/hid/usbhid/hid-quirks.c 2015-06-06 23:32:37.876767000 +0200 @@ -89,6 +89,7 @@ static const struct hid_blacklist { { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET }, { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP, HID_QUIRK_NO_INIT_REPORTS }, + { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS }, -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html