linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover
@ 2016-11-25 13:27 Benjamin Tissoires
  2016-11-25 13:27 ` [PATCH v2 1/3] HID: input: rework HID_QUIRK_MULTI_INPUT Benjamin Tissoires
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Benjamin Tissoires @ 2016-11-25 13:27 UTC (permalink / raw)
  To: Jiri Kosina, Dennis Chen, Andy Shevchenko, Bastien Nocera
  Cc: linux-input, linux-kernel

Hi,

this is mostly a resubmission of v1, with one patch exchanged.

The latest investigations by Dennis Chen showed that the first patch did
not changed the internal HID device quirk. So I think the first patch is
still valid for upstream.

Patch 2/3 "HID: multitouch: do not retrieve all reports for all devices" is
an attempt to pro-actively fix the other issues of the TypeCover. It looks
like the quirk HID_QUIRK_NO_INIT_REPORTS was dropped somewhere, but the quirks
set in hid-multitouch were kept. After further thoughts, I think we should
simply mimic the Windows driver and only retrieve the features we actually need.

With this patch, we don't need to add a special case for the Surface 3
cover, the default class just works.

Cheers,
Benjamin

Benjamin Tissoires (3):
  HID: input: rework HID_QUIRK_MULTI_INPUT
  HID: multitouch: do not retrieve all reports for all devices
  HID: multitouch: enable the Surface 3 Type Cover to report multitouch
    data

 drivers/hid/hid-core.c          |  2 -
 drivers/hid/hid-ids.h           |  1 -
 drivers/hid/hid-input.c         | 95 +++++++++++++++++++++++------------------
 drivers/hid/hid-microsoft.c     |  2 -
 drivers/hid/hid-multitouch.c    | 80 ++++++++++++++++++----------------
 drivers/hid/usbhid/hid-quirks.c |  1 -
 include/linux/hid.h             |  1 +
 7 files changed, 98 insertions(+), 84 deletions(-)

-- 
2.7.4


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

* [PATCH v2 1/3] HID: input: rework HID_QUIRK_MULTI_INPUT
  2016-11-25 13:27 [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Benjamin Tissoires
@ 2016-11-25 13:27 ` Benjamin Tissoires
  2016-11-25 13:27 ` [PATCH v2 2/3] HID: multitouch: do not retrieve all reports for all devices Benjamin Tissoires
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Benjamin Tissoires @ 2016-11-25 13:27 UTC (permalink / raw)
  To: Jiri Kosina, Dennis Chen, Andy Shevchenko, Bastien Nocera
  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>

---

no changes in v2
---
 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 c4e935b5..d05f903 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1469,6 +1469,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
@@ -1479,8 +1504,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);
@@ -1510,43 +1535,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)) {
@@ -1554,20 +1576,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);
@@ -1584,7 +1594,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 3baa2f9..28f38e2b8 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -483,6 +483,7 @@ struct hid_input {
 	struct list_head list;
 	struct hid_report *report;
 	struct input_dev *input;
+	bool registered;
 };
 
 enum hid_type {
-- 
2.7.4


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

* [PATCH v2 2/3] HID: multitouch: do not retrieve all reports for all devices
  2016-11-25 13:27 [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Benjamin Tissoires
  2016-11-25 13:27 ` [PATCH v2 1/3] HID: input: rework HID_QUIRK_MULTI_INPUT Benjamin Tissoires
@ 2016-11-25 13:27 ` Benjamin Tissoires
  2016-11-25 13:27 ` [PATCH v2 3/3] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
  2016-11-28 13:41 ` [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Jiri Kosina
  3 siblings, 0 replies; 8+ messages in thread
From: Benjamin Tissoires @ 2016-11-25 13:27 UTC (permalink / raw)
  To: Jiri Kosina, Dennis Chen, Andy Shevchenko, Bastien Nocera
  Cc: linux-input, linux-kernel

We already have in place a quirk for Windows 8 devices, but it looks
like the Surface Cover are not conforming to it.
Given that we are only interested in 3 feature reports (the ones that
the Windows driver retrieves), we should be safe to unconditionally apply
the quirk to everybody.

In case there is an issue with a controller, we can always mark it as such
in the transport driver, and hid-multitouch won't try to retrieve the
feature report.

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

---

new in v2
---
 drivers/hid/hid-multitouch.c | 76 +++++++++++++++++++++++---------------------
 1 file changed, 40 insertions(+), 36 deletions(-)

diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index a65a4c5..8979359 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -108,6 +108,7 @@ struct mt_device {
 	int cc_value_index;	/* contact count value index in the field */
 	unsigned last_slot_field;	/* the last field of a slot */
 	unsigned mt_report_id;	/* the report ID of the multitouch device */
+	unsigned long initial_quirks;	/* initial quirks state */
 	__s16 inputmode;	/* InputMode HID feature, -1 if non-existent */
 	__s16 inputmode_index;	/* InputMode HID feature index in the report */
 	__s16 maxcontact_report_id;	/* Maximum Contact Number HID feature,
@@ -318,13 +319,10 @@ static void mt_get_feature(struct hid_device *hdev, struct hid_report *report)
 	u8 *buf;
 
 	/*
-	 * Only fetch the feature report if initial reports are not already
-	 * been retrieved. Currently this is only done for Windows 8 touch
-	 * devices.
+	 * Do not fetch the feature report if the device has been explicitly
+	 * marked as non-capable.
 	 */
-	if (!(hdev->quirks & HID_QUIRK_NO_INIT_REPORTS))
-		return;
-	if (td->mtclass.name != MT_CLS_WIN_8)
+	if (td->initial_quirks & HID_QUIRK_NO_INIT_REPORTS)
 		return;
 
 	buf = hid_alloc_report_buf(report, GFP_KERNEL);
@@ -1091,36 +1089,6 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
 		}
 	}
 
-	/* This allows the driver to correctly support devices
-	 * that emit events over several HID messages.
-	 */
-	hdev->quirks |= HID_QUIRK_NO_INPUT_SYNC;
-
-	/*
-	 * This allows the driver to handle different input sensors
-	 * that emits events through different reports on the same HID
-	 * device.
-	 */
-	hdev->quirks |= HID_QUIRK_MULTI_INPUT;
-	hdev->quirks |= HID_QUIRK_NO_EMPTY_INPUT;
-
-	/*
-	 * Handle special quirks for Windows 8 certified devices.
-	 */
-	if (id->group == HID_GROUP_MULTITOUCH_WIN_8)
-		/*
-		 * Some multitouch screens do not like to be polled for input
-		 * reports. Fortunately, the Win8 spec says that all touches
-		 * should be sent during each report, making the initialization
-		 * of input reports unnecessary.
-		 *
-		 * In addition some touchpads do not behave well if we read
-		 * all feature reports from them. Instead we prevent
-		 * initial report fetching and then selectively fetch each
-		 * report we are interested in.
-		 */
-		hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
-
 	td = devm_kzalloc(&hdev->dev, sizeof(struct mt_device), GFP_KERNEL);
 	if (!td) {
 		dev_err(&hdev->dev, "cannot allocate multitouch data\n");
@@ -1144,6 +1112,39 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
 	if (id->vendor == HID_ANY_ID && id->product == HID_ANY_ID)
 		td->serial_maybe = true;
 
+	/*
+	 * Store the initial quirk state
+	 */
+	td->initial_quirks = hdev->quirks;
+
+	/* This allows the driver to correctly support devices
+	 * that emit events over several HID messages.
+	 */
+	hdev->quirks |= HID_QUIRK_NO_INPUT_SYNC;
+
+	/*
+	 * This allows the driver to handle different input sensors
+	 * that emits events through different reports on the same HID
+	 * device.
+	 */
+	hdev->quirks |= HID_QUIRK_MULTI_INPUT;
+	hdev->quirks |= HID_QUIRK_NO_EMPTY_INPUT;
+
+	/*
+	 * Some multitouch screens do not like to be polled for input
+	 * reports. Fortunately, the Win8 spec says that all touches
+	 * should be sent during each report, making the initialization
+	 * of input reports unnecessary. For Win7 devices, well, let's hope
+	 * they will still be happy (this is only be a problem if a touch
+	 * was already there while probing the device).
+	 *
+	 * In addition some touchpads do not behave well if we read
+	 * all feature reports from them. Instead we prevent
+	 * initial report fetching and then selectively fetch each
+	 * report we are interested in.
+	 */
+	hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
+
 	ret = hid_parse(hdev);
 	if (ret != 0)
 		return ret;
@@ -1212,8 +1213,11 @@ static int mt_resume(struct hid_device *hdev)
 
 static void mt_remove(struct hid_device *hdev)
 {
+	struct mt_device *td = hid_get_drvdata(hdev);
+
 	sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group);
 	hid_hw_stop(hdev);
+	hdev->quirks = td->initial_quirks;
 }
 
 /*
-- 
2.7.4


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

* [PATCH v2 3/3] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
  2016-11-25 13:27 [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Benjamin Tissoires
  2016-11-25 13:27 ` [PATCH v2 1/3] HID: input: rework HID_QUIRK_MULTI_INPUT Benjamin Tissoires
  2016-11-25 13:27 ` [PATCH v2 2/3] HID: multitouch: do not retrieve all reports for all devices Benjamin Tissoires
@ 2016-11-25 13:27 ` Benjamin Tissoires
  2016-11-28 13:41 ` [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Jiri Kosina
  3 siblings, 0 replies; 8+ messages in thread
From: Benjamin Tissoires @ 2016-11-25 13:27 UTC (permalink / raw)
  To: Jiri Kosina, Dennis Chen, Andy Shevchenko, Bastien Nocera
  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>

---

no changes in v2 (was 2/3)
---
 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 c961cf1..e5356dc 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -730,7 +730,6 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
 	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 ||
 	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2 ||
 	     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_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;
@@ -1992,7 +1991,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_4) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_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 dca49cf2..a27a26c 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -724,7 +724,6 @@
 #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 0x07e4
 #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2 0x07e8
 #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP 0x07e9
-#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 5e592f0..74b7b84 100644
--- a/drivers/hid/hid-microsoft.c
+++ b/drivers/hid/hid-microsoft.c
@@ -286,8 +286,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_4_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 8979359..6dca668 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -848,7 +848,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 d807670..b3e01c8 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -106,7 +106,6 @@ static const struct hid_blacklist {
 	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4, HID_QUIRK_NO_INIT_REPORTS },
 	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2, HID_QUIRK_NO_INIT_REPORTS },
 	{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_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.7.4


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

* Re: [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover
  2016-11-25 13:27 [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Benjamin Tissoires
                   ` (2 preceding siblings ...)
  2016-11-25 13:27 ` [PATCH v2 3/3] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
@ 2016-11-28 13:41 ` Jiri Kosina
  2016-11-28 13:55   ` Benjamin Tissoires
  3 siblings, 1 reply; 8+ messages in thread
From: Jiri Kosina @ 2016-11-28 13:41 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dennis Chen, Andy Shevchenko, Bastien Nocera, linux-input,
	linux-kernel

On Fri, 25 Nov 2016, Benjamin Tissoires wrote:

> this is mostly a resubmission of v1, with one patch exchanged.

Alright, I'd be much happier when a chage such as the one done in 1st 
patch to hid-input would be done much earlier in the development process 
so that we'd have much more time for catching potential regressions.

But I've reviewed it really thoroughly and it really seems to be fine(TM) 
:) so I've now put all three patches into for-4.10/microsoft-surface-3.

Thanks,

-- 
Jiri Kosina
SUSE Labs


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

* Re: [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover
  2016-11-28 13:41 ` [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Jiri Kosina
@ 2016-11-28 13:55   ` Benjamin Tissoires
  2016-11-28 13:58     ` Jiri Kosina
  0 siblings, 1 reply; 8+ messages in thread
From: Benjamin Tissoires @ 2016-11-28 13:55 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Dennis Chen, Andy Shevchenko, Bastien Nocera, linux-input,
	linux-kernel

On Nov 28 2016 or thereabouts, Jiri Kosina wrote:
> On Fri, 25 Nov 2016, Benjamin Tissoires wrote:
> 
> > this is mostly a resubmission of v1, with one patch exchanged.
> 
> Alright, I'd be much happier when a chage such as the one done in 1st 
> patch to hid-input would be done much earlier in the development process 
> so that we'd have much more time for catching potential regressions.

Yeah, apologies for that. We have been running this patch for a few
months now, though it was only a few people. When Andy and Dennis were
saying it was giving them some headaches I run it under KASAN and really
checked each and every step, without finding why it was not good for
them.

> 
> But I've reviewed it really thoroughly and it really seems to be fine(TM) 
> :) so I've now put all three patches into for-4.10/microsoft-surface-3.

Thanks a lot. If you don't feel confident enough to include it in 4.10,
I wouldn't mind if you prefer postponing it for 4.11 or a later 4.10-rc
(depending how it is easier for you).

Cheers,
Benjamin

> 
> Thanks,
> 
> -- 
> Jiri Kosina
> SUSE Labs
> 

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

* Re: [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover
  2016-11-28 13:55   ` Benjamin Tissoires
@ 2016-11-28 13:58     ` Jiri Kosina
  2016-11-28 14:08       ` Andy Shevchenko
  0 siblings, 1 reply; 8+ messages in thread
From: Jiri Kosina @ 2016-11-28 13:58 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dennis Chen, Andy Shevchenko, Bastien Nocera, linux-input,
	linux-kernel

On Mon, 28 Nov 2016, Benjamin Tissoires wrote:

> > Alright, I'd be much happier when a chage such as the one done in 1st 
> > patch to hid-input would be done much earlier in the development process 
> > so that we'd have much more time for catching potential regressions.
> 
> Yeah, apologies for that. We have been running this patch for a few
> months now, though it was only a few people. When Andy and Dennis were
> saying it was giving them some headaches I run it under KASAN and really
> checked each and every step, without finding why it was not good for
> them.
> 
> > 
> > But I've reviewed it really thoroughly and it really seems to be fine(TM) 
> > :) so I've now put all three patches into for-4.10/microsoft-surface-3.
> 
> Thanks a lot. If you don't feel confident enough to include it in 4.10,
> I wouldn't mind if you prefer postponing it for 4.11 or a later 4.10-rc
> (depending how it is easier for you).

My current plan is to target 4.10 merge window, but I'll do a bit more 
stress-testing myself as well.

Thanks,

-- 
Jiri Kosina
SUSE Labs


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

* Re: [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover
  2016-11-28 13:58     ` Jiri Kosina
@ 2016-11-28 14:08       ` Andy Shevchenko
  0 siblings, 0 replies; 8+ messages in thread
From: Andy Shevchenko @ 2016-11-28 14:08 UTC (permalink / raw)
  To: Jiri Kosina, Benjamin Tissoires
  Cc: Dennis Chen, Bastien Nocera, linux-input, linux-kernel

On Mon, 2016-11-28 at 14:58 +0100, Jiri Kosina wrote:
> On Mon, 28 Nov 2016, Benjamin Tissoires wrote:
> 
> My current plan is to target 4.10 merge window, but I'll do a bit
> more 
> stress-testing myself as well.

Go ahead.

I will test them on Surface Book when I'll be less busy with main tasks.
It will be no regression there since it wasn't working on it anyway.

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

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

end of thread, other threads:[~2016-11-28 14:09 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-25 13:27 [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Benjamin Tissoires
2016-11-25 13:27 ` [PATCH v2 1/3] HID: input: rework HID_QUIRK_MULTI_INPUT Benjamin Tissoires
2016-11-25 13:27 ` [PATCH v2 2/3] HID: multitouch: do not retrieve all reports for all devices Benjamin Tissoires
2016-11-25 13:27 ` [PATCH v2 3/3] HID: multitouch: enable the Surface 3 Type Cover to report multitouch data Benjamin Tissoires
2016-11-28 13:41 ` [PATCH v2 0/3] Support multitouch touchpads in Surface TypeCover Jiri Kosina
2016-11-28 13:55   ` Benjamin Tissoires
2016-11-28 13:58     ` Jiri Kosina
2016-11-28 14:08       ` Andy Shevchenko

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).