linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] HID: input: rework HID_QUIRK_MULTI_INPUT
@ 2016-05-12 14:12 Benjamin Tissoires
  2016-05-12 14:12 ` [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-05-12 14:12 UTC (permalink / raw)
  To: Jiri Kosina, Bastien Nocera, Andy Shevchenko; +Cc: linux-input, linux-kernel

The purpose of HID_QUIRK_MULTI_INPUT is to have an input device per
report id. This is useful when the HID device presents several HID
collections of different device types.

The current implementation of hid-input creates one input node per id per
type (input or output). This is problematic for the LEDs of a keyboard as
they are often set through an output report. The current code creates
one input node with all the keyboard keys, and one other with only the
LEDs.

To solve this, we use a two-passes way:
- first, we initialize all input nodes and associate one per report id
- then, we register all the input nodes

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
 drivers/hid/hid-input.c | 95 ++++++++++++++++++++++++++++---------------------
 include/linux/hid.h     |  1 +
 2 files changed, 55 insertions(+), 41 deletions(-)

diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index bcfaf32..bb2ec45 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1458,6 +1458,31 @@ static void hidinput_cleanup_hidinput(struct hid_device *hid,
 	kfree(hidinput);
 }
 
+static struct hid_input *hidinput_match(struct hid_report *report)
+{
+	struct hid_device *hid = report->device;
+	struct hid_input *hidinput;
+
+	list_for_each_entry(hidinput, &hid->inputs, list) {
+		if (hidinput->report &&
+		    hidinput->report->id == report->id)
+			return hidinput;
+	}
+
+	return NULL;
+}
+
+static inline void hidinput_configure_usages(struct hid_input *hidinput,
+					     struct hid_report *report)
+{
+	int i, j;
+
+	for (i = 0; i < report->maxfield; i++)
+		for (j = 0; j < report->field[i]->maxusage; j++)
+			hidinput_configure_usage(hidinput, report->field[i],
+						 report->field[i]->usage + j);
+}
+
 /*
  * Register the input device; print a message.
  * Configure the input layer interface
@@ -1468,8 +1493,8 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)
 {
 	struct hid_driver *drv = hid->driver;
 	struct hid_report *report;
-	struct hid_input *hidinput = NULL;
-	int i, j, k;
+	struct hid_input *next, *hidinput = NULL;
+	int i, k;
 
 	INIT_LIST_HEAD(&hid->inputs);
 	INIT_WORK(&hid->led_work, hidinput_led_worker);
@@ -1499,43 +1524,40 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)
 			if (!report->maxfield)
 				continue;
 
+			/*
+			 * Find the previous hidinput report attached
+			 * to this report id.
+			 */
+			if (hid->quirks & HID_QUIRK_MULTI_INPUT)
+				hidinput = hidinput_match(report);
+
 			if (!hidinput) {
 				hidinput = hidinput_allocate(hid);
 				if (!hidinput)
 					goto out_unwind;
 			}
 
-			for (i = 0; i < report->maxfield; i++)
-				for (j = 0; j < report->field[i]->maxusage; j++)
-					hidinput_configure_usage(hidinput, report->field[i],
-								 report->field[i]->usage + j);
-
-			if ((hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) &&
-			    !hidinput_has_been_populated(hidinput))
-				continue;
+			hidinput_configure_usages(hidinput, report);
 
-			if (hid->quirks & HID_QUIRK_MULTI_INPUT) {
-				/* This will leave hidinput NULL, so that it
-				 * allocates another one if we have more inputs on
-				 * the same interface. Some devices (e.g. Happ's
-				 * UGCI) cram a lot of unrelated inputs into the
-				 * same interface. */
+			if (hid->quirks & HID_QUIRK_MULTI_INPUT)
 				hidinput->report = report;
-				if (drv->input_configured &&
-				    drv->input_configured(hid, hidinput))
-					goto out_cleanup;
-				if (input_register_device(hidinput->input))
-					goto out_cleanup;
-				hidinput = NULL;
-			}
 		}
 	}
 
-	if (hidinput && (hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) &&
-	    !hidinput_has_been_populated(hidinput)) {
-		/* no need to register an input device not populated */
-		hidinput_cleanup_hidinput(hid, hidinput);
-		hidinput = NULL;
+	list_for_each_entry_safe(hidinput, next, &hid->inputs, list) {
+		if ((hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) &&
+		    !hidinput_has_been_populated(hidinput)) {
+			/* no need to register an input device not populated */
+			hidinput_cleanup_hidinput(hid, hidinput);
+			continue;
+		}
+
+		if (drv->input_configured &&
+		    drv->input_configured(hid, hidinput))
+			goto out_unwind;
+		if (input_register_device(hidinput->input))
+			goto out_unwind;
+		hidinput->registered = true;
 	}
 
 	if (list_empty(&hid->inputs)) {
@@ -1543,20 +1565,8 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)
 		goto out_unwind;
 	}
 
-	if (hidinput) {
-		if (drv->input_configured &&
-		    drv->input_configured(hid, hidinput))
-			goto out_cleanup;
-		if (input_register_device(hidinput->input))
-			goto out_cleanup;
-	}
-
 	return 0;
 
-out_cleanup:
-	list_del(&hidinput->list);
-	input_free_device(hidinput->input);
-	kfree(hidinput);
 out_unwind:
 	/* unwind the ones we already registered */
 	hidinput_disconnect(hid);
@@ -1573,7 +1583,10 @@ void hidinput_disconnect(struct hid_device *hid)
 
 	list_for_each_entry_safe(hidinput, next, &hid->inputs, list) {
 		list_del(&hidinput->list);
-		input_unregister_device(hidinput->input);
+		if (hidinput->registered)
+			input_unregister_device(hidinput->input);
+		else
+			input_free_device(hidinput->input);
 		kfree(hidinput);
 	}
 
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 75b66ec..8a5d697 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -479,6 +479,7 @@ struct hid_input {
 	struct list_head list;
 	struct hid_report *report;
 	struct input_dev *input;
+	bool registered;
 };
 
 enum hid_type {
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-12 14:12 [PATCH 1/2] HID: input: rework HID_QUIRK_MULTI_INPUT Benjamin Tissoires
@ 2016-05-12 14:12 ` Benjamin Tissoires
  2016-05-13 14:30   ` Andy Shevchenko
                     ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Benjamin Tissoires @ 2016-05-12 14:12 UTC (permalink / raw)
  To: Jiri Kosina, Bastien Nocera, Andy Shevchenko; +Cc: linux-input, linux-kernel

There is no reasons to filter out keyboard and consumer control collections
in hid-multitouch.
With the previous hid-input fix, there is now a full support of the Type
Cover and we can remove all specific bits from hid-core and hid-microsoft.

hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so we can
also remove it from the list of ushbid quirks.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---

Andy, would you mind checking if this series is sufficient to enable the
TypeCover of the Surface Book?

Cheers,
Benjamin

 drivers/hid/hid-core.c          | 2 --
 drivers/hid/hid-ids.h           | 1 -
 drivers/hid/hid-microsoft.c     | 2 --
 drivers/hid/hid-multitouch.c    | 4 +++-
 drivers/hid/usbhid/hid-quirks.c | 1 -
 5 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 8ea3a26..f055a68 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -727,7 +727,6 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
 	    (hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 ||
 	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2 ||
 	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP ||
-	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 ||
 	     hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
 	    hid->group == HID_GROUP_MULTITOUCH)
 		hid->group = HID_GROUP_GENERIC;
@@ -1976,7 +1975,6 @@ static const struct hid_device_id hid_have_special_driver[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
-	{ 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_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) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 3eec09a1..99e9852 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -703,7 +703,6 @@
 #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3    0x07dc
 #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2  0x07e2
 #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
-#define USB_DEVICE_ID_MS_TYPE_COVER_3    0x07de
 #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
 
 #define USB_VENDOR_ID_MOJO		0x8282
diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
index e924d55..cf6920b 100644
--- a/drivers/hid/hid-microsoft.c
+++ b/drivers/hid/hid-microsoft.c
@@ -288,8 +288,6 @@ static const struct hid_device_id ms_devices[] = {
 		.driver_data = MS_HIDINPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP),
 		.driver_data = MS_HIDINPUT },
-	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3),
-		.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 c741f5e..ac35731 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -835,7 +835,9 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
 	if (!td->mtclass.export_all_inputs &&
 	    field->application != HID_DG_TOUCHSCREEN &&
 	    field->application != HID_DG_PEN &&
-	    field->application != HID_DG_TOUCHPAD)
+	    field->application != HID_DG_TOUCHPAD &&
+	    field->application != HID_GD_KEYBOARD &&
+	    field->application != HID_CP_CONSUMER_CONTROL)
 		return -1;
 
 	/*
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index b4b8c6a..baf2bad 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -98,7 +98,6 @@ static const struct hid_blacklist {
 	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3, HID_QUIRK_NO_INIT_REPORTS },
 	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2, HID_QUIRK_NO_INIT_REPORTS },
 	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
-	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, 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 },
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-12 14:12 ` [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
@ 2016-05-13 14:30   ` Andy Shevchenko
  2016-05-13 14:49     ` Benjamin Tissoires
  2016-05-17 17:47   ` Bastien Nocera
  2016-06-23  1:12   ` Stephen J
  2 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-05-13 14:30 UTC (permalink / raw)
  To: Benjamin Tissoires, Jiri Kosina, Bastien Nocera; +Cc: linux-input, linux-kernel

On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> There is no reasons to filter out keyboard and consumer control
> collections
> in hid-multitouch.
> With the previous hid-input fix, there is now a full support of the
> Type
> Cover and we can remove all specific bits from hid-core and hid-
> microsoft.
> 
> hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so we
> can
> also remove it from the list of ushbid quirks.
> 
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> ---
> 
> Andy, would you mind checking if this series is sufficient to enable
> the
> TypeCover of the Surface Book?

Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Noticed little difference that there is no event for the device anymore,
just /dev/usb/hiddev0. Would it work properly under X?

> 
> Cheers,
> Benjamin
> 
>  drivers/hid/hid-core.c          | 2 --
>  drivers/hid/hid-ids.h           | 1 -
>  drivers/hid/hid-microsoft.c     | 2 --
>  drivers/hid/hid-multitouch.c    | 4 +++-
>  drivers/hid/usbhid/hid-quirks.c | 1 -
>  5 files changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 8ea3a26..f055a68 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -727,7 +727,6 @@ static void hid_scan_collection(struct hid_parser
> *parser, unsigned type)
>  	    (hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 ||
>  	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2 ||
>  	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP ||
> -	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 ||
>  	     hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
>  	    hid->group == HID_GROUP_MULTITOUCH)
>  		hid->group = HID_GROUP_GENERIC;
> @@ -1976,7 +1975,6 @@ static const struct hid_device_id
> hid_have_special_driver[] = {
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2) },
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
> -	{ 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_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) },
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 3eec09a1..99e9852 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -703,7 +703,6 @@
>  #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3    0x07dc
>  #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2  0x07e2
>  #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
> -#define USB_DEVICE_ID_MS_TYPE_COVER_3    0x07de
>  #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
>  
>  #define USB_VENDOR_ID_MOJO		0x8282
> diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
> index e924d55..cf6920b 100644
> --- a/drivers/hid/hid-microsoft.c
> +++ b/drivers/hid/hid-microsoft.c
> @@ -288,8 +288,6 @@ static const struct hid_device_id ms_devices[] = {
>  		.driver_data = MS_HIDINPUT },
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP),
>  		.driver_data = MS_HIDINPUT },
> -	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_3),
> -		.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 c741f5e..ac35731 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -835,7 +835,9 @@ static int mt_input_mapping(struct hid_device
> *hdev, struct hid_input *hi,
>  	if (!td->mtclass.export_all_inputs &&
>  	    field->application != HID_DG_TOUCHSCREEN &&
>  	    field->application != HID_DG_PEN &&
> -	    field->application != HID_DG_TOUCHPAD)
> +	    field->application != HID_DG_TOUCHPAD &&
> +	    field->application != HID_GD_KEYBOARD &&
> +	    field->application != HID_CP_CONSUMER_CONTROL)
>  		return -1;
>  
>  	/*
> diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-
> quirks.c
> index b4b8c6a..baf2bad 100644
> --- a/drivers/hid/usbhid/hid-quirks.c
> +++ b/drivers/hid/usbhid/hid-quirks.c
> @@ -98,7 +98,6 @@ static const struct hid_blacklist {
>  	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3,
> HID_QUIRK_NO_INIT_REPORTS },
>  	{ USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2, HID_QUIRK_NO_INIT_REPORTS },
>  	{ USB_VENDOR_ID_MICROSOFT,
> USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
> -	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3,
> 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 },

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-13 14:30   ` Andy Shevchenko
@ 2016-05-13 14:49     ` Benjamin Tissoires
  2016-05-13 16:09       ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-05-13 14:49 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > There is no reasons to filter out keyboard and consumer control
> > collections
> > in hid-multitouch.
> > With the previous hid-input fix, there is now a full support of the
> > Type
> > Cover and we can remove all specific bits from hid-core and hid-
> > microsoft.
> > 
> > hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so we
> > can
> > also remove it from the list of ushbid quirks.
> > 
> > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> > ---
> > 
> > Andy, would you mind checking if this series is sufficient to enable
> > the
> > TypeCover of the Surface Book?
> 
> Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> 
> Noticed little difference that there is no event for the device anymore,
> just /dev/usb/hiddev0. Would it work properly under X?

Not sure what you mean.
I get 3 input nodes:
Microsoft Surface Type Cover Keyboard
Microsoft Surface Type Cover Consumer Control
Microsoft Surface Type Cover Touchpad

Each on this input device is properly assigned an event node and X works
with them.

If there is no /dev/input/eventX created for your cover, then this is
not normal and needs to be investigated.

Cheers,
Benjamin

> 
> > 
> > Cheers,
> > Benjamin
> > 
> >  drivers/hid/hid-core.c          | 2 --
> >  drivers/hid/hid-ids.h           | 1 -
> >  drivers/hid/hid-microsoft.c     | 2 --
> >  drivers/hid/hid-multitouch.c    | 4 +++-
> >  drivers/hid/usbhid/hid-quirks.c | 1 -
> >  5 files changed, 3 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> > index 8ea3a26..f055a68 100644
> > --- a/drivers/hid/hid-core.c
> > +++ b/drivers/hid/hid-core.c
> > @@ -727,7 +727,6 @@ static void hid_scan_collection(struct hid_parser
> > *parser, unsigned type)
> >  	    (hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 ||
> >  	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2 ||
> >  	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP ||
> > -	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 ||
> >  	     hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
> >  	    hid->group == HID_GROUP_MULTITOUCH)
> >  		hid->group = HID_GROUP_GENERIC;
> > @@ -1976,7 +1975,6 @@ static const struct hid_device_id
> > hid_have_special_driver[] = {
> >  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
> >  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2) },
> >  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
> > -	{ 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_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) },
> > diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> > index 3eec09a1..99e9852 100644
> > --- a/drivers/hid/hid-ids.h
> > +++ b/drivers/hid/hid-ids.h
> > @@ -703,7 +703,6 @@
> >  #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3    0x07dc
> >  #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2  0x07e2
> >  #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
> > -#define USB_DEVICE_ID_MS_TYPE_COVER_3    0x07de
> >  #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
> >  
> >  #define USB_VENDOR_ID_MOJO		0x8282
> > diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
> > index e924d55..cf6920b 100644
> > --- a/drivers/hid/hid-microsoft.c
> > +++ b/drivers/hid/hid-microsoft.c
> > @@ -288,8 +288,6 @@ static const struct hid_device_id ms_devices[] = {
> >  		.driver_data = MS_HIDINPUT },
> >  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP),
> >  		.driver_data = MS_HIDINPUT },
> > -	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_3),
> > -		.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 c741f5e..ac35731 100644
> > --- a/drivers/hid/hid-multitouch.c
> > +++ b/drivers/hid/hid-multitouch.c
> > @@ -835,7 +835,9 @@ static int mt_input_mapping(struct hid_device
> > *hdev, struct hid_input *hi,
> >  	if (!td->mtclass.export_all_inputs &&
> >  	    field->application != HID_DG_TOUCHSCREEN &&
> >  	    field->application != HID_DG_PEN &&
> > -	    field->application != HID_DG_TOUCHPAD)
> > +	    field->application != HID_DG_TOUCHPAD &&
> > +	    field->application != HID_GD_KEYBOARD &&
> > +	    field->application != HID_CP_CONSUMER_CONTROL)
> >  		return -1;
> >  
> >  	/*
> > diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-
> > quirks.c
> > index b4b8c6a..baf2bad 100644
> > --- a/drivers/hid/usbhid/hid-quirks.c
> > +++ b/drivers/hid/usbhid/hid-quirks.c
> > @@ -98,7 +98,6 @@ static const struct hid_blacklist {
> >  	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3,
> > HID_QUIRK_NO_INIT_REPORTS },
> >  	{ USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2, HID_QUIRK_NO_INIT_REPORTS },
> >  	{ USB_VENDOR_ID_MICROSOFT,
> > USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
> > -	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3,
> > 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 },
> 
> -- 
> Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Intel Finland Oy
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-13 14:49     ` Benjamin Tissoires
@ 2016-05-13 16:09       ` Andy Shevchenko
  2016-05-13 16:21         ` Benjamin Tissoires
  2016-05-13 16:28         ` Andy Shevchenko
  0 siblings, 2 replies; 22+ messages in thread
From: Andy Shevchenko @ 2016-05-13 16:09 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > 
> > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > 
> > > There is no reasons to filter out keyboard and consumer control
> > > collections
> > > in hid-multitouch.
> > > With the previous hid-input fix, there is now a full support of
> > > the
> > > Type
> > > Cover and we can remove all specific bits from hid-core and hid-
> > > microsoft.
> > > 
> > > hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so
> > > we
> > > can
> > > also remove it from the list of ushbid quirks.
> > > 
> > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> > > ---
> > > 
> > > Andy, would you mind checking if this series is sufficient to
> > > enable
> > > the
> > > TypeCover of the Surface Book?
> > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > 
> > Noticed little difference that there is no event for the device
> > anymore,
> > just /dev/usb/hiddev0. Would it work properly under X?
> Not sure what you mean.
> I get 3 input nodes:
> Microsoft Surface Type Cover Keyboard
> Microsoft Surface Type Cover Consumer Control
> Microsoft Surface Type Cover Touchpad
> 
> Each on this input device is properly assigned an event node and X
> works
> with them.
> 
> If there is no /dev/input/eventX created for your cover, then this is
> not normal and needs to be investigated.

There is no /dev/input/eventX for the touchpad. 
It prints that input device is under /usb.../input8, but the actual node
I got events from is /dev/usb/hiddev0.

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-13 16:09       ` Andy Shevchenko
@ 2016-05-13 16:21         ` Benjamin Tissoires
  2016-05-13 16:28         ` Andy Shevchenko
  1 sibling, 0 replies; 22+ messages in thread
From: Benjamin Tissoires @ 2016-05-13 16:21 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > 
> > > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > > 
> > > > There is no reasons to filter out keyboard and consumer control
> > > > collections
> > > > in hid-multitouch.
> > > > With the previous hid-input fix, there is now a full support of
> > > > the
> > > > Type
> > > > Cover and we can remove all specific bits from hid-core and hid-
> > > > microsoft.
> > > > 
> > > > hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so
> > > > we
> > > > can
> > > > also remove it from the list of ushbid quirks.
> > > > 
> > > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> > > > ---
> > > > 
> > > > Andy, would you mind checking if this series is sufficient to
> > > > enable
> > > > the
> > > > TypeCover of the Surface Book?
> > > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > 
> > > Noticed little difference that there is no event for the device
> > > anymore,
> > > just /dev/usb/hiddev0. Would it work properly under X?
> > Not sure what you mean.
> > I get 3 input nodes:
> > Microsoft Surface Type Cover Keyboard
> > Microsoft Surface Type Cover Consumer Control
> > Microsoft Surface Type Cover Touchpad
> > 
> > Each on this input device is properly assigned an event node and X
> > works
> > with them.
> > 
> > If there is no /dev/input/eventX created for your cover, then this is
> > not normal and needs to be investigated.
> 
> There is no /dev/input/eventX for the touchpad. 
> It prints that input device is under /usb.../input8, but the actual node
> I got events from is /dev/usb/hiddev0.
> 

Hmm, have you also applied 1/2?

If so, please can you provide me the hid-recorder[1] output of the type
cover?

Cheers,
Benjamin

[1] http://bentiss.github.io/hid-replay-docs/

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-13 16:09       ` Andy Shevchenko
  2016-05-13 16:21         ` Benjamin Tissoires
@ 2016-05-13 16:28         ` Andy Shevchenko
  2016-05-20  7:58           ` Benjamin Tissoires
  1 sibling, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-05-13 16:28 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Fri, 2016-05-13 at 19:09 +0300, Andy Shevchenko wrote:
> On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> > 
> > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > 
> > > 
> > > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > > 
> > > > 
> > > > There is no reasons to filter out keyboard and consumer control
> > > > collections
> > > > in hid-multitouch.
> > > > With the previous hid-input fix, there is now a full support of
> > > > the
> > > > Type
> > > > Cover and we can remove all specific bits from hid-core and hid-
> > > > microsoft.
> > > > 
> > > > hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS
> > > > so
> > > > we
> > > > can
> > > > also remove it from the list of ushbid quirks.
> > > > 
> > > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com
> > > > >
> > > > ---
> > > > 
> > > > Andy, would you mind checking if this series is sufficient to
> > > > enable
> > > > the
> > > > TypeCover of the Surface Book?
> > > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > 
> > > Noticed little difference that there is no event for the device
> > > anymore,
> > > just /dev/usb/hiddev0. Would it work properly under X?
> > Not sure what you mean.
> > I get 3 input nodes:
> > Microsoft Surface Type Cover Keyboard
> > Microsoft Surface Type Cover Consumer Control
> > Microsoft Surface Type Cover Touchpad
> > 
> > Each on this input device is properly assigned an event node and X
> > works
> > with them.
> > 
> > If there is no /dev/input/eventX created for your cover, then this
> > is
> > not normal and needs to be investigated.
> There is no /dev/input/eventX for the touchpad. 
> It prints that input device is under /usb.../input8, but the actual
> node
> I got events from is /dev/usb/hiddev0.

Correction, it seems the event node is there (event6), but I got nothing
from it

total 0
lrwxrwxrwx    1 root     root             0 May 13 19:17 event0 ->
../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0/event0
lrwxrwxrwx    1 root     root             0 May 13 19:17 event1 ->
../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1/event1
lrwxrwxrwx    1 root     root             0 May 13 19:17 event2 ->
../../devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2
lrwxrwxrwx    1 root     root             0 May 13 19:17 event3 ->
../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:18/PNP0C09:00/MS
HW0040:00/input/input3/event3
lrwxrwxrwx    1 root     root             0 May 13 19:19 event4 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input4/event4
lrwxrwxrwx    1 root     root             0 May 13 19:19 event5 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input6/event5
lrwxrwxrwx    1 root     root             0 May 13 19:19 event6 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input8/event6
lrwxrwxrwx    1 root     root             0 May 13 19:17 input0 ->
../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
lrwxrwxrwx    1 root     root             0 May 13 19:17 input1 ->
../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
lrwxrwxrwx    1 root     root             0 May 13 19:17 input2 ->
../../devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
lrwxrwxrwx    1 root     root             0 May 13 19:17 input3 ->
../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:18/PNP0C09:00/MS
HW0040:00/input/input3
lrwxrwxrwx    1 root     root             0 May 13 19:19 input4 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input4
lrwxrwxrwx    1 root     root             0 May 13 19:19 input6 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input6
lrwxrwxrwx    1 root     root             0 May 13 19:19 input8 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input8
lrwxrwxrwx    1 root     root             0 May 13 19:17 mice ->
../../devices/virtual/input/mice
lrwxrwxrwx    1 root     root             0 May 13 19:19 mouse0 ->
../../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-
1.4:1.0/0003:045E:07CD.0001/input/input8/mouse0


I tried today's linux-next + your patches.

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-12 14:12 ` [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
  2016-05-13 14:30   ` Andy Shevchenko
@ 2016-05-17 17:47   ` Bastien Nocera
  2016-06-23  1:12   ` Stephen J
  2 siblings, 0 replies; 22+ messages in thread
From: Bastien Nocera @ 2016-05-17 17:47 UTC (permalink / raw)
  To: Benjamin Tissoires, Jiri Kosina, Andy Shevchenko
  Cc: linux-input, linux-kernel

On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> There is no reasons to filter out keyboard and consumer control
> collections
> in hid-multitouch.
> With the previous hid-input fix, there is now a full support of the
> Type
> Cover and we can remove all specific bits from hid-core and hid-
> microsoft.
> 
> hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so we
> can
> also remove it from the list of ushbid quirks.
> 
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

Works on my machine with up to 3 simultaneous touchpoints. A 4th one
releases all fingers (is that expected?).

Tested-by: Bastien Nocera <hadess@hadess.net>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-13 16:28         ` Andy Shevchenko
@ 2016-05-20  7:58           ` Benjamin Tissoires
  2016-05-31 16:07             ` Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-05-20  7:58 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> On Fri, 2016-05-13 at 19:09 +0300, Andy Shevchenko wrote:
> > On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> > > 
> > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > 
> > > > 
> > > > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > > > 
> > > > > 
> > > > > There is no reasons to filter out keyboard and consumer control
> > > > > collections
> > > > > in hid-multitouch.
> > > > > With the previous hid-input fix, there is now a full support of
> > > > > the
> > > > > Type
> > > > > Cover and we can remove all specific bits from hid-core and hid-
> > > > > microsoft.
> > > > > 
> > > > > hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS
> > > > > so
> > > > > we
> > > > > can
> > > > > also remove it from the list of ushbid quirks.
> > > > > 
> > > > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com
> > > > > >
> > > > > ---
> > > > > 
> > > > > Andy, would you mind checking if this series is sufficient to
> > > > > enable
> > > > > the
> > > > > TypeCover of the Surface Book?
> > > > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > 
> > > > Noticed little difference that there is no event for the device
> > > > anymore,
> > > > just /dev/usb/hiddev0. Would it work properly under X?
> > > Not sure what you mean.
> > > I get 3 input nodes:
> > > Microsoft Surface Type Cover Keyboard
> > > Microsoft Surface Type Cover Consumer Control
> > > Microsoft Surface Type Cover Touchpad
> > > 
> > > Each on this input device is properly assigned an event node and X
> > > works
> > > with them.
> > > 
> > > If there is no /dev/input/eventX created for your cover, then this
> > > is
> > > not normal and needs to be investigated.
> > There is no /dev/input/eventX for the touchpad. 
> > It prints that input device is under /usb.../input8, but the actual
> > node
> > I got events from is /dev/usb/hiddev0.
> 
> Correction, it seems the event node is there (event6), but I got nothing
> from it

Would you mind sending me a hid-recorder[1] trace of the device while
typing few keys and using the touchpad?

Not receiving events from the actual touchpad node means that the
device did not switch to the mutlitouch mode, or that something else
is going on. I should be able to see that in the hid-recorder log.


[1] http://bentiss.github.io/hid-replay-docs/

Cheers,
Benjamin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-20  7:58           ` Benjamin Tissoires
@ 2016-05-31 16:07             ` Benjamin Tissoires
  2016-05-31 17:56               ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-05-31 16:07 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > On Fri, 2016-05-13 at 19:09 +0300, Andy Shevchenko wrote:
> > > On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> > > > 
> > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > 
> > > > > 
> > > > > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > > > > 
> > > > > > 
> > > > > > There is no reasons to filter out keyboard and consumer control
> > > > > > collections
> > > > > > in hid-multitouch.
> > > > > > With the previous hid-input fix, there is now a full support of
> > > > > > the
> > > > > > Type
> > > > > > Cover and we can remove all specific bits from hid-core and hid-
> > > > > > microsoft.
> > > > > > 
> > > > > > hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS
> > > > > > so
> > > > > > we
> > > > > > can
> > > > > > also remove it from the list of ushbid quirks.
> > > > > > 
> > > > > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com
> > > > > > >
> > > > > > ---
> > > > > > 
> > > > > > Andy, would you mind checking if this series is sufficient to
> > > > > > enable
> > > > > > the
> > > > > > TypeCover of the Surface Book?
> > > > > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > > 
> > > > > Noticed little difference that there is no event for the device
> > > > > anymore,
> > > > > just /dev/usb/hiddev0. Would it work properly under X?
> > > > Not sure what you mean.
> > > > I get 3 input nodes:
> > > > Microsoft Surface Type Cover Keyboard
> > > > Microsoft Surface Type Cover Consumer Control
> > > > Microsoft Surface Type Cover Touchpad
> > > > 
> > > > Each on this input device is properly assigned an event node and X
> > > > works
> > > > with them.
> > > > 
> > > > If there is no /dev/input/eventX created for your cover, then this
> > > > is
> > > > not normal and needs to be investigated.
> > > There is no /dev/input/eventX for the touchpad. 
> > > It prints that input device is under /usb.../input8, but the actual
> > > node
> > > I got events from is /dev/usb/hiddev0.
> > 
> > Correction, it seems the event node is there (event6), but I got nothing
> > from it
> 
> Would you mind sending me a hid-recorder[1] trace of the device while
> typing few keys and using the touchpad?

Ping?

Without those logs, I can not do further debugging and Jiri can't take the
series...

Cheers,
Benjamin

> 
> Not receiving events from the actual touchpad node means that the
> device did not switch to the mutlitouch mode, or that something else
> is going on. I should be able to see that in the hid-recorder log.
> 
> 
> [1] http://bentiss.github.io/hid-replay-docs/
> 
> Cheers,
> Benjamin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-31 16:07             ` Benjamin Tissoires
@ 2016-05-31 17:56               ` Andy Shevchenko
  2016-06-02 14:11                 ` Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-05-31 17:56 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Tue, 2016-05-31 at 18:07 +0200, Benjamin Tissoires wrote:
> On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > On Fri, 2016-05-13 at 19:09 +0300, Andy Shevchenko wrote:
> > > > On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> > > > > 
> > > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > 
> > > > > > 
> > > > > > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > > > > > 
> > > > > > > 
> > > > > > > There is no reasons to filter out keyboard and consumer
> > > > > > > control
> > > > > > > collections
> > > > > > > in hid-multitouch.
> > > > > > > With the previous hid-input fix, there is now a full
> > > > > > > support of
> > > > > > > the
> > > > > > > Type
> > > > > > > Cover and we can remove all specific bits from hid-core
> > > > > > > and hid-
> > > > > > > microsoft.
> > > > > > > 
> > > > > > > hid-multitouch will automatically set
> > > > > > > HID_QUIRK_NO_INIT_REPORTS
> > > > > > > so
> > > > > > > we
> > > > > > > can
> > > > > > > also remove it from the list of ushbid quirks.
> > > > > > > 
> > > > > > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redh
> > > > > > > at.com
> > > > > > > > 
> > > > > > > ---
> > > > > > > 
> > > > > > > Andy, would you mind checking if this series is sufficient
> > > > > > > to
> > > > > > > enable
> > > > > > > the
> > > > > > > TypeCover of the Surface Book?
> > > > > > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.co
> > > > > > m>
> > > > > > 
> > > > > > Noticed little difference that there is no event for the
> > > > > > device
> > > > > > anymore,
> > > > > > just /dev/usb/hiddev0. Would it work properly under X?
> > > > > Not sure what you mean.
> > > > > I get 3 input nodes:
> > > > > Microsoft Surface Type Cover Keyboard
> > > > > Microsoft Surface Type Cover Consumer Control
> > > > > Microsoft Surface Type Cover Touchpad
> > > > > 
> > > > > Each on this input device is properly assigned an event node
> > > > > and X
> > > > > works
> > > > > with them.
> > > > > 
> > > > > If there is no /dev/input/eventX created for your cover, then
> > > > > this
> > > > > is
> > > > > not normal and needs to be investigated.
> > > > There is no /dev/input/eventX for the touchpad. 
> > > > It prints that input device is under /usb.../input8, but the
> > > > actual
> > > > node
> > > > I got events from is /dev/usb/hiddev0.
> > > 
> > > Correction, it seems the event node is there (event6), but I got
> > > nothing
> > > from it
> > 
> > Would you mind sending me a hid-recorder[1] trace of the device
> > while
> > typing few keys and using the touchpad?
> 
> Ping?
> 
> Without those logs, I can not do further debugging and Jiri can't take
> the
> series...

Sorry for delay.

Here we are:
D: 0
R: 1057 05 01 09 06 a1 01 85 01 15 00 25 01 75 01 95 08 05 07 19 e0 29
e7 81 02 75 08 95 0a 19 00 29 91 26 ff 00 81 00 05 0c 0a c0 02 a1 02 1a
c1 02 2a c6 02 95 06 b1 03 c0 05 08 19 01 29 03 75 01 95 03 25 01 91 02
95 05 91 01 c0 05 01 09 02 a1 01 85 02 05 09 19 01 29 05 81 02 95 01 75
03 81 03 15 81 25 7f 75 08 95 02 05 01 09 30 09 31 81 06 a1 02 09 48 15
00 25 01 35 01 45 10 75 02 95 01 a4 b1 02 09 38 15 81 25 7f 35 00 45 00
75 08 81 06 c0 a1 02 09 48 b4 b1 02 35 00 45 00 75 04 b1 03 05 0c 0a 38
02 15 81 25 7f 75 08 81 06 c0 c0 05 0c 09 01 a1 01 85 03 75 10 15 00 26
ff 03 19 00 2a ff 03 81 00 c0 06 05 ff 09 01 a1 01 85 0d 25 ff 95 02 75
08 09 20 81 02 09 22 91 02 15 81 25 7f 95 20 75 08 09 21 81 02 09 23 91
02 c0 09 02 a1 01 85 0c 15 00 25 ff 95 01 09 00 91 02 c0 05 0d 09 05 a1
01 85 04 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25
03 09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30
46 f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 45 00 55 00 65 00 c0
05 0d 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03
09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46
f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 45 00 55 00 65 00 c0 05
0d 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09
51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2
03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 c0 05 0d 09 22 a1 02 25 01
09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03
81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94
02 26 29 05 09 31 81 02 45 00 55 00 65 00 c0 05 0d 09 22 a1 02 25 01 09
47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03 81
03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94 02
26 29 05 09 31 81 02 c0 05 0d 55 0c 66 01 10 47 ff ff 00 00 27 ff ff 00
00 09 56 81 02 09 54 25 7f 75 08 81 02 05 09 09 01 25 01 75 01 81 02 95
07 81 03 05 0d 85 04 09 55 09 59 75 04 95 02 25 0f b1 02 06 00 ff 09 c6
85 05 15 00 25 08 75 08 95 01 b1 02 09 c7 26 ff 00 75 08 95 20 b1 02 c0
05 0d 09 0e a1 01 85 07 09 22 a1 02 09 52 15 00 25 0a 75 08 95 01 b1 02
c0 09 22 a1 00 85 08 09 57 09 58 75 01 95 02 25 01 b1 02 95 06 b1 03 c0
c0 06 07 ff 09 01 a1 01 85 0a 09 02 26 ff 00 75 08 95 14 91 02 85 09 09
03 91 02 85 0a 09 04 95 26 81 02 85 09 09 05 81 02 85 09 09 06 95 01 b1
02 85 0b 09 07 b1 02 c0 06 05 ff 09 04 a1 01 85 0e 09 31 91 02 09 31 81
03 09 30 91 02 09 30 81 02 95 39 09 32 92 02 01 09 32 82 02 01 c0 06 05
ff 09 50 a1 01 85 20 15 00 27 ff ff ff ff 75 08 95 3c 09 60 82 02 01 09
61 92 02 01 09 62 b2 02 01 85 21 09 63 82 02 01 09 64 92 02 01 09 65 b2
02 01 85 22 27 ff ff ff ff 75 20 95 04 19 66 29 69 81 02 19 6a 29 6d 91
02 19 6e 29 71 b1 02 85 23 19 72 29 75 81 02 19 76 29 79 91 02 19 7a 29
7d b1 02 85 24 19 7e 29 81 81 02 19 82 29 85 91 02 19 86 29 89 b1 02 85
25 19 8a 29 8d 81 02 19 8e 29 91 91 02 19 92 29 95 b1 02 85 26 19 96 29
99 81 02 19 9a 29 9d 91 02 19 9e 29 a1 b1 02 85 27 19 a2 29 a5 81 02 19
a6 29 a9 91 02 19 aa 29 ad b1 02 85 28 19 ae 29 b1 81 02 19 b2 29 b5 91
02 19 b6 29 b9 b1 02 85 29 19 ba 29 bd 81 02 19 be 29 c1 91 02 19 c2 29
c5 b1 02 c0
N: Microsoft Surface Keyboard
P: usb-0000:00:14.0-1.4/input0
I: 3 045e 07cd
D: 0
E: 0.000000 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 4.260012 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 4.440019 12 01 20 10 00 00 00 00 00 00 00 00 00
E: 4.500005 12 01 00 10 00 00 00 00 00 00 00 00 00
E: 4.549996 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 4.740009 12 01 00 0c 00 00 00 00 00 00 00 00 00
E: 4.870011 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.010018 12 01 00 06 00 00 00 00 00 00 00 00 00
E: 5.110018 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.260016 12 01 00 15 00 00 00 00 00 00 00 00 00
E: 5.330021 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.380008 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 5.460012 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.600016 12 01 00 07 00 00 00 00 00 00 00 00 00
E: 5.630002 3 03 00 00
E: 5.680009 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.710014 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 5.800012 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.860014 12 01 00 09 00 00 00 00 00 00 00 00 00
E: 5.960010 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.110013 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 6.190009 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.510012 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 6.590009 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 7.289990 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 7.629994 3 03 00 00
E: 7.830015 12 01 20 16 00 00 00 00 00 00 00 00 00
E: 7.930008 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 7.939995 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 8.610009 12 01 00 18 00 00 00 00 00 00 00 00 00
E: 8.634001 3 03 00 00
E: 8.710010 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 8.850007 12 01 00 15 00 00 00 00 00 00 00 00 00
E: 8.940011 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 9.080011 12 01 00 09 00 00 00 00 00 00 00 00 00
E: 9.160014 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 9.289994 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 9.400013 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 9.489995 12 01 00 06 00 00 00 00 00 00 00 00 00
E: 9.633994 3 03 00 00
E: 9.639990 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 9.649996 12 01 00 15 00 00 00 00 00 00 00 00 00
E: 9.730004 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 10.060007 12 01 00 2a 00 00 00 00 00 00 00 00 00
E: 10.180010 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 10.189995 12 01 00 08 00 00 00 00 00 00 00 00 00
E: 10.270006 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 10.970010 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 11.060017 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 11.260007 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 11.319995 12 01 20 05 00 00 00 00 00 00 00 00 00
E: 11.379897 12 01 00 05 00 00 00 00 00 00 00 00 00
E: 11.399890 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 11.559894 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 11.628891 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 11.708889 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 11.840014 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 11.929011 12 01 00 0e 00 00 00 00 00 00 00 00 00
E: 12.039880 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 12.789011 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 12.888997 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 13.189011 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 13.319997 12 01 20 17 00 00 00 00 00 00 00 00 00
E: 13.389008 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 13.429009 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 13.519989 12 01 00 08 00 00 00 00 00 00 00 00 00
E: 13.629011 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 13.729009 12 01 00 16 00 00 00 00 00 00 00 00 00
E: 13.809011 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 13.909012 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 13.989010 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 14.839007 12 01 00 28 00 00 00 00 00 00 00 00 00
E: 14.969002 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 15.879010 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 16.128876 12 01 20 11 00 00 00 00 00 00 00 00 00
E: 16.189009 12 01 00 11 00 00 00 00 00 00 00 00 00
E: 16.229007 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 16.369006 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 16.479010 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 16.539014 12 01 00 1a 00 00 00 00 00 00 00 00 00
E: 16.629009 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 16.698999 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 16.789008 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 17.058999 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 17.139004 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 17.229011 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 17.319004 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 17.949025 12 01 00 18 00 00 00 00 00 00 00 00 00
E: 18.039003 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.098999 12 01 00 06 00 00 00 00 00 00 00 00 00
E: 18.169005 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.439016 12 01 00 0b 00 00 00 00 00 00 00 00 00
E: 18.548990 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 19.588998 12 01 00 13 00 00 00 00 00 00 00 00 00
E: 19.640989 3 03 00 00
E: 19.719007 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 19.779009 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 19.899004 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 22.078888 12 01 00 07 00 00 00 00 00 00 00 00 00
E: 22.198888 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 22.569003 12 01 00 28 00 00 00 00 00 00 00 00 00
E: 22.640986 3 03 00 00
E: 22.679011 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 23.984993 6 02 00 fd 01 00 00
E: 23.999979 6 02 00 00 01 00 00
E: 24.007972 6 02 00 00 01 00 00
E: 24.014976 6 02 00 00 03 00 00
E: 24.021954 6 02 00 00 04 00 00
E: 24.029974 6 02 00 fe 05 00 00
E: 24.036975 6 02 00 ff 06 00 00
E: 24.043949 6 02 00 ff 0a 00 00
E: 24.051973 6 02 00 00 0a 00 00
E: 24.058972 6 02 00 ff 0c 00 00
E: 24.065969 6 02 00 ff 0b 00 00
E: 24.073971 6 02 00 00 0b 00 00
E: 24.080953 6 02 00 fe 0f 00 00
E: 24.087977 6 02 00 ff 0e 00 00
E: 24.095974 6 02 00 fe 0a 00 00
E: 24.102953 6 02 00 ff 0e 00 00
E: 24.109974 6 02 00 ff 0d 00 00
E: 24.117953 6 02 00 ff 0a 00 00
E: 24.124951 6 02 00 00 08 00 00
E: 24.131970 6 02 00 ff 0c 00 00
E: 24.139960 6 02 00 00 0c 00 00
E: 24.146952 6 02 00 00 0c 00 00
E: 24.153975 6 02 00 00 0a 00 00
E: 24.161978 6 02 00 02 0f 00 00
E: 24.168956 6 02 00 02 10 00 00
E: 24.175956 6 02 00 04 0e 00 00
E: 24.183979 6 02 00 02 09 00 00
E: 24.190977 6 02 00 06 11 00 00
E: 24.197972 6 02 00 04 0f 00 00
E: 24.205956 6 02 00 05 09 00 00
E: 24.212960 6 02 00 06 0a 00 00
E: 24.220974 6 02 00 0a 0b 00 00
E: 24.227971 6 02 00 08 09 00 00
E: 24.234972 6 02 00 0b 08 00 00
E: 24.241951 6 02 00 0a 03 00 00
E: 24.469988 6 02 00 fa fe 00 00
E: 24.477957 6 02 00 fd fe 00 00
E: 24.484978 6 02 00 fd 00 00 00
E: 24.491972 6 02 00 fe ff 00 00
E: 24.506962 6 02 00 00 ff 00 00
E: 24.513972 6 02 00 ff 00 00 00
E: 24.528980 6 02 00 00 ff 00 00
E: 24.535969 6 02 00 00 ff 00 00
E: 24.543965 6 02 00 02 fd 00 00
E: 24.550971 6 02 00 07 f7 00 00
E: 24.557976 6 02 00 06 f6 00 00
E: 24.565971 6 02 00 07 f5 00 00
E: 24.572954 6 02 00 07 f5 00 00
E: 24.579973 6 02 00 0b f1 00 00
E: 24.587972 6 02 00 0d ee 00 00
E: 24.594976 6 02 00 0c ef 00 00
E: 24.601953 6 02 00 0b ed 00 00
E: 24.609962 6 02 00 0c f0 00 00
E: 24.616971 6 02 00 09 f7 00 00
E: 24.624953 6 02 00 0e f3 00 00
E: 24.631977 6 02 00 07 f8 00 00
E: 24.638976 6 02 00 0f f4 00 00
E: 24.836990 6 02 00 ff 00 00 00
E: 24.866994 6 02 00 ff 00 00 00
E: 24.873970 6 02 00 00 01 00 00
E: 24.880970 6 02 00 ff 01 00 00
E: 24.888975 6 02 00 ff 03 00 00
E: 24.895978 6 02 00 fc 09 00 00
E: 24.902972 6 02 00 fb 0a 00 00
E: 24.910979 6 02 00 fa 0d 00 00
E: 24.917974 6 02 00 f9 17 00 00
E: 24.924952 6 02 00 f7 13 00 00
E: 24.932974 6 02 00 f5 21 00 00
E: 24.939978 6 02 00 f7 19 00 00
E: 24.946976 6 02 00 fa 25 00 00
E: 24.954976 6 02 00 fa 26 00 00
E: 24.961973 6 02 00 fd 22 00 00
E: 24.968971 6 02 00 fd 2d 00 00
E: 24.976955 6 02 00 ff 25 00 00
E: 24.983971 6 02 00 03 2a 00 00
E: 24.990975 6 02 00 03 1f 00 00
E: 24.998953 6 02 00 06 1d 00 00
E: 25.005970 6 02 00 0c 19 00 00
E: 25.012985 6 02 00 0c 11 00 00
E: 25.020970 6 02 00 12 13 00 00
E: 25.027953 6 02 00 16 0b 00 00
E: 25.034973 6 02 00 17 02 00 00
E: 25.042950 6 02 00 12 fe 00 00
E: 25.049972 6 02 00 14 fa 00 00
E: 25.145989 6 02 00 00 ff 00 00
E: 25.189992 6 02 00 ff 00 00 00
E: 25.203978 6 02 00 ff 00 00 00
E: 25.211975 6 02 00 fa 04 00 00
E: 25.218975 6 02 00 fa 04 00 00
E: 25.226976 6 02 00 f9 05 00 00
E: 25.233978 6 02 00 fd 03 00 00
E: 25.240955 6 02 00 f5 05 00 00
E: 25.248952 6 02 00 f7 02 00 00
E: 25.255957 6 02 00 f5 02 00 00
E: 25.262974 6 02 00 f3 00 00 00
E: 25.270973 6 02 00 f2 fe 00 00
E: 25.277973 6 02 00 ef fb 00 00
E: 25.284946 6 02 00 ec fa 00 00
E: 25.292975 6 02 00 eb f7 00 00
E: 25.299969 6 02 00 e4 f6 00 00
E: 25.306951 6 02 00 e3 f5 00 00
E: 25.314973 6 02 00 de f6 00 00
E: 25.321957 6 02 00 de f1 00 00
E: 25.328980 6 02 00 d8 ef 00 00
E: 25.359000 6 02 00 f2 01 00 00
E: 25.365978 6 02 00 f2 01 00 00
E: 25.372951 6 02 00 f4 02 00 00
E: 25.380953 6 02 00 f3 02 00 00
E: 25.387971 6 02 00 f6 04 00 00
E: 25.394950 6 02 00 e8 0a 00 00
E: 25.402971 6 02 00 f6 05 00 00
E: 25.409956 6 02 00 fb 03 00 00
E: 25.416972 6 02 00 fb 05 00 00
E: 25.424980 6 02 00 f8 07 00 00
E: 25.438983 6 02 00 f6 11 00 00
E: 25.946989 6 02 00 fe fd 00 00
E: 25.961979 6 02 00 fc fe 00 00
E: 25.968970 6 02 00 ff ff 00 00
E: 25.975953 6 02 00 ff 00 00 00
E: 25.983972 6 02 00 ff 00 00 00
E: 25.990972 6 02 00 ff 00 00 00
E: 25.997972 6 02 00 ff 01 00 00
E: 26.005972 6 02 00 00 01 00 00
E: 26.012969 6 02 00 ff 05 00 00
E: 26.020973 6 02 00 00 03 00 00
E: 26.027972 6 02 00 02 08 00 00
E: 26.034952 6 02 00 00 07 00 00
E: 26.042968 6 02 00 00 06 00 00
E: 26.049951 6 02 00 03 0a 00 00
E: 26.056951 6 02 00 03 0a 00 00
E: 26.063973 6 02 00 05 0c 00 00
E: 26.071972 6 02 00 00 01 00 00
E: 26.254993 6 02 01 fd fc 00 00
E: 26.269981 6 02 01 ff 00 00 00
E: 26.276971 6 02 01 ff 00 00 00
E: 26.284944 6 02 00 00 00 00 00
E: 26.291975 6 02 00 00 00 00 00
E: 26.423989 6 02 01 00 00 00 00
E: 26.445983 6 02 01 ff 00 00 00
E: 26.467981 6 02 01 00 01 00 00
E: 26.497978 6 02 00 00 00 00 00
E: 26.504970 6 02 00 00 00 00 00
E: 26.636985 6 02 01 00 fd 00 00
E: 26.688971 6 02 01 00 01 00 00
E: 26.710985 6 02 00 00 00 00 00
E: 26.717973 6 02 00 00 00 00 00
E: 26.746980 6 02 00 00 01 00 00
E: 26.754979 6 02 00 02 02 00 00
E: 26.761950 6 02 00 01 00 00 00
E: 27.098981 6 02 00 05 04 00 00
E: 27.113981 6 02 00 03 00 00 00
E: 27.121950 6 02 00 02 00 00 00
E: 27.136980 6 02 01 0a 01 00 00
E: 27.143966 6 02 01 01 01 00 00
E: 27.150973 6 02 01 02 01 00 00
E: 27.179993 6 02 01 00 01 00 00
E: 27.194980 6 02 01 00 01 00 00
E: 27.201969 6 02 01 00 01 00 00
E: 27.208985 6 02 01 00 01 00 00
E: 27.216971 6 02 01 ff 02 00 00
E: 27.231978 6 02 01 ff 03 00 00
E: 27.238974 6 02 01 ff 02 00 00
E: 27.246978 6 02 01 ff 02 00 00
E: 27.253972 6 02 01 ff 02 00 00
E: 27.260972 6 02 01 fe 02 00 00
E: 27.268971 6 02 01 ff 02 00 00
E: 27.275952 6 02 01 ff 02 00 00
E: 27.282961 6 02 01 ff 01 00 00
E: 27.290956 6 02 01 fe 01 00 00
E: 27.304985 6 02 01 ff 00 00 00
E: 27.311967 6 02 01 ff 00 00 00
E: 27.326982 6 02 01 fa fd 00 00
E: 27.340957 6 02 00 00 00 00 00
E: 27.348953 6 02 00 00 00 00 00
E: 27.392983 6 02 00 fe 00 00 00
E: 27.399973 6 02 00 ff 00 00 00
E: 27.406954 6 02 00 ff 00 00 00
E: 27.414971 6 02 00 ff 00 00 00
E: 27.429982 6 02 01 ff 06 00 00
E: 27.451983 6 02 01 ff 00 00 00
E: 27.466976 6 02 01 00 01 00 00
E: 27.473957 6 02 01 00 01 00 00
E: 27.480973 6 02 01 00 01 00 00
E: 27.488969 6 02 01 00 01 00 00
E: 27.502977 6 02 01 00 01 00 00
E: 27.510975 6 02 01 00 01 00 00
E: 27.517977 6 02 01 02 02 00 00
E: 27.525973 6 02 01 01 00 00 00
E: 27.546872 6 02 01 00 01 00 00
E: 27.575989 6 02 00 00 00 00 00
E: 27.583973 6 02 00 00 00 00 00
E: 27.774985 6 02 00 00 01 00 00
E: 27.810986 6 02 02 00 01 00 00
E: 27.825986 6 02 02 ff 01 00 00
E: 27.832970 6 02 02 ff 01 00 00
E: 27.840971 6 02 02 fe 04 00 00
E: 27.847971 6 02 02 ff 03 00 00
E: 27.854973 6 02 02 ff 02 00 00
E: 27.862952 6 02 02 00 01 00 00
E: 27.869974 6 02 02 00 02 00 00
E: 27.876970 6 02 02 00 01 00 00
E: 27.891983 6 02 02 00 01 00 00
E: 27.906961 6 02 02 00 01 00 00
E: 27.950987 6 02 02 01 00 00 00
E: 27.957977 6 02 02 01 00 00 00
E: 27.965974 6 02 02 01 00 00 00
E: 27.972971 6 02 00 00 00 00 00
E: 27.979968 6 02 00 00 00 00 00
E: 28.075985 6 02 02 fd ff 00 00
E: 28.089959 6 02 02 ff 00 00 00
E: 28.104981 6 02 02 00 01 00 00
E: 28.112974 6 02 02 00 01 00 00
E: 28.133988 6 02 02 00 01 00 00
E: 28.148979 6 02 02 01 00 00 00
E: 28.156950 6 02 02 01 00 00 00
E: 28.163948 6 02 02 01 00 00 00
E: 28.170971 6 02 02 01 fe 00 00
E: 28.178971 6 02 02 01 ff 00 00
E: 28.185969 6 02 02 01 ff 00 00
E: 28.192984 6 02 02 06 fc 00 00
E: 28.200959 6 02 02 06 ff 00 00
E: 28.207972 6 02 00 00 00 00 00
E: 28.214971 6 02 00 00 00 00 00
E: 31.738879 12 01 20 00 00 00 00 00 00 00 00 00 00
E: 31.878882 12 01 20 17 00 00 00 00 00 00 00 00 00
E: 31.928999 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 31.978996 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 32.119000 12 01 00 0b 00 00 00 00 00 00 00 00 00
E: 32.199003 12 01 00 0b 04 00 00 00 00 00 00 00 00
E: 32.208986 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 32.338995 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 32.719009 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 32.808982 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 33.298997 12 01 00 32 00 00 00 00 00 00 00 00 00
E: 33.408979 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 33.809000 12 01 00 2a 00 00 00 00 00 00 00 00 00
E: 33.939001 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 34.018998 12 01 00 34 00 00 00 00 00 00 00 00 00
E: 34.128999 12 01 00 34 16 00 00 00 00 00 00 00 00
E: 34.138984 12 01 00 16 00 00 00 00 00 00 00 00 00
E: 34.238999 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 34.749000 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 34.848997 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 35.088987 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 35.199001 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 35.408980 12 01 00 0f 00 00 00 00 00 00 00 00 00
E: 35.499007 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 35.568999 12 01 00 0f 00 00 00 00 00 00 00 00 00
E: 35.638999 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 40.378997 12 01 00 28 00 00 00 00 00 00 00 00 00
E: 40.468997 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 51.408872 12 01 01 00 00 00 00 00 00 00 00 00 00
E: 51.642858 3 03 00 00



P.S. I have sent you privately the fix to hid-replay to be built under
ucLibc.

> 
> Cheers,
> Benjamin
> 
> > 
> > Not receiving events from the actual touchpad node means that the
> > device did not switch to the mutlitouch mode, or that something else
> > is going on. I should be able to see that in the hid-recorder log.
> > 
> > 
> > [1] http://bentiss.github.io/hid-replay-docs/
> > 
> > Cheers,
> > Benjamin

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-31 17:56               ` Andy Shevchenko
@ 2016-06-02 14:11                 ` Benjamin Tissoires
  2016-06-02 14:40                   ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-06-02 14:11 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On May 31 2016 or thereabouts, Andy Shevchenko wrote:
> On Tue, 2016-05-31 at 18:07 +0200, Benjamin Tissoires wrote:
> > On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > On Fri, 2016-05-13 at 19:09 +0300, Andy Shevchenko wrote:
> > > > > On Fri, 2016-05-13 at 16:49 +0200, Benjamin Tissoires wrote:
> > > > > > 
> > > > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > > 
> > > > > > > 
> > > > > > > On Thu, 2016-05-12 at 16:12 +0200, Benjamin Tissoires wrote:
> > > > > > > > 
> > > > > > > > 
> > > > > > > > There is no reasons to filter out keyboard and consumer
> > > > > > > > control
> > > > > > > > collections
> > > > > > > > in hid-multitouch.
> > > > > > > > With the previous hid-input fix, there is now a full
> > > > > > > > support of
> > > > > > > > the
> > > > > > > > Type
> > > > > > > > Cover and we can remove all specific bits from hid-core
> > > > > > > > and hid-
> > > > > > > > microsoft.
> > > > > > > > 
> > > > > > > > hid-multitouch will automatically set
> > > > > > > > HID_QUIRK_NO_INIT_REPORTS
> > > > > > > > so
> > > > > > > > we
> > > > > > > > can
> > > > > > > > also remove it from the list of ushbid quirks.
> > > > > > > > 
> > > > > > > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redh
> > > > > > > > at.com
> > > > > > > > > 
> > > > > > > > ---
> > > > > > > > 
> > > > > > > > Andy, would you mind checking if this series is sufficient
> > > > > > > > to
> > > > > > > > enable
> > > > > > > > the
> > > > > > > > TypeCover of the Surface Book?
> > > > > > > Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.co
> > > > > > > m>
> > > > > > > 
> > > > > > > Noticed little difference that there is no event for the
> > > > > > > device
> > > > > > > anymore,
> > > > > > > just /dev/usb/hiddev0. Would it work properly under X?
> > > > > > Not sure what you mean.
> > > > > > I get 3 input nodes:
> > > > > > Microsoft Surface Type Cover Keyboard
> > > > > > Microsoft Surface Type Cover Consumer Control
> > > > > > Microsoft Surface Type Cover Touchpad
> > > > > > 
> > > > > > Each on this input device is properly assigned an event node
> > > > > > and X
> > > > > > works
> > > > > > with them.
> > > > > > 
> > > > > > If there is no /dev/input/eventX created for your cover, then
> > > > > > this
> > > > > > is
> > > > > > not normal and needs to be investigated.
> > > > > There is no /dev/input/eventX for the touchpad. 
> > > > > It prints that input device is under /usb.../input8, but the
> > > > > actual
> > > > > node
> > > > > I got events from is /dev/usb/hiddev0.
> > > > 
> > > > Correction, it seems the event node is there (event6), but I got
> > > > nothing
> > > > from it
> > > 
> > > Would you mind sending me a hid-recorder[1] trace of the device
> > > while
> > > typing few keys and using the touchpad?
> > 
> > Ping?
> > 
> > Without those logs, I can not do further debugging and Jiri can't take
> > the
> > series...
> 
> Sorry for delay.

No worries.

OK, so it looks like your touchpad stays in the mouse emulation mode for
some reasons. Did you do the recordings with hid-multitouch patched, or
with plain hid-generic or an other one?

After further thoughts, I think it should be acceptable to enable the
mouse collection for Win 8 certified devices. Touchscreens are not
supposed to expose such a mouse emulation, so that would mean that only
touchpad will export one.

I'll come with a patch by the end of the week (hopefully).

Cheers,
Benjamin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-02 14:11                 ` Benjamin Tissoires
@ 2016-06-02 14:40                   ` Andy Shevchenko
  2016-06-03  9:38                     ` Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-06-02 14:40 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> > > > > 
> On May 31 2016 or thereabouts, Andy Shevchenko wrote:
> > On Tue, 2016-05-31 at 18:07 +0200, Benjamin Tissoires wrote:
> > > On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > Would you mind sending me a hid-recorder[1] trace of the device
> > > > while
> > > > typing few keys and using the touchpad?
> > > 

> OK, so it looks like your touchpad stays in the mouse emulation mode
> for
> some reasons. Did you do the recordings with hid-multitouch patched,
> or
> with plain hid-generic or an other one?

I take linux-next + your two patches from this thread (+ some unrelated
to HID patches).

> 
> After further thoughts, I think it should be acceptable to enable the
> mouse collection for Win 8 certified devices. Touchscreens are not
> supposed to expose such a mouse emulation, so that would mean that
> only
> touchpad will export one.
> 

> I'll come with a patch by the end of the week (hopefully).

Cc me and I will test 'em.


-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-02 14:40                   ` Andy Shevchenko
@ 2016-06-03  9:38                     ` Benjamin Tissoires
  2016-06-03 11:59                       ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-06-03  9:38 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> > > > > > 
> > On May 31 2016 or thereabouts, Andy Shevchenko wrote:
> > > On Tue, 2016-05-31 at 18:07 +0200, Benjamin Tissoires wrote:
> > > > On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> > > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > Would you mind sending me a hid-recorder[1] trace of the device
> > > > > while
> > > > > typing few keys and using the touchpad?
> > > > 
> 
> > OK, so it looks like your touchpad stays in the mouse emulation mode
> > for
> > some reasons. Did you do the recordings with hid-multitouch patched,
> > or
> > with plain hid-generic or an other one?
> 
> I take linux-next + your two patches from this thread (+ some unrelated
> to HID patches).

OK. I think I know what happened:
- Microsoft forgot to put the Win 8 certification blob in this
  particular device (of course, because Microsoft)
- we do not detect it as a Win 8 certified and do not set the
  HID_QUIRK_NO_INIT_REPORTS flag
- your dmesg should show some error on plug, and then hid can't set the
  input mode
- I can't add a "if win 8 then show the mouse collection" because your
  device doesn't report itself as win 8 :)

Anyway, could you try applying this small diff after my 2 patches and
report if you now have a working touchpad?:

diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index ac35731..e51a753 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -1379,6 +1379,10 @@ static const struct hid_device_id mt_devices[] = {
                MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
                        USB_DEVICE_ID_ILITEK_MULTITOUCH) },
 
+       /* Microsoft */
+       { .driver_data = MT_CLS_WIN_8,
+               MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, 0x07cd) },
+
        /* MosArt panels */
        { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
                MT_USB_DEVICE(USB_VENDOR_ID_ASUS,

---

Cheers,
Benjamin

> 
> > 
> > After further thoughts, I think it should be acceptable to enable the
> > mouse collection for Win 8 certified devices. Touchscreens are not
> > supposed to expose such a mouse emulation, so that would mean that
> > only
> > touchpad will export one.
> > 
> 
> > I'll come with a patch by the end of the week (hopefully).
> 
> Cc me and I will test 'em.
> 
> 
> -- 
> Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Intel Finland Oy

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-03  9:38                     ` Benjamin Tissoires
@ 2016-06-03 11:59                       ` Andy Shevchenko
  2016-06-03 12:23                         ` Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-06-03 11:59 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> > > > > > >  
> > > On May 31 2016 or thereabouts, Andy Shevchenko wrote:
> > > > On Tue, 2016-05-31 at 18:07 +0200, Benjamin Tissoires wrote:
> > > > > On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> > > > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > Would you mind sending me a hid-recorder[1] trace of the
> > > > > > device
> > > > > > while
> > > > > > typing few keys and using the touchpad?
> > > > >  
> > 
> > > OK, so it looks like your touchpad stays in the mouse emulation
> > > mode
> > > for
> > > some reasons. Did you do the recordings with hid-multitouch
> > > patched,
> > > or
> > > with plain hid-generic or an other one?
> > 
> > I take linux-next + your two patches from this thread (+ some
> > unrelated
> > to HID patches).
> 
> OK. I think I know what happened:
> - Microsoft forgot to put the Win 8 certification blob in this
>   particular device (of course, because Microsoft)
> - we do not detect it as a Win 8 certified and do not set the
>   HID_QUIRK_NO_INIT_REPORTS flag
> - your dmesg should show some error on plug, and then hid can't set
> the
>   input mode
> - I can't add a "if win 8 then show the mouse collection" because your
>   device doesn't report itself as win 8 :)
> 
> Anyway, could you try applying this small diff after my 2 patches and
> report if you now have a working touchpad?:

Nope. There is still no /dev/input/eventX associated with touchpad.

> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-
> multitouch.c
> index ac35731..e51a753 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -1379,6 +1379,10 @@ static const struct hid_device_id mt_devices[]
> = {
>                 MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
>                         USB_DEVICE_ID_ILITEK_MULTITOUCH) },
>  
> +       /* Microsoft */
> +       { .driver_data = MT_CLS_WIN_8,
> +               MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, 0x07cd) },
> +




-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-03 11:59                       ` Andy Shevchenko
@ 2016-06-03 12:23                         ` Benjamin Tissoires
  2016-06-03 13:00                           ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-06-03 12:23 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> > On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> > > > > > > >  
> > > > On May 31 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > On Tue, 2016-05-31 at 18:07 +0200, Benjamin Tissoires wrote:
> > > > > > On May 20 2016 or thereabouts, Benjamin Tissoires wrote:
> > > > > > > On May 13 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > > Would you mind sending me a hid-recorder[1] trace of the
> > > > > > > device
> > > > > > > while
> > > > > > > typing few keys and using the touchpad?
> > > > > >  
> > > 
> > > > OK, so it looks like your touchpad stays in the mouse emulation
> > > > mode
> > > > for
> > > > some reasons. Did you do the recordings with hid-multitouch
> > > > patched,
> > > > or
> > > > with plain hid-generic or an other one?
> > > 
> > > I take linux-next + your two patches from this thread (+ some
> > > unrelated
> > > to HID patches).
> > 
> > OK. I think I know what happened:
> > - Microsoft forgot to put the Win 8 certification blob in this
> >   particular device (of course, because Microsoft)
> > - we do not detect it as a Win 8 certified and do not set the
> >   HID_QUIRK_NO_INIT_REPORTS flag
> > - your dmesg should show some error on plug, and then hid can't set
> > the
> >   input mode
> > - I can't add a "if win 8 then show the mouse collection" because your
> >   device doesn't report itself as win 8 :)
> > 
> > Anyway, could you try applying this small diff after my 2 patches and
> > report if you now have a working touchpad?:
> 
> Nope. There is still no /dev/input/eventX associated with touchpad.

Weird. On my system, if I replay your logs, I see 4 new nodes:
/dev/input/event21:	Microsoft Surface Keyboard Keyboard
/dev/input/event22:	Microsoft Surface Keyboard Consumer Control
/dev/input/event23:	Microsoft Surface Keyboard Touchpad
/dev/input/event24:	Microsoft Surface Keyboard Keyboard

Can you attach the dmesg when plugging in the type cover?

Cheers,
Benjamin

> 
> > 
> > diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-
> > multitouch.c
> > index ac35731..e51a753 100644
> > --- a/drivers/hid/hid-multitouch.c
> > +++ b/drivers/hid/hid-multitouch.c
> > @@ -1379,6 +1379,10 @@ static const struct hid_device_id mt_devices[]
> > = {
> >                 MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
> >                         USB_DEVICE_ID_ILITEK_MULTITOUCH) },
> >  
> > +       /* Microsoft */
> > +       { .driver_data = MT_CLS_WIN_8,
> > +               MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, 0x07cd) },
> > +
> 
> 
> 
> 
> -- 
> Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-03 12:23                         ` Benjamin Tissoires
@ 2016-06-03 13:00                           ` Andy Shevchenko
  2016-06-03 13:32                             ` Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-06-03 13:00 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Fri, 2016-06-03 at 14:23 +0200, Benjamin Tissoires wrote:

> On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> > > On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > > > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:


> > > > I take linux-next + your two patches from this thread (+ some
> > > > unrelated
> > > > to HID patches).
> > > 
> > > OK. I think I know what happened:
> > > - Microsoft forgot to put the Win 8 certification blob in this
> > >   particular device (of course, because Microsoft)
> > > - we do not detect it as a Win 8 certified and do not set the
> > >   HID_QUIRK_NO_INIT_REPORTS flag
> > > - your dmesg should show some error on plug, and then hid can't
> > > set
> > > the
> > >   input mode
> > > - I can't add a "if win 8 then show the mouse collection" because
> > > your
> > >   device doesn't report itself as win 8 :)
> > > 
> > > Anyway, could you try applying this small diff after my 2 patches
> > > and
> > > report if you now have a working touchpad?:
> > 
> > Nope. There is still no /dev/input/eventX associated with touchpad.
> 
> Weird. On my system, if I replay your logs, I see 4 new nodes:
> /dev/input/event21:	Microsoft Surface Keyboard Keyboard
> /dev/input/event22:	Microsoft Surface Keyboard Consumer Control
> /dev/input/event23:	Microsoft Surface Keyboard Touchpad
> /dev/input/event24:	Microsoft Surface Keyboard Keyboard

I had a line in dmesg that input8 is allocated to Touchpad, but no
eventX (0..6 IIRC) from /dev/input reflects Touchpad events. I can get
them only via /dev/usb/hiddev0.

> 
> Can you attach the dmesg when plugging in the type cover?
> 

I will do later, but there is no such thing 'plugging in'. It's a part
of the notebook, so, I can do detach-attach cycle, though it shouldn't
matter, it should work immediately after boot I suppose.

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-03 13:00                           ` Andy Shevchenko
@ 2016-06-03 13:32                             ` Benjamin Tissoires
  2016-06-13 12:32                               ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-06-03 13:32 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> On Fri, 2016-06-03 at 14:23 +0200, Benjamin Tissoires wrote:
> 
> > On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > > On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> > > > On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> 
> 
> > > > > I take linux-next + your two patches from this thread (+ some
> > > > > unrelated
> > > > > to HID patches).
> > > > 
> > > > OK. I think I know what happened:
> > > > - Microsoft forgot to put the Win 8 certification blob in this
> > > >   particular device (of course, because Microsoft)
> > > > - we do not detect it as a Win 8 certified and do not set the
> > > >   HID_QUIRK_NO_INIT_REPORTS flag
> > > > - your dmesg should show some error on plug, and then hid can't
> > > > set
> > > > the
> > > >   input mode
> > > > - I can't add a "if win 8 then show the mouse collection" because
> > > > your
> > > >   device doesn't report itself as win 8 :)
> > > > 
> > > > Anyway, could you try applying this small diff after my 2 patches
> > > > and
> > > > report if you now have a working touchpad?:
> > > 
> > > Nope. There is still no /dev/input/eventX associated with touchpad.
> > 
> > Weird. On my system, if I replay your logs, I see 4 new nodes:
> > /dev/input/event21:	Microsoft Surface Keyboard Keyboard
> > /dev/input/event22:	Microsoft Surface Keyboard Consumer Control
> > /dev/input/event23:	Microsoft Surface Keyboard Touchpad
> > /dev/input/event24:	Microsoft Surface Keyboard Keyboard
> 
> I had a line in dmesg that input8 is allocated to Touchpad, but no
> eventX (0..6 IIRC) from /dev/input reflects Touchpad events. I can get
> them only via /dev/usb/hiddev0.
> 
> > 
> > Can you attach the dmesg when plugging in the type cover?
> > 
> 
> I will do later, but there is no such thing 'plugging in'. It's a part
> of the notebook, so, I can do detach-attach cycle, though it shouldn't
> matter, it should work immediately after boot I suppose.
> 

Actually, if the touchpad doesn't want to be set to the multitouch mode,
we might as well take your v2 of your patch in addition to this series.
This should hopefully make the caps lock LED happy and at least enable
the mouse collection. If someone wants to debug why the device doesn't
want to switch to mt, I'd be happy to help/review patches, but I think
we might as well take the easiest path :)

So Andy, if you still have the energy for this:
please apply this series and yours
(https://patchwork.kernel.org/patch/9069371/)

And report if this is sufficient enough.

Cheers,
Benjamin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-03 13:32                             ` Benjamin Tissoires
@ 2016-06-13 12:32                               ` Andy Shevchenko
  2016-06-15 14:28                                 ` Benjamin Tissoires
  0 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2016-06-13 12:32 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 3118 bytes --]

On Fri, 2016-06-03 at 15:32 +0200, Benjamin Tissoires wrote:
> On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > On Fri, 2016-06-03 at 14:23 +0200, Benjamin Tissoires wrote:
> > 
> > > On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > > > On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> > > > > On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> > 
> > 
> > > > > > I take linux-next + your two patches from this thread (+
> > > > > > some
> > > > > > unrelated
> > > > > > to HID patches).
> > > > > 
> > > > > OK. I think I know what happened:
> > > > > - Microsoft forgot to put the Win 8 certification blob in this
> > > > >   particular device (of course, because Microsoft)
> > > > > - we do not detect it as a Win 8 certified and do not set the
> > > > >   HID_QUIRK_NO_INIT_REPORTS flag
> > > > > - your dmesg should show some error on plug, and then hid
> > > > > can't
> > > > > set
> > > > > the
> > > > >   input mode
> > > > > - I can't add a "if win 8 then show the mouse collection"
> > > > > because
> > > > > your
> > > > >   device doesn't report itself as win 8 :)
> > > > > 
> > > > > Anyway, could you try applying this small diff after my 2
> > > > > patches
> > > > > and
> > > > > report if you now have a working touchpad?:
> > > > 
> > > > Nope. There is still no /dev/input/eventX associated with
> > > > touchpad.
> > > 
> > > Weird. On my system, if I replay your logs, I see 4 new nodes:
> > > /dev/input/event21:	Microsoft Surface Keyboard Keyboard
> > > /dev/input/event22:	Microsoft Surface Keyboard Consumer
> > > Control
> > > /dev/input/event23:	Microsoft Surface Keyboard Touchpad
> > > /dev/input/event24:	Microsoft Surface Keyboard Keyboard
> > 
> > I had a line in dmesg that input8 is allocated to Touchpad, but no
> > eventX (0..6 IIRC) from /dev/input reflects Touchpad events. I can
> > get
> > them only via /dev/usb/hiddev0.
> > 
> > > 
> > > Can you attach the dmesg when plugging in the type cover?
> > > 
> > 
> > I will do later, but there is no such thing 'plugging in'. It's a
> > part
> > of the notebook, so, I can do detach-attach cycle, though it
> > shouldn't
> > matter, it should work immediately after boot I suppose.
> > 
> 
> Actually, if the touchpad doesn't want to be set to the multitouch
> mode,
> we might as well take your v2 of your patch in addition to this
> series.
> This should hopefully make the caps lock LED happy and at least enable
> the mouse collection. If someone wants to debug why the device doesn't
> want to switch to mt, I'd be happy to help/review patches, but I think
> we might as well take the easiest path :)
> 
> So Andy, if you still have the energy for this:
> please apply this series and yours
> (https://patchwork.kernel.org/patch/9069371/)
> 
> And report if this is sufficient enough.

Attached dmesg and hid-recorder files. Doesn't work. In dmesg it
complained on USB transfer at some point during boot.

> 
> Cheers,
> Benjamin

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

[-- Attachment #2: dm --]
[-- Type: text/plain, Size: 49885 bytes --]

[    0.000000] Linux version 4.7.0-rc1-next-20160603+ (andy@black) (gcc version 5.3.1 20160528 (Debian 5.3.1-21) ) #247 SMP Fri Jun 3 14:29:42 EEST 2016
[    0.000000] Command line: vmlinuz.efi initrd=initrd console=tty1 console=ttyS0,115200n8 ignore_loglevel spidev.bufsiz=8192
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: xstate_offset[3]:  960, xstate_sizes[3]:   64
[    0.000000] x86/fpu: xstate_offset[4]: 1024, xstate_sizes[4]:   64
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
[    0.000000] x86/fpu: Enabled xstate features 0x1f, context size is 1088 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000058000-0x0000000000058fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000059000-0x000000000009dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000008667efff] usable
[    0.000000] BIOS-e820: [mem 0x000000008667f000-0x000000008667ffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x0000000086680000-0x00000000866a9fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000866aa000-0x000000008bc80fff] usable
[    0.000000] BIOS-e820: [mem 0x000000008bc81000-0x000000008bf92fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000008bf93000-0x000000008bfc4fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000008bfc5000-0x000000008bffefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000008bfff000-0x000000008bffffff] usable
[    0.000000] BIOS-e820: [mem 0x000000008c000000-0x000000008f7fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e00fa000-0x00000000e00fafff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e00fd000-0x00000000e00fdfff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fe000000-0x00000000fe010fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000026f7fffff] usable
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v2.40 by MSFT
[    0.000000] efi:  ACPI=0x8bffe000  ACPI 2.0=0x8bffe014  SMBIOS=0x8bcc7000  ESRT=0x8bcc4c18 
[    0.000000] esrt: Reserving ESRT space from 0x000000008bcc4c18 to 0x000000008bcc4cf0.
[    0.000000] SMBIOS 3.0 present.
[    0.000000] DMI: Microsoft Corporation Surface Book/Surface Book, BIOS 88.1121.768 03/01/2016
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x26f800 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: write-back
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 00C0000000 mask 7FC0000000 uncachable
[    0.000000]   1 base 00A0000000 mask 7FE0000000 uncachable
[    0.000000]   2 base 0090000000 mask 7FF0000000 uncachable
[    0.000000]   3 base 008E000000 mask 7FFE000000 uncachable
[    0.000000]   4 base 008D000000 mask 7FFF000000 uncachable
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WC  UC- WT  
[    0.000000] e820: last_pfn = 0x8c000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576
[    0.000000] Using GB pages for direct mapping
[    0.000000] BRK [0x02172000, 0x02172fff] PGTABLE
[    0.000000] BRK [0x02173000, 0x02173fff] PGTABLE
[    0.000000] BRK [0x02174000, 0x02174fff] PGTABLE
[    0.000000] BRK [0x02175000, 0x02175fff] PGTABLE
[    0.000000] BRK [0x02176000, 0x02176fff] PGTABLE
[    0.000000] BRK [0x02177000, 0x02177fff] PGTABLE
[    0.000000] RAMDISK: [mem 0x7f743000-0x7fffffff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000008BFFE014 000024 (v02 MSFT  )
[    0.000000] ACPI: XSDT 0x000000008BFFD0E8 0000C4 (v01 MSFT   MSFT     00000000 MSFT 0000005F)
[    0.000000] ACPI: FACP 0x000000008BFF3000 0000F4 (v05 MSFT   MSFT     00000000 MSFT 0000005F)
[    0.000000] ACPI: DSDT 0x000000008BFD9000 0153AC (v02 MSFT   MSFT     00000000 INTL 20141107)
[    0.000000] ACPI: FACS 0x000000008BF9D000 000040
[    0.000000] ACPI: TCPA 0x000000008BFFC000 000032 (v02 MSFT   MSFT     00000002 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000008BFFB000 0003A7 (v02 MSFT   Tpm2Tabl 00001000 INTL 20141107)
[    0.000000] ACPI: TPM2 0x000000008BFFA000 000034 (v03 MSFT   MSFT     00000002 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000008BFF4000 005329 (v02 SaSsdt SaSsdt   00003000 INTL 20141107)
[    0.000000] ACPI: HPET 0x000000008BFF2000 000038 (v01 MSFT   MSFT     00000001 MSFT 0000005F)
[    0.000000] ACPI: LPIT 0x000000008BFF1000 000094 (v01 MSFT   MSFT     00000000 MSFT 0000005F)
[    0.000000] ACPI: APIC 0x000000008BFF0000 0000BC (v03 MSFT   MSFT     00000001 MSFT 0000005F)
[    0.000000] ACPI: MCFG 0x000000008BFEF000 00003C (v01 MSFT   MSFT     00000001 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000008BFD7000 0016D6 (v02 MSFT   RTD3_CH  00001000 INTL 20141107)
[    0.000000] ACPI: SSDT 0x000000008BFD6000 00019A (v02 MSFT   Sata0Ide 00001000 INTL 20141107)
[    0.000000] ACPI: DBGP 0x000000008BFD5000 000034 (v01 MSFT            00000000 MSFT 0000005F)
[    0.000000] ACPI: DBG2 0x000000008BFD4000 000061 (v00 MSFT            00000000 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000008BFD3000 00056D (v02 MSFT   xh_ch000 00000000 INTL 20141107)
[    0.000000] ACPI: SSDT 0x000000008BFD2000 000E73 (v02 CpuRef CpuSsdt  00003000 INTL 20141107)
[    0.000000] ACPI: MSDM 0x000000008BFD1000 000055 (v01 MSFT            00000001 MSFT 00000001)
[    0.000000] ACPI: DMAR 0x000000008BFD0000 000138 (v01 MSFT   MSFT     00000001 INTL 00000001)
[    0.000000] ACPI: NHLT 0x000000008BFCF000 00002D (v00 MSFT   MSFT     00000002 MSFT 0000005F)
[    0.000000] ACPI: FPDT 0x000000008BFCE000 000034 (v01 MSFT   MSFT     00000002 MSFT 0000005F)
[    0.000000] ACPI: BGRT 0x000000008BFCD000 000038 (v01 MSFT   MSFT     00000002 MSFT 0000005F)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000026f7fffff]
[    0.000000] NODE_DATA(0) allocated [mem 0x26f7fa000-0x26f7fdfff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000026f7fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x0000000000057fff]
[    0.000000]   node   0: [mem 0x0000000000059000-0x000000000009dfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000008667efff]
[    0.000000]   node   0: [mem 0x00000000866aa000-0x000000008bc80fff]
[    0.000000]   node   0: [mem 0x000000008bfff000-0x000000008bffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000026f7fffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000026f7fffff]
[    0.000000] On node 0 totalpages: 2077683
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3996 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8882 pages used for memmap
[    0.000000]   DMA32 zone: 568407 pages, LIFO batch:31
[    0.000000]   Normal zone: 23520 pages used for memmap
[    0.000000]   Normal zone: 1505280 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics memory at 0x000000008d800000-0x000000008f7fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x1808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-119
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 4 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x00058000-0x00058fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x8667f000-0x8667ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x86680000-0x866a9fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8bc81000-0x8bf92fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8bf93000-0x8bfc4fff]
[    0.000000] PM: Registered nosave memory: [mem 0x8bfc5000-0x8bffefff]
[    0.000000] PM: Registered nosave memory: [mem 0x8c000000-0x8f7fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x8f800000-0xe00f9fff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00fa000-0xe00fafff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00fb000-0xe00fcfff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00fd000-0xe00fdfff]
[    0.000000] PM: Registered nosave memory: [mem 0xe00fe000-0xfdffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfe000000-0xfe010fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfe011000-0xffffffff]
[    0.000000] e820: [mem 0x8f800000-0xe00f9fff] available for PCI devices
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.000000] setup_percpu: NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] percpu: Embedded 33 pages/cpu @ffff88026f400000 s95384 r8192 d31592 u262144
[    0.000000] pcpu-alloc: s95384 r8192 d31592 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 2045196
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: vmlinuz.efi initrd=initrd console=tty1 console=ttyS0,115200n8 ignore_loglevel spidev.bufsiz=8192
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Calgary: detecting Calgary via BIOS EBDA area
[    0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[    0.000000] Memory: 8028932K/8310732K available (9197K kernel code, 1334K rwdata, 3012K rodata, 1144K init, 1000K bss, 281800K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=8
[    0.000000] Using NULL legacy PIC
[    0.000000] NR_IRQS:4352 nr_irqs:2048 0
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty1] enabled
[    0.000000] console [ttyS0] enabled
[    0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635855245 ns
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration failed
[    0.000000] tsc: PIT calibration matches HPET. 1 loops
[    0.000000] tsc: Detected 2495.692 MHz processor
[    0.000021] Calibrating delay loop (skipped), value calculated using timer frequency.. 4991.38 BogoMIPS (lpj=2495692)
[    0.000772] pid_max: default: 32768 minimum: 301
[    0.001102] ACPI: Core revision 20160422
[    0.001682] Security Framework initialized
[    0.001977] SELinux:  Initializing.
[    0.002241] SELinux:  Starting in permissive mode
[    0.002949] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.005021] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.006207] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes)
[    0.006694] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes)
[    0.007451] CPU: Physical Processor ID: 0
[    0.007739] CPU: Processor Core ID: 0
[    0.008004] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.008423] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    0.008917] mce: CPU supports 8 MCE banks
[    0.009211] CPU0: Thermal monitoring enabled (TM1)
[    0.009576] process: using mwait in idle threads
[    0.009907] Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8
[    0.010285] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4
[    0.011208] Freeing SMP alternatives memory: 36K (ffffffff8206d000 - ffffffff82076000)
[    0.014431] smpboot: Max logical packages: 4
[    0.014737] smpboot: APIC(0) Converting physical 0 to logical package 0
[    0.015242] TSC deadline timer enabled
[    0.015518] smpboot: CPU0: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (family: 0x6, model: 0x4e, stepping: 0x3)
[    0.016244] Performance Events: PEBS fmt3+, 32-deep LBR, Skylake events, full-width counters, Intel PMU driver.
[    0.017046] ... version:                4
[    0.017331] ... bit width:              48
[    0.017623] ... generic registers:      4
[    0.017908] ... value mask:             0000ffffffffffff
[    0.018280] ... max period:             0000ffffffffffff
[    0.018652] ... fixed-purpose events:   3
[    0.018938] ... event mask:             000000070000000f
[    0.020255] x86: Booting SMP configuration:
[    0.020578] .... node  #0, CPUs:      #1 #2 #3
[    0.207094] x86: Booted up 1 node, 4 CPUs
[    0.207434] smpboot: Total of 4 processors activated (19977.54 BogoMIPS)
[    0.211601] devtmpfs: initialized
[    0.212034] PM: Registering ACPI NVS region [mem 0x8667f000-0x8667ffff] (4096 bytes)
[    0.212575] PM: Registering ACPI NVS region [mem 0x8bf93000-0x8bfc4fff] (204800 bytes)
[    0.213183] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.213193] kworker/u16:0 (29) used greatest stack depth: 13912 bytes left
[    0.214363] pinctrl core: initialized pinctrl subsystem
[    0.214846] RTC time: 15:18:56, date: 06/13/16
[    0.215246] NET: Registered protocol family 16
[    0.220236] cpuidle: using governor menu
[    0.220570] ACPI: bus type PCI registered
[    0.220918] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.221566] PCI: not using MMCONFIG
[    0.221818] PCI: Using configuration type 1 for base access
[    0.224180] kworker/u16:2 (298) used greatest stack depth: 13816 bytes left
[    0.229709] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.230304] ACPI: Added _OSI(Module Device)
[    0.230618] ACPI: Added _OSI(Processor Device)
[    0.230935] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.231268] ACPI: Added _OSI(Processor Aggregator Device)
[    0.259643] ACPI: 7 ACPI AML tables successfully acquired and loaded
[    0.260112] 
[    0.264188] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.267031] ACPI: Dynamic OEM Table Load:
[    0.267372] ACPI: SSDT 0xFFFF880265F89000 00063F (v02 PmRef  Cpu0Ist  00003000 INTL 20141107)
[    0.268999] ACPI: \_PR_.CPU0: _OSC native thermal LVT Acked
[    0.270326] ACPI: Dynamic OEM Table Load:
[    0.270642] ACPI: SSDT 0xFFFF8802657A0800 00037F (v02 PmRef  Cpu0Cst  00003001 INTL 20141107)
[    0.272544] ACPI: Dynamic OEM Table Load:
[    0.272862] ACPI: SSDT 0xFFFF880265F89800 0005AA (v02 PmRef  ApIst    00003000 INTL 20141107)
[    0.274632] ACPI: Dynamic OEM Table Load:
[    0.274950] ACPI: SSDT 0xFFFF8802655D8400 000119 (v02 PmRef  ApCst    00003000 INTL 20141107)
[    0.277531] ACPI: Interpreter enabled
[    0.277834] ACPI: (supports S0 S4 S5)
[    0.278100] ACPI: Using IOAPIC for interrupt routing
[    0.278500] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.281114] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in ACPI motherboard resources
[    0.281730] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.283463] ACPI: Power Resource [PG00] (on)
[    0.284121] ACPI: Power Resource [PG01] (on)
[    0.284764] ACPI: Power Resource [PG02] (on)
[    0.288595] ACPI: Power Resource [PX01] (on)
[    0.289012] ACPI: Power Resource [PX02] (on)
[    0.289429] ACPI: Power Resource [PX03] (on)
[    0.289839] ACPI: Power Resource [PX04] (on)
[    0.291296] ACPI: Power Resource [USBC] (on)
[    0.291809] ACPI: Power Resource [PAUD] (on)
[    0.293900] ACPI: Power Resource [PRP5] (on)
[    0.295900] ACPI: Power Resource [PXP] (off)
[    0.298023] ACPI: Power Resource [PXP] (off)
[    0.298561] ACPI: Power Resource [PRWF] (on)
[    0.556637] ACPI: Power Resource [CAMP] (on)
[    0.561445] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    0.561884] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.565283] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER PCIeCapability]
[    0.566105] PCI host bridge to bus 0000:00
[    0.566403] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    0.566877] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    0.567350] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[    0.567871] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff window]
[    0.568392] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff window]
[    0.568915] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff window]
[    0.569438] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff window]
[    0.569958] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff window]
[    0.570479] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff window]
[    0.571000] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff window]
[    0.571522] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff window]
[    0.572041] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff window]
[    0.572563] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff window]
[    0.573084] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff window]
[    0.573605] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff window]
[    0.574125] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff window]
[    0.574647] pci_bus 0000:00: root bus resource [mem 0x8f800000-0xdfffffff window]
[    0.575167] pci_bus 0000:00: root bus resource [mem 0xfd000000-0xfe7fffff window]
[    0.575690] pci_bus 0000:00: root bus resource [bus 00-fe]
[    0.576081] pci 0000:00:00.0: [8086:1904] type 00 class 0x060000
[    0.577126] pci 0000:00:02.0: [8086:1916] type 00 class 0x030000
[    0.577556] pci 0000:00:02.0: reg 0x10: [mem 0xa0000000-0xa0ffffff 64bit]
[    0.578038] pci 0000:00:02.0: reg 0x18: [mem 0x90000000-0x9fffffff 64bit pref]
[    0.578546] pci 0000:00:02.0: reg 0x20: [io  0x8000-0x803f]
[    0.579571] pci 0000:00:05.0: [8086:1919] type 00 class 0x048000
[    0.580012] pci 0000:00:05.0: reg 0x10: [mem 0xa1000000-0xa13fffff 64bit]
[    0.581102] pci 0000:00:08.0: [8086:1911] type 00 class 0x088000
[    0.581534] pci 0000:00:08.0: reg 0x10: [mem 0xd1738000-0xd1738fff 64bit]
[    0.582638] pci 0000:00:14.0: [8086:9d2f] type 00 class 0x0c0330
[    0.583075] pci 0000:00:14.0: reg 0x10: [mem 0xd1700000-0xd170ffff 64bit]
[    0.583621] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    0.584621] pci 0000:00:14.0: System wakeup disabled by ACPI
[    0.585057] pci 0000:00:14.2: [8086:9d31] type 00 class 0x118000
[    0.585495] pci 0000:00:14.2: reg 0x10: [mem 0xd1739000-0xd1739fff 64bit]
[    0.586629] pci 0000:00:14.3: [8086:9d32] type 00 class 0x048000
[    0.587139] pci 0000:00:14.3: reg 0x10: [mem 0xd1710000-0xd171ffff 64bit]
[    0.588612] pci 0000:00:15.0: [8086:9d60] type 00 class 0x118000
[    0.589242] pci 0000:00:15.0: reg 0x10: [mem 0xd173a000-0xd173afff 64bit]
[    0.591151] pci 0000:00:15.1: [8086:9d61] type 00 class 0x118000
[    0.591778] pci 0000:00:15.1: reg 0x10: [mem 0xd173b000-0xd173bfff 64bit]
[    0.593696] pci 0000:00:15.2: [8086:9d62] type 00 class 0x118000
[    0.594323] pci 0000:00:15.2: reg 0x10: [mem 0xd173c000-0xd173cfff 64bit]
[    0.596232] pci 0000:00:15.3: [8086:9d63] type 00 class 0x118000
[    0.596861] pci 0000:00:15.3: reg 0x10: [mem 0xd173d000-0xd173dfff 64bit]
[    0.598704] pci 0000:00:16.0: [8086:9d3a] type 00 class 0x078000
[    0.599144] pci 0000:00:16.0: reg 0x10: [mem 0xd173e000-0xd173efff 64bit]
[    0.599691] pci 0000:00:16.0: PME# supported from D3hot
[    0.600646] pci 0000:00:16.4: [8086:9d3e] type 00 class 0x078000
[    0.601080] pci 0000:00:16.4: reg 0x10: [mem 0xd173f000-0xd173ffff 64bit]
[    0.601608] pci 0000:00:16.4: PME# supported from D3hot
[    0.602566] pci 0000:00:1c.0: [8086:9d14] type 01 class 0x060400
[    0.603051] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.604075] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.604528] pci 0000:00:1d.0: [8086:9d18] type 01 class 0x060400
[    0.605011] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.606046] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.606478] pci 0000:00:1d.3: [8086:9d1b] type 01 class 0x060400
[    0.606958] pci 0000:00:1d.3: PME# supported from D0 D3hot D3cold
[    0.607995] pci 0000:00:1d.3: System wakeup disabled by ACPI
[    0.608442] pci 0000:00:1f.0: [8086:9d48] type 00 class 0x060100
[    0.609563] pci 0000:00:1f.2: [8086:9d21] type 00 class 0x058000
[    0.609990] pci 0000:00:1f.2: reg 0x10: [mem 0xd1734000-0xd1737fff]
[    0.611058] pci 0000:00:1f.3: [8086:9d70] type 00 class 0x040380
[    0.611498] pci 0000:00:1f.3: reg 0x10: [mem 0xd1730000-0xd1733fff 64bit]
[    0.611994] pci 0000:00:1f.3: reg 0x20: [mem 0xd1720000-0xd172ffff 64bit]
[    0.612514] pci 0000:00:1f.3: PME# supported from D3hot D3cold
[    0.613531] pci 0000:00:1f.3: System wakeup disabled by ACPI
[    0.613967] pci 0000:00:1f.4: [8086:9d23] type 00 class 0x0c0500
[    0.614430] pci 0000:00:1f.4: reg 0x10: [mem 0xd1741000-0xd17410ff 64bit]
[    0.614953] pci 0000:00:1f.4: reg 0x20: [io  0xefa0-0xefbf]
[    0.616056] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.616414] pci 0000:00:1c.0:   bridge window [io  0x4000-0x7fff]
[    0.616843] pci 0000:00:1c.0:   bridge window [mem 0xb9700000-0xd16fffff]
[    0.617322] pci 0000:00:1c.0:   bridge window [mem 0xa1400000-0xb93fffff 64bit pref]
[    0.617981] pci 0000:02:00.0: [144d:a802] type 00 class 0x010802
[    0.618487] pci 0000:02:00.0: reg 0x10: [mem 0xb9600000-0xb9603fff 64bit]
[    0.619035] pci 0000:02:00.0: reg 0x18: [io  0x3000-0x30ff]
[    0.619555] pci 0000:02:00.0: System wakeup disabled by ACPI
[    0.622052] pci 0000:00:1d.0: PCI bridge to [bus 02]
[    0.622402] pci 0000:00:1d.0:   bridge window [io  0x3000-0x3fff]
[    0.622828] pci 0000:00:1d.0:   bridge window [mem 0xb9600000-0xb96fffff]
[    0.623443] pci 0000:03:00.0: [11ab:2b38] type 00 class 0x020000
[    0.623971] pci 0000:03:00.0: reg 0x10: [mem 0xb9500000-0xb95fffff 64bit pref]
[    0.624571] pci 0000:03:00.0: reg 0x18: [mem 0xb9400000-0xb94fffff 64bit pref]
[    0.625278] pci 0000:03:00.0: supports D1 D2
[    0.625581] pci 0000:03:00.0: PME# supported from D0 D1 D3hot D3cold
[    0.626160] pci 0000:03:00.0: System wakeup disabled by ACPI
[    0.628759] pci 0000:00:1d.3: PCI bridge to [bus 03]
[    0.629117] pci 0000:00:1d.3:   bridge window [mem 0xb9400000-0xb95fffff 64bit pref]
[    0.631958] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.632639] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 *10 11 12 14 15)
[    0.633333] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.634018] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.634696] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.635378] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.636056] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.636739] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 *11 12 14 15)
[    0.637946] ACPI: Enabled 9 GPEs in block 00 to 7F
[    0.638446] ACPI : EC: GPE = 0x50, I/O: command/status = 0x66, data = 0x62
[    0.638927] ACPI : EC: EC started
[    0.661477] ACPI Warning: GPE type mismatch (level/edge) (20160422/evxface-826)
[    0.662096] vgaarb: setting as boot device: PCI:0000:00:02.0
[    0.662496] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.663062] vgaarb: loaded
[    0.663263] vgaarb: bridge control possible 0000:00:02.0
[    0.663695] SCSI subsystem initialized
[    0.664015] libata version 3.00 loaded.
[    0.664338] ACPI: bus type USB registered
[    0.664659] usbcore: registered new interface driver usbfs
[    0.665052] usbcore: registered new interface driver hub
[    0.665441] usbcore: registered new device driver usb
[    0.665839] media: Linux media interface: v0.10
[    0.666168] Linux video capture interface: v2.00
[    0.666503] pps_core: LinuxPPS API ver. 1 registered
[    0.666857] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.667491] PTP clock support registered
[    0.667879] Advanced Linux Sound Architecture Driver Initialized.
[    0.668319] PCI: Using ACPI for IRQ routing
[    0.697312] PCI: pci_cache_line_size set to 64 bytes
[    0.698085] e820: reserve RAM buffer [mem 0x00058000-0x0005ffff]
[    0.698502] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff]
[    0.698917] e820: reserve RAM buffer [mem 0x8667f000-0x87ffffff]
[    0.699326] e820: reserve RAM buffer [mem 0x8bc81000-0x8bffffff]
[    0.699736] e820: reserve RAM buffer [mem 0x26f800000-0x26fffffff]
[    0.700338] NetLabel: Initializing
[    0.700578] NetLabel:  domain hash size = 128
[    0.700881] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.701239] NetLabel:  unlabeled traffic allowed by default
[    0.701760] clocksource: Switched to clocksource hpet
[    0.708330] VFS: Disk quotas dquot_6.6.0
[    0.708622] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.709251] pnp: PnP ACPI init
[    0.709681] system 00:00: [mem 0xfd000000-0xfdabffff] has been reserved
[    0.710251] system 00:00: [mem 0xfdad0000-0xfdadffff] has been reserved
[    0.710726] system 00:00: [mem 0xfdb00000-0xfdffffff] has been reserved
[    0.711282] system 00:00: [mem 0xfe000000-0xfe01ffff] could not be reserved
[    0.711842] system 00:00: [mem 0xfe036000-0xfe03bfff] has been reserved
[    0.712307] system 00:00: [mem 0xfe03d000-0xfe3fffff] has been reserved
[    0.712844] system 00:00: [mem 0xfe410000-0xfe7fffff] has been reserved
[    0.713317] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.714162] system 00:01: [io  0x2000-0x20fe] has been reserved
[    0.714602] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.716656] system 00:02: [io  0x0680-0x069f] has been reserved
[    0.717208] system 00:02: [io  0xffff] has been reserved
[    0.717581] system 00:02: [io  0xffff] has been reserved
[    0.718053] system 00:02: [io  0xffff] has been reserved
[    0.718424] system 00:02: [io  0x1800-0x18fe] has been reserved
[    0.718938] system 00:02: [io  0x164e-0x164f] has been reserved
[    0.719350] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.720011] pnp 00:03: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.720531] system 00:04: [io  0x1854-0x1857] has been reserved
[    0.721059] system 00:04: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    0.722832] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.723857] system 00:06: [mem 0xfed10000-0xfed17fff] has been reserved
[    0.724331] system 00:06: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.724886] system 00:06: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.725346] system 00:06: [mem 0xe0000000-0xefffffff] could not be reserved
[    0.725929] system 00:06: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.726387] system 00:06: [mem 0xfed90000-0xfed93fff] has been reserved
[    0.726946] system 00:06: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.727405] system 00:06: [mem 0xff000000-0xffffffff] has been reserved
[    0.727965] system 00:06: [mem 0xfee00000-0xfeefffff] has been reserved
[    0.728423] system 00:06: [mem 0x8f800000-0x8f81ffff] has been reserved
[    0.728983] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.729998] pnp: PnP ACPI: found 7 devices
[    0.738733] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.739482] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.739925] pci 0000:00:1c.0:   bridge window [io  0x4000-0x7fff]
[    0.740358] pci 0000:00:1c.0:   bridge window [mem 0xb9700000-0xd16fffff]
[    0.740929] pci 0000:00:1c.0:   bridge window [mem 0xa1400000-0xb93fffff 64bit pref]
[    0.741471] pci 0000:00:1d.0: PCI bridge to [bus 02]
[    0.741910] pci 0000:00:1d.0:   bridge window [io  0x3000-0x3fff]
[    0.742339] pci 0000:00:1d.0:   bridge window [mem 0xb9600000-0xb96fffff]
[    0.742904] pci 0000:00:1d.3: PCI bridge to [bus 03]
[    0.743258] pci 0000:00:1d.3:   bridge window [mem 0xb9400000-0xb95fffff 64bit pref]
[    0.743889] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    0.744321] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    0.744755] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[    0.745326] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff window]
[    0.745894] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff window]
[    0.746370] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff window]
[    0.746938] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff window]
[    0.747420] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff window]
[    0.747995] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff window]
[    0.748479] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff window]
[    0.749053] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff window]
[    0.749535] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff window]
[    0.750114] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff window]
[    0.750596] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff window]
[    0.751180] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff window]
[    0.751662] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff window]
[    0.752237] pci_bus 0000:00: resource 20 [mem 0x8f800000-0xdfffffff window]
[    0.752719] pci_bus 0000:00: resource 21 [mem 0xfd000000-0xfe7fffff window]
[    0.753293] pci_bus 0000:01: resource 0 [io  0x4000-0x7fff]
[    0.753681] pci_bus 0000:01: resource 1 [mem 0xb9700000-0xd16fffff]
[    0.754208] pci_bus 0000:01: resource 2 [mem 0xa1400000-0xb93fffff 64bit pref]
[    0.754709] pci_bus 0000:02: resource 0 [io  0x3000-0x3fff]
[    0.755191] pci_bus 0000:02: resource 1 [mem 0xb9600000-0xb96fffff]
[    0.755627] pci_bus 0000:03: resource 2 [mem 0xb9400000-0xb95fffff 64bit pref]
[    0.756250] NET: Registered protocol family 2
[    0.756723] TCP established hash table entries: 65536 (order: 7, 524288 bytes)
[    0.757447] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.758146] TCP: Hash tables configured (established 65536 bind 65536)
[    0.758621] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    0.759167] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    0.759688] NET: Registered protocol family 1
[    0.760192] RPC: Registered named UNIX socket transport module.
[    0.760608] RPC: Registered udp transport module.
[    0.761040] RPC: Registered tcp transport module.
[    0.761377] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.761929] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[    0.763091] PCI: CLS 0 bytes, default 64
[    0.763405] Unpacking initramfs...
[    1.944402] Freeing initrd memory: 8948K (ffff88007f743000 - ffff880080000000)
[    1.949966] DMA-API: preallocated 65536 debug entries
[    1.950333] DMA-API: debugging enabled by kernel config
[    1.950729] DMAR: Host address width 39
[    1.951113] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    1.951502] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 7e3ff0505e
[    1.952125] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    1.952500] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    1.953094] DMAR: RMRR base: 0x0000003e2e0000 end: 0x0000003e2fffff
[    1.953531] DMAR: RMRR base: 0x0000008d000000 end: 0x0000008f7fffff
[    1.954066] DMAR: ANDD device: 1 name: \_SB.PCI0.I2C0
[    1.954421] DMAR: ANDD device: 2 name: \_SB.PCI0.I2C1
[    1.954777] DMAR: ANDD device: 3 name: \_SB.PCI0.I2C2
[    1.955176] DMAR: ANDD device: 4 name: \_SB.PCI0.I2C3
[    1.955538] DMAR: ACPI device "device:6b" under DMAR at fed91000 as 00:15.0
[    1.956070] DMAR: ACPI device "device:6c" under DMAR at fed91000 as 00:15.1
[    1.956564] DMAR: ACPI device "device:6d" under DMAR at fed91000 as 00:15.2
[    1.957139] DMAR: ACPI device "device:6e" under DMAR at fed91000 as 00:15.3
[    1.957633] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    1.958173] software IO TLB [mem 0x80607000-0x84607000] (64MB) mapped at [ffff880080607000-ffff880084606fff]
[    1.958903] RAPL PMU: API unit is 2^-32 Joules, 5 fixed counters, 655360 ms ovfl timer
[    1.959498] RAPL PMU: hw unit of domain pp0-core 2^-14 Joules
[    1.959898] RAPL PMU: hw unit of domain package 2^-14 Joules
[    1.960338] RAPL PMU: hw unit of domain dram 2^-14 Joules
[    1.960714] RAPL PMU: hw unit of domain pp1-gpu 2^-14 Joules
[    1.961181] RAPL PMU: hw unit of domain psys 2^-14 Joules
[    1.962182] Scanning for low memory corruption every 60 seconds
[    1.963096] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    1.963572] audit: initializing netlink subsys (disabled)
[    1.964063] audit: type=2000 audit(1465831137.937:1): initialized
[    1.965133] workingset: timestamp_bits=54 max_order=21 bucket_order=0
[    1.967908] NFS: Registering the id_resolver key type
[    1.968528] Key type id_resolver registered
[    1.968830] Key type id_legacy registered
[    1.969335] SELinux:  Registering netfilter hooks
[    1.972622] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.973260] io scheduler noop registered
[    1.973540] io scheduler deadline registered
[    1.973866] io scheduler cfq registered (default)
[    1.975156] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt
[    1.975658] pcie_pme 0000:00:1c.0:pcie001: service driver pcie_pme loaded
[    1.976234] pcieport 0000:00:1d.0: Signaling PME through PCIe PME interrupt
[    1.976717] pci 0000:02:00.0: Signaling PME through PCIe PME interrupt
[    1.977263] pcie_pme 0000:00:1d.0:pcie001: service driver pcie_pme loaded
[    1.977749] pcieport 0000:00:1d.3: Signaling PME through PCIe PME interrupt
[    1.978323] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[    1.978779] pcie_pme 0000:00:1d.3:pcie001: service driver pcie_pme loaded
[    1.979341] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.979771] efifb: probing for efifb
[    1.980146] efifb: framebuffer at 0x90000000, using 23500k, total 23500k
[    1.980613] efifb: mode is 3000x2000x32, linelength=12032, pages=1
[    1.981133] efifb: scrolling: redraw
[    1.981388] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    1.994254] Console: switching to colour frame buffer device 375x125
[    2.006569] fb0: EFI VGA frame buffer device
[    2.007058] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
[    2.007687] ACPI: Sleep Button [SLPB]
[    2.008081] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
[    2.008743] ACPI: Lid Switch [LID0]
[    2.009122] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    2.009674] ACPI: Power Button [PWRF]
[    2.010323] Monitor-Mwait will be used to enter C-1 state
[    2.010722] Monitor-Mwait will be used to enter C-2 state
[    2.011210] Monitor-Mwait will be used to enter C-3 state
[    2.023908] thermal LNXTHERM:00: registered as thermal_zone0
[    2.024410] ACPI: Thermal Zone [TZ00] (39 C)
[    2.038557] thermal LNXTHERM:01: registered as thermal_zone1
[    2.039043] ACPI: Thermal Zone [TZ01] (0 C)
[    2.057652] thermal LNXTHERM:02: registered as thermal_zone2
[    2.058120] ACPI: Thermal Zone [TZ02] (26 C)
[    2.077038] thermal LNXTHERM:03: registered as thermal_zone3
[    2.077457] ACPI: Thermal Zone [TZ03] (30 C)
[    2.094523] thermal LNXTHERM:04: registered as thermal_zone4
[    2.094971] ACPI: Thermal Zone [TZ04] (0 C)
[    2.102348] thermal LNXTHERM:05: registered as thermal_zone5
[    2.102767] ACPI: Thermal Zone [TZ05] (0 C)
[    2.109722] thermal LNXTHERM:06: registered as thermal_zone6
[    2.110212] ACPI: Thermal Zone [TZ06] (26 C)
[    2.110755] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    2.112093] Non-volatile memory driver v1.3
[    2.112661] Linux agpgart interface v0.103
[    2.113217] [drm] Initialized drm 1.1.0 20060810
[    2.115906] loop: module loaded
[    2.117594] intel-lpss 0000:00:15.0: enabling device (0000 -> 0002)
[    2.119232] idma64 idma64.0: Found Intel integrated DMA 64-bit
[    2.133115] intel-lpss 0000:00:15.1: enabling device (0000 -> 0002)
[    2.134116] idma64 idma64.1: Found Intel integrated DMA 64-bit
[    2.150075] intel-lpss 0000:00:15.2: enabling device (0000 -> 0002)
[    2.150838] idma64 idma64.2: Found Intel integrated DMA 64-bit
[    2.163869] intel-lpss 0000:00:15.3: enabling device (0000 -> 0002)
[    2.164999] idma64 idma64.3: Found Intel integrated DMA 64-bit
[    2.174010] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    2.174757] ACPI: Battery Slot [BAT1] (battery present)
[    2.178337] e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
[    2.179221] e100: Copyright(c) 1999-2006 Intel Corporation
[    2.179748] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[    2.180621] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    2.181263] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    2.181787] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    2.182563] sky2: driver version 1.30
[    2.183222] usbcore: registered new interface driver r8152
[    2.183847] usbcore: registered new interface driver asix
[    2.184505] usbcore: registered new interface driver ax88179_178a
[    2.185323] usbcore: registered new interface driver cdc_ether
[    2.186058] usbcore: registered new interface driver net1080
[    2.186520] usbcore: registered new interface driver cdc_subset
[    2.187054] usbcore: registered new interface driver zaurus
[    2.187638] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[    2.188596] usbcore: registered new interface driver cdc_ncm
[    2.189486] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.190256] ehci-pci: EHCI PCI platform driver
[    2.190765] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.191548] ohci-pci: OHCI PCI platform driver
[    2.191894] uhci_hcd: USB Universal Host Controller Interface driver
[    2.192754] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    2.193504] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[    2.195661] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x00109810
[    2.196669] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    2.197333] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.197925] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.198838] usb usb1: Product: xHCI Host Controller
[    2.199377] usb usb1: Manufacturer: Linux 4.7.0-rc1-next-20160603+ xhci-hcd
[    2.200253] usb usb1: SerialNumber: 0000:00:14.0
[    2.200926] hub 1-0:1.0: USB hub found
[    2.201319] hub 1-0:1.0: 12 ports detected
[    2.245609] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    2.246453] ACPI: Battery Slot [BAT2] (battery present)
[    2.252497] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    2.253115] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    2.253747] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    2.254318] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.254849] usb usb2: Product: xHCI Host Controller
[    2.255286] usb usb2: Manufacturer: Linux 4.7.0-rc1-next-20160603+ xhci-hcd
[    2.255788] usb usb2: SerialNumber: 0000:00:14.0
[    2.256457] hub 2-0:1.0: USB hub found
[    2.256782] hub 2-0:1.0: 6 ports detected
[    2.261008] usbcore: registered new interface driver usblp
[    2.261494] usbcore: registered new interface driver usb-storage
[    2.262055] usbcore: registered new interface driver usbserial
[    2.262521] usbcore: registered new interface driver pl2303
[    2.263041] usbserial: USB Serial support registered for pl2303
[    2.263571] i8042: PNP: No PS/2 controller found. Probing ports directly.
[    2.964067] tsc: Refined TSC clocksource calibration: 2496.004 MHz
[    2.964617] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x23fa7af7c80, max_idle_ns: 440795241955 ns
[    3.456586] i8042: No controller found
[    3.456960] mousedev: PS/2 mouse device common for all mice
[    3.465382] rtc_cmos 00:03: RTC can wake from S4
[    3.466360] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[    3.466918] rtc_cmos 00:03: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    3.469356] i801_smbus 0000:00:1f.4: enabling device (0000 -> 0003)
[    3.471726] ACPI Warning: SystemIO range 0x000000000000EFA0-0x000000000000EFBF conflicts with OpRegion 0x000000000000EFA0-0x000000000000EFAF (\_SB.PCI0.SBUS.SMBI) (20160422/utaddress-255)
[    3.474842] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    3.477480] usbcore: registered new interface driver uvcvideo
[    3.479781] USB Video Class driver (1.1.1)
[    3.482042] device-mapper: ioctl: 4.34.0-ioctl (2015-10-28) initialised: dm-devel@redhat.com
[    3.484594] EFI Variables Facility v0.08 2004-May-17
[    3.493679] hidraw: raw HID events driver (C) Jiri Kosina
[    3.496447] usbcore: registered new interface driver usbhid
[    3.498771] usbhid: USB HID core driver
[    3.501003] input: Surface Pro 3/4 Buttons as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:18/PNP0C09:00/MSHW0040:00/input/input3
[    3.503899] surface_pro3_button MSHW0040:00: Surface Pro 3/4 Buttons [VGBI]
[    3.506664] Netfilter messages via NETLINK v0.30.
[    3.509184] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
[    3.511594] ctnetlink v0.93: registering with nfnetlink.
[    3.514221] ip_tables: (C) 2000-2006 Netfilter Core Team
[    3.516496] Initializing XFRM netlink socket
[    3.518829] NET: Registered protocol family 10
[    3.521369] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    3.524415] sit: IPv6 over IPv4 tunneling driver
[    3.526806] NET: Registered protocol family 17
[    3.529054] Key type dns_resolver registered
[    3.531520] microcode: CPU0 sig=0x406e3, pf=0x80, revision=0x82
[    3.533905] microcode: CPU1 sig=0x406e3, pf=0x80, revision=0x82
[    3.536295] microcode: CPU2 sig=0x406e3, pf=0x80, revision=0x82
[    3.539073] microcode: CPU3 sig=0x406e3, pf=0x80, revision=0x82
[    3.541456] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    3.544211] registered taskstats version 1
[    3.547842]   Magic number: 4:837:335
[    3.550044] tty tty56: hash matches
[    3.552239] console [netcon0] enabled
[    3.554321] netconsole: network logging started
[    3.557491] PM: Hibernation image not present or could not be loaded.
[    3.559770] ALSA device list:
[    3.561766]   No soundcards found.
[    3.564809] Freeing unused kernel memory: 1144K (ffffffff81f4f000 - ffffffff8206d000)
[    3.567236] Write protecting the kernel read-only data: 14336k
[    3.569857] Freeing unused kernel memory: 1020K (ffff880001901000 - ffff880001a00000)
[    3.574203] Freeing unused kernel memory: 1084K (ffff880001cf1000 - ffff880001e00000)
[    3.660334] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
[    3.678111] usb 2-1: New USB device found, idVendor=045e, idProduct=090b
[    3.680474] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.682770] usb 2-1: Product: USB3.0 Hub
[    3.684954] usb 2-1: Manufacturer: Microsoft
[    3.689467] hub 2-1:1.0: USB hub found
[    3.693342] hub 2-1:1.0: 3 ports detected
[    3.827181] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    3.857810] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:63 / ret_size:0
[    3.862493] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:63 / ret_size:0
[    3.865813] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:0
[    3.869137] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:63
[    3.872476] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:7
[    3.875769] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:12
[    3.878991] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:0
[    3.882233] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:0
[    3.885485] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:4
[    3.888673] i2c_hid i2c-MSHW0030:00: error in i2c_hid_init_report size:19 / ret_size:15
[    3.965539] clocksource: Switched to clocksource tsc
[    4.000157] usb 1-1: New USB device found, idVendor=045e, idProduct=091a
[    4.002362] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.004596] usb 1-1: Product: USB2.0 Hub
[    4.006563] usb 1-1: Manufacturer: Microsoft
[    4.009140] hub 1-1:1.0: USB hub found
[    4.011456] hub 1-1:1.0: 4 ports detected
[    4.228554] modprobe (1309) used greatest stack depth: 11184 bytes left
[    4.231698] random: dd urandom read with 100 bits of entropy available
[    4.285315] usb 1-1.2: new high-speed USB device number 3 using xhci_hcd
[    4.373227] usb 1-1.2: New USB device found, idVendor=0781, idProduct=5575
[    4.375405] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.377562] usb 1-1.2: Product: Cruzer Glide
[    4.379564] usb 1-1.2: Manufacturer: SanDisk
[    4.381563] usb 1-1.2: SerialNumber: 20044317520EB372F8AB
[    4.384609] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[    4.387475] scsi host0: usb-storage 1-1.2:1.0
[    4.464263] usb 1-1.4: new full-speed USB device number 4 using xhci_hcd
[    4.542184] usb 1-1.4: New USB device found, idVendor=045e, idProduct=07cd
[    4.544389] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.546622] usb 1-1.4: Product: Surface Keyboard
[    4.548712] usb 1-1.4: Manufacturer: Microsoft
[    5.392065] scsi 0:0:0:0: Direct-Access     SanDisk  Cruzer Glide     1.26 PQ: 0 ANSI: 6
[    5.394524] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    5.397543] sd 0:0:0:0: [sda] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[    5.400085] sd 0:0:0:0: [sda] Write Protect is off
[    5.402190] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[    5.404572] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    5.409589]  sda: sda1
[    5.412491] sd 0:0:0:0: [sda] Attached SCSI removable disk
[   14.557747] hid-multitouch 0003:045E:07CD.0002: usb_submit_urb(ctrl) failed: -1
[   14.560058] hid-multitouch 0003:045E:07CD.0002: timeout initializing reports
[   14.562475] input: Microsoft Surface Keyboard Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0002/input/input4
[   14.616875] input: Microsoft Surface Keyboard Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0002/input/input6
[   14.620901] input: Microsoft Surface Keyboard Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:07CD.0002/input/input8
[   14.624671] hid-multitouch 0003:045E:07CD.0002: input,hiddev0,hidraw0: USB HID v1.11 Keyboard [Microsoft Surface Keyboard] on usb-0000:00:14.0-1.4/input0
[   16.791663] random: nonblocking pool is initialized

[-- Attachment #3: hr --]
[-- Type: text/plain, Size: 15138 bytes --]

D: 0
R: 1057 05 01 09 06 a1 01 85 01 15 00 25 01 75 01 95 08 05 07 19 e0 29 e7 81 02 75 08 95 0a 19 00 29 91 26 ff 00 81 00 05 0c 0a c0 02 a1 02 1a c1 02 2a c6 02 95 06 b1 03 c0 05 08 19 01 29 03 75 01 95 03 25 01 91 02 95 05 91 01 c0 05 01 09 02 a1 01 85 02 05 09 19 01 29 05 81 02 95 01 75 03 81 03 15 81 25 7f 75 08 95 02 05 01 09 30 09 31 81 06 a1 02 09 48 15 00 25 01 35 01 45 10 75 02 95 01 a4 b1 02 09 38 15 81 25 7f 35 00 45 00 75 08 81 06 c0 a1 02 09 48 b4 b1 02 35 00 45 00 75 04 b1 03 05 0c 0a 38 02 15 81 25 7f 75 08 81 06 c0 c0 05 0c 09 01 a1 01 85 03 75 10 15 00 26 ff 03 19 00 2a ff 03 81 00 c0 06 05 ff 09 01 a1 01 85 0d 25 ff 95 02 75 08 09 20 81 02 09 22 91 02 15 81 25 7f 95 20 75 08 09 21 81 02 09 23 91 02 c0 09 02 a1 01 85 0c 15 00 25 ff 95 01 09 00 91 02 c0 05 0d 09 05 a1 01 85 04 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 45 00 55 00 65 00 c0 05 0d 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 45 00 55 00 65 00 c0 05 0d 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 c0 05 0d 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 45 00 55 00 65 00 c0 05 0d 09 22 a1 02 25 01 09 47 09 42 95 02 75 01 81 02 95 01 75 03 25 03 09 51 81 02 75 01 95 03 81 03 05 01 26 e4 07 75 10 55 0e 65 11 09 30 46 f2 03 95 01 81 02 46 94 02 26 29 05 09 31 81 02 c0 05 0d 55 0c 66 01 10 47 ff ff 00 00 27 ff ff 00 00 09 56 81 02 09 54 25 7f 75 08 81 02 05 09 09 01 25 01 75 01 81 02 95 07 81 03 05 0d 85 04 09 55 09 59 75 04 95 02 25 0f b1 02 06 00 ff 09 c6 85 05 15 00 25 08 75 08 95 01 b1 02 09 c7 26 ff 00 75 08 95 20 b1 02 c0 05 0d 09 0e a1 01 85 07 09 22 a1 02 09 52 15 00 25 0a 75 08 95 01 b1 02 c0 09 22 a1 00 85 08 09 57 09 58 75 01 95 02 25 01 b1 02 95 06 b1 03 c0 c0 06 07 ff 09 01 a1 01 85 0a 09 02 26 ff 00 75 08 95 14 91 02 85 09 09 03 91 02 85 0a 09 04 95 26 81 02 85 09 09 05 81 02 85 09 09 06 95 01 b1 02 85 0b 09 07 b1 02 c0 06 05 ff 09 04 a1 01 85 0e 09 31 91 02 09 31 81 03 09 30 91 02 09 30 81 02 95 39 09 32 92 02 01 09 32 82 02 01 c0 06 05 ff 09 50 a1 01 85 20 15 00 27 ff ff ff ff 75 08 95 3c 09 60 82 02 01 09 61 92 02 01 09 62 b2 02 01 85 21 09 63 82 02 01 09 64 92 02 01 09 65 b2 02 01 85 22 27 ff ff ff ff 75 20 95 04 19 66 29 69 81 02 19 6a 29 6d 91 02 19 6e 29 71 b1 02 85 23 19 72 29 75 81 02 19 76 29 79 91 02 19 7a 29 7d b1 02 85 24 19 7e 29 81 81 02 19 82 29 85 91 02 19 86 29 89 b1 02 85 25 19 8a 29 8d 81 02 19 8e 29 91 91 02 19 92 29 95 b1 02 85 26 19 96 29 99 81 02 19 9a 29 9d 91 02 19 9e 29 a1 b1 02 85 27 19 a2 29 a5 81 02 19 a6 29 a9 91 02 19 aa 29 ad b1 02 85 28 19 ae 29 b1 81 02 19 b2 29 b5 91 02 19 b6 29 b9 b1 02 85 29 19 ba 29 bd 81 02 19 be 29 c1 91 02 19 c2 29 c5 b1 02 c0
N: Microsoft Surface Keyboard
P: usb-0000:00:14.0-1.4/input0
I: 3 045e 07cd
D: 0
E: 0.000001 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 1.479998 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 1.599999 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 1.789997 12 01 00 1c 00 00 00 00 00 00 00 00 00
E: 1.919996 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 2.039992 12 01 00 13 00 00 00 00 00 00 00 00 00
E: 2.139979 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 2.209994 12 01 00 08 00 00 00 00 00 00 00 00 00
E: 2.339989 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 2.489994 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 2.599873 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 2.619898 12 01 00 09 00 00 00 00 00 00 00 00 00
E: 2.739874 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 2.829889 12 01 00 15 00 00 00 00 00 00 00 00 00
E: 2.959889 12 01 00 15 12 00 00 00 00 00 00 00 00
E: 2.969883 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 3.069881 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 3.119884 12 01 00 10 00 00 00 00 00 00 00 00 00
E: 3.269887 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 3.309887 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 3.399881 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 3.989887 12 01 00 0e 00 00 00 00 00 00 00 00 00
E: 4.109883 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 4.119880 12 01 00 08 00 00 00 00 00 00 00 00 00
E: 4.239884 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 4.359885 12 01 00 1c 00 00 00 00 00 00 00 00 00
E: 4.449872 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 4.889990 12 01 00 05 00 00 00 00 00 00 00 00 00
E: 4.999988 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.119977 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 5.209980 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.389989 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 5.471974 3 03 00 00
E: 5.519975 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.679991 12 01 00 15 00 00 00 00 00 00 00 00 00
E: 5.769966 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 5.869981 12 01 00 07 00 00 00 00 00 00 00 00 00
E: 5.979967 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.109991 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 6.219971 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.239985 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 6.339992 12 01 00 04 11 00 00 00 00 00 00 00 00
E: 6.369982 12 01 00 11 00 00 00 00 00 00 00 00 00
E: 6.473968 3 03 00 00
E: 6.479960 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.489973 12 01 00 07 00 00 00 00 00 00 00 00 00
E: 6.579983 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.629993 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 6.709982 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 6.859988 12 01 00 11 00 00 00 00 00 00 00 00 00
E: 6.969979 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 7.049985 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 7.189975 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 7.359987 12 01 00 1a 00 00 00 00 00 00 00 00 00
E: 7.473970 3 03 00 00
E: 7.509980 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 8.649987 12 01 00 37 00 00 00 00 00 00 00 00 00
E: 8.729977 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 8.849986 12 01 00 37 00 00 00 00 00 00 00 00 00
E: 8.929979 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 8.989985 12 01 00 37 00 00 00 00 00 00 00 00 00
E: 9.109982 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 10.279973 12 01 00 28 00 00 00 00 00 00 00 00 00
E: 10.409974 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 11.030962 6 02 00 fd 04 00 00
E: 11.039946 6 02 00 f6 00 00 00
E: 11.063961 6 02 00 80 24 00 00
E: 11.067936 6 02 00 e0 0f 00 00
E: 11.079949 6 02 00 e5 17 00 00
E: 11.082938 6 02 00 df 12 00 00
E: 11.090942 6 02 00 e9 0f 00 00
E: 11.100948 6 02 00 f2 0c 00 00
E: 11.104929 6 02 00 ee 0e 00 00
E: 11.115957 6 02 00 f7 0a 00 00
E: 11.119937 6 02 00 f8 08 00 00
E: 11.129955 6 02 00 fc 04 00 00
E: 11.133934 6 02 00 fd 02 00 00
E: 11.152950 6 02 00 04 04 00 00
E: 11.156938 6 02 00 02 02 00 00
E: 11.165947 6 02 00 03 03 00 00
E: 11.171928 6 02 00 05 03 00 00
E: 11.179950 6 02 00 00 f0 00 00
E: 11.189940 6 02 00 03 ee 00 00
E: 11.193940 6 02 00 08 ef 00 00
E: 11.203945 6 02 00 07 f0 00 00
E: 11.207939 6 02 00 14 05 00 00
E: 11.219950 6 02 00 16 07 00 00
E: 11.223938 6 02 00 1a 09 00 00
E: 11.230942 6 02 00 1d 0d 00 00
E: 11.240949 6 02 00 1f 10 00 00
E: 11.245937 6 02 00 25 13 00 00
E: 11.255940 6 02 00 1c 16 00 00
E: 11.259942 6 02 00 20 13 00 00
E: 11.269945 6 02 00 17 0d 00 00
E: 11.273934 6 02 00 13 0a 00 00
E: 11.281949 6 02 00 11 05 00 00
E: 11.292942 6 02 00 0f 07 00 00
E: 11.295928 6 02 00 0f 0e 00 00
E: 11.305952 6 02 00 0c 13 00 00
E: 11.310944 6 02 00 0f 11 00 00
E: 11.319947 6 02 00 0d 16 00 00
E: 11.329948 6 02 00 0a 1a 00 00
E: 11.332934 6 02 00 07 12 00 00
E: 11.342932 6 02 00 ef ec 00 00
E: 11.347937 6 02 00 ed eb 00 00
E: 11.355939 6 02 00 00 14 00 00
E: 11.369948 6 02 00 fc 16 00 00
E: 11.378943 6 02 00 fb 11 00 00
E: 11.383947 6 02 00 f7 16 00 00
E: 11.390946 6 02 00 f3 16 00 00
E: 11.397941 6 02 00 f2 10 00 00
E: 11.405942 6 02 00 f3 11 00 00
E: 11.412944 6 02 00 f3 11 00 00
E: 11.419938 6 02 00 ef 0d 00 00
E: 11.434958 6 02 00 f5 04 00 00
E: 11.442942 6 02 00 f2 00 00 00
E: 11.449945 6 02 00 f3 fc 00 00
E: 11.457948 6 02 00 f7 f6 00 00
E: 11.471950 6 02 00 f8 bf 00 00
E: 11.479946 6 02 00 03 d8 00 00
E: 11.486943 6 02 00 03 fc 00 00
E: 11.500951 6 02 00 0d fb 00 00
E: 11.507940 6 02 00 11 fe 00 00
E: 11.515944 6 02 00 16 fb 00 00
E: 11.522943 6 02 00 17 fc 00 00
E: 11.529942 6 02 00 1b 00 00 00
E: 11.537936 6 02 00 1a fe 00 00
E: 11.544939 6 02 00 19 03 00 00
E: 11.559950 6 02 00 11 03 00 00
E: 11.567946 6 02 00 08 03 00 00
E: 11.574946 6 02 00 07 05 00 00
E: 11.581945 6 02 00 06 05 00 00
E: 11.589943 6 02 00 06 08 00 00
E: 11.596947 6 02 00 07 0e 00 00
E: 11.603943 6 02 00 07 10 00 00
E: 11.611949 6 02 00 08 12 00 00
E: 11.618947 6 02 00 07 1a 00 00
E: 11.625949 6 02 00 07 15 00 00
E: 11.633941 6 02 00 03 1d 00 00
E: 11.640940 6 02 00 01 1e 00 00
E: 11.647942 6 02 00 fe 23 00 00
E: 11.655952 6 02 00 fe 22 00 00
E: 11.662945 6 02 00 f9 28 00 00
E: 11.669951 6 02 00 f6 2a 00 00
E: 11.677941 6 02 00 f4 23 00 00
E: 11.684944 6 02 00 da 03 00 00
E: 11.691954 6 02 00 f6 1b 00 00
E: 11.699947 6 02 00 e3 01 00 00
E: 11.706947 6 02 00 ea fe 00 00
E: 11.713945 6 02 00 f0 fb 00 00
E: 11.721945 6 02 00 f9 fc 00 00
E: 11.728937 6 02 00 f5 fd 00 00
E: 11.735942 6 02 00 ee f0 00 00
E: 11.743936 6 02 00 ff fc 00 00
E: 11.750963 6 02 00 00 fb 00 00
E: 11.758941 6 02 00 90 81 00 00
E: 11.765946 6 02 00 e6 af 00 00
E: 11.772942 6 02 00 0c f0 00 00
E: 11.779941 6 02 00 f5 b8 00 00
E: 11.787941 6 02 00 0b f8 00 00
E: 11.794941 6 02 00 11 f8 00 00
E: 11.801942 6 02 00 11 fa 00 00
E: 11.809937 6 02 00 11 fe 00 00
E: 11.816947 6 02 00 15 02 00 00
E: 11.824944 6 02 00 15 08 00 00
E: 11.831944 6 02 00 17 0a 00 00
E: 11.838942 6 02 00 19 11 00 00
E: 11.846947 6 02 00 16 18 00 00
E: 11.853936 6 02 00 17 20 00 00
E: 11.860937 6 02 00 14 23 00 00
E: 11.868946 6 02 00 0f 2c 00 00
E: 11.875942 6 02 00 0d 2f 00 00
E: 11.882940 6 02 00 0f 21 00 00
E: 11.890943 6 02 00 0e 2e 00 00
E: 11.897942 6 02 00 08 29 00 00
E: 11.904934 6 02 00 02 2c 00 00
E: 11.911947 6 02 00 f4 14 00 00
E: 11.919944 6 02 00 fb 24 00 00
E: 11.926935 6 02 00 f9 1a 00 00
E: 11.934940 6 02 00 f3 1a 00 00
E: 11.941924 6 02 00 e6 ed 00 00
E: 11.948950 6 02 00 dc dc 00 00
E: 11.956952 6 02 00 db ce 00 00
E: 11.963943 6 02 00 d0 bb 00 00
E: 11.970939 6 02 00 de e5 00 00
E: 11.999968 6 02 00 88 81 00 00
E: 12.022958 6 02 00 f0 d7 00 00
E: 12.029945 6 02 00 ff f8 00 00
E: 12.037935 6 02 00 00 fd 00 00
E: 12.044943 6 02 00 02 ff 00 00
E: 12.051946 6 02 00 05 ff 00 00
E: 12.058939 6 02 00 0b ff 00 00
E: 12.066945 6 02 00 17 04 00 00
E: 12.073941 6 02 00 17 05 00 00
E: 12.080943 6 02 00 14 07 00 00
E: 12.087936 6 02 00 1b 0a 00 00
E: 12.095947 6 02 00 21 0a 00 00
E: 12.102943 6 02 00 16 24 00 00
E: 12.110938 6 02 00 25 20 00 00
E: 12.117945 6 02 00 1b 27 00 00
E: 12.125944 6 02 00 19 2b 00 00
E: 12.132938 6 02 00 1b 2f 00 00
E: 12.139935 6 02 00 1d 29 00 00
E: 12.146938 6 02 00 16 32 00 00
E: 12.153943 6 02 00 1b 2f 00 00
E: 12.161946 6 02 00 17 29 00 00
E: 12.168944 6 02 00 0d 20 00 00
E: 12.175942 6 02 00 0e 19 00 00
E: 12.183943 6 02 00 0c 15 00 00
E: 12.190944 6 02 00 03 0e 00 00
E: 12.198942 6 02 00 fd f4 00 00
E: 12.205940 6 02 00 00 02 00 00
E: 12.226960 6 02 00 f3 ec 00 00
E: 12.233946 6 02 00 f5 ee 00 00
E: 12.388857 6 02 00 fd 03 00 00
E: 12.395942 6 02 00 f9 02 00 00
E: 12.402943 6 02 00 f7 07 00 00
E: 12.410941 6 02 00 fa 0b 00 00
E: 12.417944 6 02 00 fb 0d 00 00
E: 12.425946 6 02 00 fa 0c 00 00
E: 12.432943 6 02 00 fa 0d 00 00
E: 12.439944 6 02 00 fb 11 00 00
E: 12.446938 6 02 00 fd 0c 00 00
E: 12.454930 6 02 00 00 06 00 00
E: 12.461952 6 02 00 00 08 00 00
E: 12.468943 6 02 00 01 06 00 00
E: 12.476943 6 02 00 02 0a 00 00
E: 12.483945 6 02 00 01 05 00 00
E: 12.490937 6 02 00 02 05 00 00
E: 12.498939 6 02 00 02 05 00 00
E: 12.505942 6 02 00 04 04 00 00
E: 12.512943 6 02 00 07 07 00 00
E: 12.520942 6 02 00 06 07 00 00
E: 12.527949 6 02 00 0b 0b 00 00
E: 12.534939 6 02 00 0d 0a 00 00
E: 12.542932 6 02 00 11 0a 00 00
E: 12.549845 6 02 00 14 0c 00 00
E: 12.557844 6 02 00 1d 13 00 00
E: 12.564846 6 02 00 20 16 00 00
E: 12.571848 6 02 00 2b 17 00 00
E: 12.578848 6 02 00 38 23 00 00
E: 12.586847 6 02 00 3e 24 00 00
E: 12.593861 6 02 00 3d 22 00 00
E: 12.600858 6 02 00 3c 15 00 00
E: 12.622860 6 02 00 09 fe 00 00
E: 12.630861 6 02 00 08 ff 00 00
E: 12.637854 6 02 00 07 fe 00 00
E: 12.645846 6 02 00 01 ff 00 00
E: 12.652855 6 02 00 01 ff 00 00
E: 12.659847 6 02 00 01 ff 00 00
E: 12.675846 6 02 00 f5 ed 00 00
E: 12.682852 6 02 00 f7 f4 00 00
E: 12.689856 6 02 00 fb fe 00 00
E: 12.697856 6 02 00 f7 fa 00 00
E: 12.704849 6 02 00 f6 f8 00 00
E: 12.719855 6 02 00 f5 f7 00 00
E: 12.727861 6 02 00 f9 f5 00 00
E: 12.734855 6 02 00 ff 01 00 00
E: 12.748855 6 02 00 00 01 00 00
E: 12.762854 6 02 00 0b 05 00 00
E: 12.769861 6 02 00 0e 05 00 00
E: 12.777851 6 02 00 17 06 00 00
E: 12.784856 6 02 00 1a 03 00 00
E: 12.791858 6 02 00 23 fe 00 00
E: 13.139856 12 01 00 28 00 00 00 00 00 00 00 00 00
E: 13.219873 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 14.319981 12 01 00 1a 00 00 00 00 00 00 00 00 00
E: 14.479977 12 01 00 1a 04 00 00 00 00 00 00 00 00
E: 14.480922 3 03 00 00
E: 14.519967 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 14.639969 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 14.689978 12 01 00 16 00 00 00 00 00 00 00 00 00
E: 14.819968 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 15.109974 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 15.219968 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 15.769971 12 01 00 0c 00 00 00 00 00 00 00 00 00
E: 15.879961 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 16.889969 12 01 00 2a 00 00 00 00 00 00 00 00 00
E: 16.998973 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 17.349954 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 17.487952 3 03 00 00
E: 17.499960 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 17.738968 12 01 00 2c 00 00 00 00 00 00 00 00 00
E: 17.838960 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 17.889970 12 01 00 17 00 00 00 00 00 00 00 00 00
E: 17.989969 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.018967 12 01 00 12 00 00 00 00 00 00 00 00 00
E: 18.138962 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.249965 12 01 00 18 00 00 00 00 00 00 00 00 00
E: 18.338962 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.429968 12 01 00 06 00 00 00 00 00 00 00 00 00
E: 18.489939 3 03 00 00
E: 18.529956 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.578972 12 01 00 0b 00 00 00 00 00 00 00 00 00
E: 18.678961 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.838968 12 01 00 13 00 00 00 00 00 00 00 00 00
E: 18.938957 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 18.978963 12 01 00 04 00 00 00 00 00 00 00 00 00
E: 19.129961 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 19.218849 12 01 00 07 00 00 00 00 00 00 00 00 00
E: 19.338861 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 19.818849 12 01 00 28 00 00 00 00 00 00 00 00 00
E: 19.918855 12 01 00 00 00 00 00 00 00 00 00 00 00
E: 21.318953 12 01 01 00 00 00 00 00 00 00 00 00 00
E: 21.496941 3 03 00 00
E: 22.496920 3 03 00 00
E: 23.248955 12 01 01 06 00 00 00 00 00 00 00 0

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-13 12:32                               ` Andy Shevchenko
@ 2016-06-15 14:28                                 ` Benjamin Tissoires
  2016-06-23  7:24                                   ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Tissoires @ 2016-06-15 14:28 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Jun 13 2016 or thereabouts, Andy Shevchenko wrote:
> On Fri, 2016-06-03 at 15:32 +0200, Benjamin Tissoires wrote:
> > On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > > On Fri, 2016-06-03 at 14:23 +0200, Benjamin Tissoires wrote:
> > > 
> > > > On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> > > > > > On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires wrote:
> > > 
> > > 
> > > > > > > I take linux-next + your two patches from this thread (+
> > > > > > > some
> > > > > > > unrelated
> > > > > > > to HID patches).
> > > > > > 
> > > > > > OK. I think I know what happened:
> > > > > > - Microsoft forgot to put the Win 8 certification blob in this
> > > > > >   particular device (of course, because Microsoft)
> > > > > > - we do not detect it as a Win 8 certified and do not set the
> > > > > >   HID_QUIRK_NO_INIT_REPORTS flag
> > > > > > - your dmesg should show some error on plug, and then hid
> > > > > > can't
> > > > > > set
> > > > > > the
> > > > > >   input mode
> > > > > > - I can't add a "if win 8 then show the mouse collection"
> > > > > > because
> > > > > > your
> > > > > >   device doesn't report itself as win 8 :)
> > > > > > 
> > > > > > Anyway, could you try applying this small diff after my 2
> > > > > > patches
> > > > > > and
> > > > > > report if you now have a working touchpad?:
> > > > > 
> > > > > Nope. There is still no /dev/input/eventX associated with
> > > > > touchpad.
> > > > 
> > > > Weird. On my system, if I replay your logs, I see 4 new nodes:
> > > > /dev/input/event21:	Microsoft Surface Keyboard Keyboard
> > > > /dev/input/event22:	Microsoft Surface Keyboard Consumer
> > > > Control
> > > > /dev/input/event23:	Microsoft Surface Keyboard Touchpad
> > > > /dev/input/event24:	Microsoft Surface Keyboard Keyboard
> > > 
> > > I had a line in dmesg that input8 is allocated to Touchpad, but no
> > > eventX (0..6 IIRC) from /dev/input reflects Touchpad events. I can
> > > get
> > > them only via /dev/usb/hiddev0.
> > > 
> > > > 
> > > > Can you attach the dmesg when plugging in the type cover?
> > > > 
> > > 
> > > I will do later, but there is no such thing 'plugging in'. It's a
> > > part
> > > of the notebook, so, I can do detach-attach cycle, though it
> > > shouldn't
> > > matter, it should work immediately after boot I suppose.
> > > 
> > 
> > Actually, if the touchpad doesn't want to be set to the multitouch
> > mode,
> > we might as well take your v2 of your patch in addition to this
> > series.
> > This should hopefully make the caps lock LED happy and at least enable
> > the mouse collection. If someone wants to debug why the device doesn't
> > want to switch to mt, I'd be happy to help/review patches, but I think
> > we might as well take the easiest path :)
> > 
> > So Andy, if you still have the energy for this:
> > please apply this series and yours
> > (https://patchwork.kernel.org/patch/9069371/)
> > 
> > And report if this is sufficient enough.
> 
> Attached dmesg and hid-recorder files. Doesn't work. In dmesg it
> complained on USB transfer at some point during boot.
> 

Could you please double check your tree? The error in the dmesg can't
happen if you applied https://patchwork.kernel.org/patch/9069371/ which
sets the quirk HID_QUIRK_NO_INIT_REPORTS.

In usbhid_start(), we check for this quirk before entering the only
function that contains the error "timeout initializing reports\n".
(hiddev has an ioctl that can call it, but I assume you don't have any
userspace tool calling it, that would be insane).

So, your tree should have:
- latest Jiri's for-next branch (I usually merge it with the latest
  official rc)
- https://patchwork.kernel.org/patch/9081731/
- https://patchwork.kernel.org/patch/9081761/
- https://patchwork.kernel.org/patch/9069371/

Cheers,
Benjamin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-05-12 14:12 ` [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
  2016-05-13 14:30   ` Andy Shevchenko
  2016-05-17 17:47   ` Bastien Nocera
@ 2016-06-23  1:12   ` Stephen J
  2 siblings, 0 replies; 22+ messages in thread
From: Stephen J @ 2016-06-23  1:12 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Jiri Kosina, Bastien Nocera, Andy Shevchenko, linux-input, linux-kernel

On Thu, May 12, 2016 at 8:12 AM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
>
> There is no reasons to filter out keyboard and consumer control collections
> in hid-multitouch.
> With the previous hid-input fix, there is now a full support of the Type
> Cover and we can remove all specific bits from hid-core and hid-microsoft.
>
> hid-multitouch will automatically set HID_QUIRK_NO_INIT_REPORTS so we can
> also remove it from the list of ushbid quirks.
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

I've been running with this series for almost a month now on Surface
3, and have not seen any issues at all in that time. Hopefully if this
series on its own doesn't introduce any regressions on other devices,
it will land in time for 4.8.

Tested-by: Stephen Just <stephenjust@gmail.com>

Regards,
Stephen

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-06-15 14:28                                 ` Benjamin Tissoires
@ 2016-06-23  7:24                                   ` Andy Shevchenko
  0 siblings, 0 replies; 22+ messages in thread
From: Andy Shevchenko @ 2016-06-23  7:24 UTC (permalink / raw)
  To: Benjamin Tissoires; +Cc: Jiri Kosina, Bastien Nocera, linux-input, linux-kernel

On Wed, 2016-06-15 at 16:28 +0200, Benjamin Tissoires wrote:
> On Jun 13 2016 or thereabouts, Andy Shevchenko wrote:
> > On Fri, 2016-06-03 at 15:32 +0200, Benjamin Tissoires wrote:
> > > On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > > > On Fri, 2016-06-03 at 14:23 +0200, Benjamin Tissoires wrote:
> > > > 
> > > > > On Jun 03 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > On Fri, 2016-06-03 at 11:38 +0200, Benjamin Tissoires wrote:
> > > > > > > On Jun 02 2016 or thereabouts, Andy Shevchenko wrote:
> > > > > > > > On Thu, 2016-06-02 at 16:11 +0200, Benjamin Tissoires
> > > > > > > > wrote:
> > > > 
> > > > 
> > > > > > > > I take linux-next + your two patches from this thread (+
> > > > > > > > some
> > > > > > > > unrelated
> > > > > > > > to HID patches).
> > > > > > > 
> > > > > > > OK. I think I know what happened:
> > > > > > > - Microsoft forgot to put the Win 8 certification blob in
> > > > > > > this
> > > > > > >   particular device (of course, because Microsoft)
> > > > > > > - we do not detect it as a Win 8 certified and do not set
> > > > > > > the
> > > > > > >   HID_QUIRK_NO_INIT_REPORTS flag
> > > > > > > - your dmesg should show some error on plug, and then hid
> > > > > > > can't
> > > > > > > set
> > > > > > > the
> > > > > > >   input mode
> > > > > > > - I can't add a "if win 8 then show the mouse collection"
> > > > > > > because
> > > > > > > your
> > > > > > >   device doesn't report itself as win 8 :)
> > > > > > > 
> > > > > > > Anyway, could you try applying this small diff after my 2
> > > > > > > patches
> > > > > > > and
> > > > > > > report if you now have a working touchpad?:
> > > > > > 
> > > > > > Nope. There is still no /dev/input/eventX associated with
> > > > > > touchpad.
> > > > > 
> > > > > Weird. On my system, if I replay your logs, I see 4 new nodes:
> > > > > /dev/input/event21:	Microsoft Surface Keyboard Keyboard
> > > > > /dev/input/event22:	Microsoft Surface Keyboard Consumer
> > > > > Control
> > > > > /dev/input/event23:	Microsoft Surface Keyboard Touchpad
> > > > > /dev/input/event24:	Microsoft Surface Keyboard Keyboard
> > > > 
> > > > I had a line in dmesg that input8 is allocated to Touchpad, but
> > > > no
> > > > eventX (0..6 IIRC) from /dev/input reflects Touchpad events. I
> > > > can
> > > > get
> > > > them only via /dev/usb/hiddev0.
> > > > 
> > > > > 
> > > > > Can you attach the dmesg when plugging in the type cover?
> > > > > 
> > > > 
> > > > I will do later, but there is no such thing 'plugging in'. It's
> > > > a
> > > > part
> > > > of the notebook, so, I can do detach-attach cycle, though it
> > > > shouldn't
> > > > matter, it should work immediately after boot I suppose.
> > > > 
> > > 
> > > Actually, if the touchpad doesn't want to be set to the multitouch
> > > mode,
> > > we might as well take your v2 of your patch in addition to this
> > > series.
> > > This should hopefully make the caps lock LED happy and at least
> > > enable
> > > the mouse collection. If someone wants to debug why the device
> > > doesn't
> > > want to switch to mt, I'd be happy to help/review patches, but I
> > > think
> > > we might as well take the easiest path :)
> > > 
> > > So Andy, if you still have the energy for this:
> > > please apply this series and yours
> > > (https://patchwork.kernel.org/patch/9069371/)
> > > 
> > > And report if this is sufficient enough.
> > 
> > Attached dmesg and hid-recorder files. Doesn't work. In dmesg it
> > complained on USB transfer at some point during boot.
> > 
> 
> Could you please double check your tree? The error in the dmesg can't
> happen if you applied https://patchwork.kernel.org/patch/9069371/
> which
> sets the quirk HID_QUIRK_NO_INIT_REPORTS.
> 
> In usbhid_start(), we check for this quirk before entering the only
> function that contains the error "timeout initializing reports\n".
> (hiddev has an ioctl that can call it, but I assume you don't have any
> userspace tool calling it, that would be insane).
> 
> So, your tree should have:
> - latest Jiri's for-next branch (I usually merge it with the latest
>   official rc)
> - https://patchwork.kernel.org/patch/9081731/
> - https://patchwork.kernel.org/patch/9081761/
> - https://patchwork.kernel.org/patch/9069371/

Yes, that's how it looks like.

Actually the branch I'm using is public https://bitbucket.org/andy-shev/
linux/branch/topic%2Fdw%2Fqrk


P.S. Let me couple of days I will test once more to be sure.

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2016-06-23  7:24 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-12 14:12 [PATCH 1/2] HID: input: rework HID_QUIRK_MULTI_INPUT Benjamin Tissoires
2016-05-12 14:12 ` [PATCH 2/2] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
2016-05-13 14:30   ` Andy Shevchenko
2016-05-13 14:49     ` Benjamin Tissoires
2016-05-13 16:09       ` Andy Shevchenko
2016-05-13 16:21         ` Benjamin Tissoires
2016-05-13 16:28         ` Andy Shevchenko
2016-05-20  7:58           ` Benjamin Tissoires
2016-05-31 16:07             ` Benjamin Tissoires
2016-05-31 17:56               ` Andy Shevchenko
2016-06-02 14:11                 ` Benjamin Tissoires
2016-06-02 14:40                   ` Andy Shevchenko
2016-06-03  9:38                     ` Benjamin Tissoires
2016-06-03 11:59                       ` Andy Shevchenko
2016-06-03 12:23                         ` Benjamin Tissoires
2016-06-03 13:00                           ` Andy Shevchenko
2016-06-03 13:32                             ` Benjamin Tissoires
2016-06-13 12:32                               ` Andy Shevchenko
2016-06-15 14:28                                 ` Benjamin Tissoires
2016-06-23  7:24                                   ` Andy Shevchenko
2016-05-17 17:47   ` Bastien Nocera
2016-06-23  1:12   ` Stephen J

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).