linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
@ 2015-02-06 20:04 Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 1/7] Input: synaptics - fix middle button on Lenovo 2015 products Benjamin Tissoires
                   ` (8 more replies)
  0 siblings, 9 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

Hi,

This is the second episode of the Lenovo 2015 party :)

Thanks to Andrew, we now have an idea within the driver of what are the extra
buttons aimed for, and the patch series looks cleaner.
Many thanks for your help.

I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
stable fixes. Without the rest of the series, user-space can cope with the
kernel result, and so there is IMO no need to backport too many patches in
stable. I bet distributions will cherry-pick the rest of the series however.

Cheers,
Benjamin

Benjamin Tissoires (7):
  Input: synaptics - fix middle button on Lenovo 2015 products
  Input: synaptics - handle spurious release of trackstick buttons
  Input: synaptics - do not retrieve the board id on old firmwares
  Input: synaptics - retrieve the extended capabilities in query $10
  Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
  Input: synaptics - re-route tracksticks buttons on the Lenovo 2015
    series
  Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list

 drivers/input/mouse/synaptics.c | 129 +++++++++++++++++++++++++++++-----------
 drivers/input/mouse/synaptics.h |  28 +++++++++
 2 files changed, 122 insertions(+), 35 deletions(-)

-- 
2.1.0


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

* [PATCH v2 1/7] Input: synaptics - fix middle button on Lenovo 2015 products
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 2/7] Input: synaptics - handle spurious release of trackstick buttons Benjamin Tissoires
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

On the X1 Carbon 3rd gen (with a 2015 broadwell cpu), the physical middle
button of the trackstick (attached to the touchpad serio device, of course)
seems to get lost.

Actually, the touchpads reports 3 extra buttons, which falls in the switch
below to the '2' case. Let's handle the case of odd numbers also, so that
the middle button finds its way back.

Cc: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---

v2:
- used Dmitry's version
- fixed typo in synaptics_parse_ext_buttons() (buf[4] -> buf[5])

 drivers/input/mouse/synaptics.c | 44 ++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 23 deletions(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 6506d22..3bd7032 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -653,6 +653,18 @@ static void synaptics_parse_agm(const unsigned char buf[],
 	}
 }
 
+static void synaptics_parse_ext_buttons(const unsigned char buf[],
+					struct synaptics_data *priv,
+					struct synaptics_hw_state *hw)
+{
+	unsigned int ext_bits =
+		(SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1;
+	unsigned int ext_mask = GENMASK(ext_bits - 1, 0);
+
+	hw->ext_buttons = buf[4] & ext_mask;
+	hw->ext_buttons |= (buf[5] & ext_mask) << ext_bits;
+}
+
 static bool is_forcepad;
 
 static int synaptics_parse_hw_state(const unsigned char buf[],
@@ -739,28 +751,9 @@ static int synaptics_parse_hw_state(const unsigned char buf[],
 			hw->down = ((buf[0] ^ buf[3]) & 0x02) ? 1 : 0;
 		}
 
-		if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) &&
+		if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) > 0 &&
 		    ((buf[0] ^ buf[3]) & 0x02)) {
-			switch (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) & ~0x01) {
-			default:
-				/*
-				 * if nExtBtn is greater than 8 it should be
-				 * considered invalid and treated as 0
-				 */
-				break;
-			case 8:
-				hw->ext_buttons |= ((buf[5] & 0x08)) ? 0x80 : 0;
-				hw->ext_buttons |= ((buf[4] & 0x08)) ? 0x40 : 0;
-			case 6:
-				hw->ext_buttons |= ((buf[5] & 0x04)) ? 0x20 : 0;
-				hw->ext_buttons |= ((buf[4] & 0x04)) ? 0x10 : 0;
-			case 4:
-				hw->ext_buttons |= ((buf[5] & 0x02)) ? 0x08 : 0;
-				hw->ext_buttons |= ((buf[4] & 0x02)) ? 0x04 : 0;
-			case 2:
-				hw->ext_buttons |= ((buf[5] & 0x01)) ? 0x02 : 0;
-				hw->ext_buttons |= ((buf[4] & 0x01)) ? 0x01 : 0;
-			}
+			synaptics_parse_ext_buttons(buf, priv, hw);
 		}
 	} else {
 		hw->x = (((buf[1] & 0x1f) << 8) | buf[2]);
@@ -827,6 +820,7 @@ static void synaptics_report_buttons(struct psmouse *psmouse,
 {
 	struct input_dev *dev = psmouse->dev;
 	struct synaptics_data *priv = psmouse->private;
+	int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1;
 	int i;
 
 	input_report_key(dev, BTN_LEFT, hw->left);
@@ -840,8 +834,12 @@ static void synaptics_report_buttons(struct psmouse *psmouse,
 		input_report_key(dev, BTN_BACK, hw->down);
 	}
 
-	for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++)
-		input_report_key(dev, BTN_0 + i, hw->ext_buttons & (1 << i));
+	for (i = 0; i < ext_bits; i++) {
+		input_report_key(dev, BTN_0 + 2 * i,
+				 hw->ext_buttons & (1 << i));
+		input_report_key(dev, BTN_1 + 2 * i,
+				 hw->ext_buttons & (1 << (i + ext_bits)));
+	}
 }
 
 static void synaptics_report_mt_data(struct psmouse *psmouse,
-- 
2.1.0


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

* [PATCH v2 2/7] Input: synaptics - handle spurious release of trackstick buttons
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 1/7] Input: synaptics - fix middle button on Lenovo 2015 products Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 3/7] Input: synaptics - do not retrieve the board id on old firmwares Benjamin Tissoires
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

The Fimware 8.1 has a bug in which the extra buttons are only sent
when the ExtBit is 1.
This should be fixed in a future FW update which should have a bump
of the minor version.

Cc: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---

v2:
- break out extra buttons reporting in its own function
- use firmware version to remove the spurious releases

 drivers/input/mouse/synaptics.c | 33 +++++++++++++++++++++++++--------
 1 file changed, 25 insertions(+), 8 deletions(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 3bd7032..a033fc7 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -815,14 +815,36 @@ static void synaptics_report_semi_mt_data(struct input_dev *dev,
 	}
 }
 
-static void synaptics_report_buttons(struct psmouse *psmouse,
-				     const struct synaptics_hw_state *hw)
+static void synaptics_report_ext_buttons(struct psmouse *psmouse,
+					 const struct synaptics_hw_state *hw)
 {
 	struct input_dev *dev = psmouse->dev;
 	struct synaptics_data *priv = psmouse->private;
 	int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1;
 	int i;
 
+	if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))
+		return;
+
+	/* bug in FW 8.1, buttons are reported only when ExtBit is 1 */
+	if ((SYN_ID_FULL(priv->identity) == 0x801) &&
+	    !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
+		return;
+
+	for (i = 0; i < ext_bits; i++) {
+		input_report_key(dev, BTN_0 + 2 * i,
+			hw->ext_buttons & (1 << i));
+		input_report_key(dev, BTN_1 + 2 * i,
+			hw->ext_buttons & (1 << (i + ext_bits)));
+	}
+}
+
+static void synaptics_report_buttons(struct psmouse *psmouse,
+				     const struct synaptics_hw_state *hw)
+{
+	struct input_dev *dev = psmouse->dev;
+	struct synaptics_data *priv = psmouse->private;
+
 	input_report_key(dev, BTN_LEFT, hw->left);
 	input_report_key(dev, BTN_RIGHT, hw->right);
 
@@ -834,12 +856,7 @@ static void synaptics_report_buttons(struct psmouse *psmouse,
 		input_report_key(dev, BTN_BACK, hw->down);
 	}
 
-	for (i = 0; i < ext_bits; i++) {
-		input_report_key(dev, BTN_0 + 2 * i,
-				 hw->ext_buttons & (1 << i));
-		input_report_key(dev, BTN_1 + 2 * i,
-				 hw->ext_buttons & (1 << (i + ext_bits)));
-	}
+	synaptics_report_ext_buttons(psmouse, hw);
 }
 
 static void synaptics_report_mt_data(struct psmouse *psmouse,
-- 
2.1.0


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

* [PATCH v2 3/7] Input: synaptics - do not retrieve the board id on old firmwares
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 1/7] Input: synaptics - fix middle button on Lenovo 2015 products Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 2/7] Input: synaptics - handle spurious release of trackstick buttons Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 4/7] Input: synaptics - retrieve the extended capabilities in query $10 Benjamin Tissoires
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

The board id capability has been added in firmware 7.5.

Cc: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---

v2:
- brand new

 drivers/input/mouse/synaptics.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index a033fc7..d7b2e93 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -253,6 +253,10 @@ static int synaptics_board_id(struct psmouse *psmouse)
 	struct synaptics_data *priv = psmouse->private;
 	unsigned char bid[3];
 
+	/* firmwares prior 7.5 have no board_id encoded */
+	if (SYN_ID_FULL(priv->identity) < 0x705)
+		return 0;
+
 	if (synaptics_send_cmd(psmouse, SYN_QUE_MODES, bid))
 		return -1;
 	priv->board_id = ((bid[0] & 0xfc) << 6) | bid[1];
-- 
2.1.0


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

* [PATCH v2 4/7] Input: synaptics - retrieve the extended capabilities in query $10
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
                   ` (2 preceding siblings ...)
  2015-02-06 20:04 ` [PATCH v2 3/7] Input: synaptics - do not retrieve the board id on old firmwares Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 5/7] Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015 Benjamin Tissoires
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

Newer Synaptics touchpads need to get information from the query $10.
Retrieve it if available.

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

v2:
- brand new

 drivers/input/mouse/synaptics.c | 23 ++++++++++++++++++++---
 drivers/input/mouse/synaptics.h | 23 +++++++++++++++++++++++
 2 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index d7b2e93..40e79b0 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -244,11 +244,24 @@ static int synaptics_model_id(struct psmouse *psmouse)
 	return 0;
 }
 
+static int synaptics_more_extended_queries(struct psmouse *psmouse)
+{
+	struct synaptics_data *priv = psmouse->private;
+	unsigned char buf[3];
+
+	if (synaptics_send_cmd(psmouse, SYN_QUE_MEXT_CAPAB_10, buf))
+		return -1;
+
+	priv->ext_cap_10 = (buf[0]<<16) | (buf[1]<<8) | buf[2];
+
+	return 0;
+}
+
 /*
- * Read the board id from the touchpad
+ * Read the board id and the "More Extended Queries" from the touchpad
  * The board id is encoded in the "QUERY MODES" response
  */
-static int synaptics_board_id(struct psmouse *psmouse)
+static int synaptics_query_modes(struct psmouse *psmouse)
 {
 	struct synaptics_data *priv = psmouse->private;
 	unsigned char bid[3];
@@ -260,6 +273,10 @@ static int synaptics_board_id(struct psmouse *psmouse)
 	if (synaptics_send_cmd(psmouse, SYN_QUE_MODES, bid))
 		return -1;
 	priv->board_id = ((bid[0] & 0xfc) << 6) | bid[1];
+
+	if (SYN_MEXT_CAP_BIT(bid[0]))
+		return synaptics_more_extended_queries(psmouse);
+
 	return 0;
 }
 
@@ -452,7 +469,7 @@ static int synaptics_query_hardware(struct psmouse *psmouse)
 		return -1;
 	if (synaptics_firmware_id(psmouse))
 		return -1;
-	if (synaptics_board_id(psmouse))
+	if (synaptics_query_modes(psmouse))
 		return -1;
 	if (synaptics_capability(psmouse))
 		return -1;
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
index 6faf9bb..9723092 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -22,6 +22,7 @@
 #define SYN_QUE_EXT_CAPAB_0C		0x0c
 #define SYN_QUE_EXT_MAX_COORDS		0x0d
 #define SYN_QUE_EXT_MIN_COORDS		0x0f
+#define SYN_QUE_MEXT_CAPAB_10		0x10
 
 /* synatics modes */
 #define SYN_BIT_ABSOLUTE_MODE		(1 << 7)
@@ -53,6 +54,7 @@
 #define SYN_EXT_CAP_REQUESTS(c)		(((c) & 0x700000) >> 20)
 #define SYN_CAP_MULTI_BUTTON_NO(ec)	(((ec) & 0x00f000) >> 12)
 #define SYN_CAP_PRODUCT_ID(ec)		(((ec) & 0xff0000) >> 16)
+#define SYN_MEXT_CAP_BIT(m)		((m) & (1 << 1))
 
 /*
  * The following describes response for the 0x0c query.
@@ -89,6 +91,26 @@
 #define SYN_CAP_REDUCED_FILTERING(ex0c)	((ex0c) & 0x000400)
 #define SYN_CAP_IMAGE_SENSOR(ex0c)	((ex0c) & 0x000800)
 
+/*
+ * The following descibes response for the 0x10 query.
+ *
+ * byte	mask	name			meaning
+ * ----	----	-------			------------
+ * 1	0x01	ext buttons are stick	buttons exported in the extended
+ *					capability are actually meant to be used
+ *					by the tracktick (pass-through).
+ * 1	0x02	SecurePad		the touchpad is a SecurePad, so it
+ *					contains a built-in fingerprint reader.
+ * 1	0xe0	more ext count		how many more extented queries are
+ *					available after this one.
+ * 2	0xff	SecurePad width		the width of the SecurePad fingerprint
+ *					reader.
+ * 3	0xff	SecurePad height	the height of the SecurePad fingerprint
+ *					reader.
+ */
+#define SYN_CAP_EXT_BUTTONS_STICK(ex10)	((ex10) & 0x010000)
+#define SYN_CAP_SECUREPAD(ex10)		((ex10) & 0x020000)
+
 /* synaptics modes query bits */
 #define SYN_MODE_ABSOLUTE(m)		((m) & (1 << 7))
 #define SYN_MODE_RATE(m)		((m) & (1 << 6))
@@ -143,6 +165,7 @@ struct synaptics_data {
 	unsigned long int capabilities;		/* Capabilities */
 	unsigned long int ext_cap;		/* Extended Capabilities */
 	unsigned long int ext_cap_0c;		/* Ext Caps from 0x0c query */
+	unsigned long int ext_cap_10;		/* Ext Caps from 0x10 query */
 	unsigned long int identity;		/* Identification */
 	unsigned int x_res, y_res;		/* X/Y resolution in units/mm */
 	unsigned int x_max, y_max;		/* Max coordinates (from FW) */
-- 
2.1.0


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

* [PATCH v2 5/7] Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
                   ` (3 preceding siblings ...)
  2015-02-06 20:04 ` [PATCH v2 4/7] Input: synaptics - retrieve the extended capabilities in query $10 Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-02-06 20:04 ` [PATCH v2 6/7] Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series Benjamin Tissoires
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

The 2015 series of the Lenovo thinkpads added back the hardware buttons
on top of the touchpad for the trackstick.

Unfortunately, Lenovo used the PNPIDs that are supposed to be
"5 buttons" touchpads, so the new laptops also have the
INPUT_PROP_TOPBUTTONPAD. Yay!

Instead of manually removing each of the new ones, or hoping that we
know all the current ones, we can consider that the PNPIDs list that
were given contains touchpads that have the trackstick buttons, either
physically wired to them, or emulated with the top software button
property.

Thanks to the extra buttons capability in query $10, we can reliably
detect the physical buttons from the software ones, and so we can
remove the TOPBUTTONPAD property even if it was declared as such.

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

v2:
- rely on SYN_CAP_EXT_BUTTONS_STICK to remove INPUT_PROP_TOPBUTTONPAD, not on
  the BTN_0 heuristic

 drivers/input/mouse/synaptics.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 40e79b0..79c4a87 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -1209,7 +1209,8 @@ static void set_input_params(struct psmouse *psmouse,
 
 	if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
 		__set_bit(INPUT_PROP_BUTTONPAD, dev->propbit);
-		if (psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids))
+		if (psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) &&
+		    !SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10))
 			__set_bit(INPUT_PROP_TOPBUTTONPAD, dev->propbit);
 		/* Clickpads report only left button */
 		__clear_bit(BTN_RIGHT, dev->keybit);
-- 
2.1.0


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

* [PATCH v2 6/7] Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
                   ` (4 preceding siblings ...)
  2015-02-06 20:04 ` [PATCH v2 5/7] Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015 Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-03-09  6:45   ` Dmitry Torokhov
  2015-02-06 20:04 ` [PATCH v2 7/7] Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list Benjamin Tissoires
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

The 2015 series of the Lenovo thinkpads added back the hardware buttons
on top of the touchpad for the trackstick.

Unfortunately, they are wired to the touchpad, and not the trackstick.
Thus, they are seen as extra buttons from the kernel point of view.

This leads to a problem in user space because extra buttons on synaptics
devices used to be used as scroll up/down buttons. So in the end, the
experience for the user is scroll events for buttons left and right
when using the trackstick. Yay!

Fortunatelly, the firmware advertizes such behavior in the extended
capability $10, and so we can re-route the buttons through the
pass-through interface.

Hallelujah-expressed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---

v2:
- forward only 3 extra buttons, not the whole array. The PS/2 base protocol
  handles only 3 buttons, so giving more than 3 will mess up REL_X and REL_Y.
- rely on SYN_CAP_EXT_BUTTONS_STICK to know if the re-routing has to be put in
  place or not

 drivers/input/mouse/synaptics.c | 45 +++++++++++++++++++++++++++++++----------
 drivers/input/mouse/synaptics.h |  5 +++++
 2 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 79c4a87..dfe8235 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -585,18 +585,20 @@ static int synaptics_is_pt_packet(unsigned char *buf)
 	return (buf[0] & 0xFC) == 0x84 && (buf[3] & 0xCC) == 0xC4;
 }
 
-static void synaptics_pass_pt_packet(struct serio *ptport, unsigned char *packet)
+static void synaptics_pass_pt_packet(struct psmouse *psmouse,
+		struct serio *ptport, unsigned char *packet)
 {
+	struct synaptics_data *priv = psmouse->private;
 	struct psmouse *child = serio_get_drvdata(ptport);
 
 	if (child && child->state == PSMOUSE_ACTIVATED) {
-		serio_interrupt(ptport, packet[1], 0);
+		serio_interrupt(ptport, packet[1] | priv->pt_buttons, 0);
 		serio_interrupt(ptport, packet[4], 0);
 		serio_interrupt(ptport, packet[5], 0);
 		if (child->pktsize == 4)
 			serio_interrupt(ptport, packet[2], 0);
 	} else
-		serio_interrupt(ptport, packet[1], 0);
+		serio_interrupt(ptport, packet[1] | priv->pt_buttons, 0);
 }
 
 static void synaptics_pt_activate(struct psmouse *psmouse)
@@ -842,6 +844,7 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
 	struct input_dev *dev = psmouse->dev;
 	struct synaptics_data *priv = psmouse->private;
 	int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1;
+	char buf[6] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 	int i;
 
 	if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))
@@ -852,12 +855,30 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
 	    !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
 		return;
 
-	for (i = 0; i < ext_bits; i++) {
-		input_report_key(dev, BTN_0 + 2 * i,
-			hw->ext_buttons & (1 << i));
-		input_report_key(dev, BTN_1 + 2 * i,
-			hw->ext_buttons & (1 << (i + ext_bits)));
+	if (!SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10)) {
+		for (i = 0; i < ext_bits; i++) {
+			input_report_key(dev, BTN_0 + 2 * i,
+				hw->ext_buttons & (1 << i));
+			input_report_key(dev, BTN_1 + 2 * i,
+				hw->ext_buttons & (1 << (i + ext_bits)));
+		}
+		return;
 	}
+
+	/*
+	 * This generation of touchpads has the trackstick buttons
+	 * physically wired to the touchpad. Re-route them through
+	 * the pass-through interface.
+	 */
+	if (!priv->pt_port)
+		return;
+
+	/* the trackstick expects at most 3 buttons */
+	priv->pt_buttons = SYN_CAP_EXT_BUTTON_STICK_L(hw->ext_buttons)      |
+			   SYN_CAP_EXT_BUTTON_STICK_R(hw->ext_buttons) << 1 |
+			   SYN_CAP_EXT_BUTTON_STICK_M(hw->ext_buttons) << 2;
+
+	synaptics_pass_pt_packet(psmouse, priv->pt_port, buf);
 }
 
 static void synaptics_report_buttons(struct psmouse *psmouse,
@@ -1098,7 +1119,8 @@ static psmouse_ret_t synaptics_process_byte(struct psmouse *psmouse)
 		if (SYN_CAP_PASS_THROUGH(priv->capabilities) &&
 		    synaptics_is_pt_packet(psmouse->packet)) {
 			if (priv->pt_port)
-				synaptics_pass_pt_packet(priv->pt_port, psmouse->packet);
+				synaptics_pass_pt_packet(psmouse, priv->pt_port,
+							 psmouse->packet);
 		} else
 			synaptics_process_packet(psmouse);
 
@@ -1200,8 +1222,9 @@ static void set_input_params(struct psmouse *psmouse,
 		__set_bit(BTN_BACK, dev->keybit);
 	}
 
-	for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++)
-		__set_bit(BTN_0 + i, dev->keybit);
+	if (!SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10))
+		for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++)
+			__set_bit(BTN_0 + i, dev->keybit);
 
 	__clear_bit(EV_REL, dev->evbit);
 	__clear_bit(REL_X, dev->relbit);
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
index 9723092..8102a72 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -111,6 +111,10 @@
 #define SYN_CAP_EXT_BUTTONS_STICK(ex10)	((ex10) & 0x010000)
 #define SYN_CAP_SECUREPAD(ex10)		((ex10) & 0x020000)
 
+#define SYN_CAP_EXT_BUTTON_STICK_L(eb)	(!!((eb) & 0x01))
+#define SYN_CAP_EXT_BUTTON_STICK_M(eb)	(!!((eb) & 0x02))
+#define SYN_CAP_EXT_BUTTON_STICK_R(eb)	(!!((eb) & 0x04))
+
 /* synaptics modes query bits */
 #define SYN_MODE_ABSOLUTE(m)		((m) & (1 << 7))
 #define SYN_MODE_RATE(m)		((m) & (1 << 6))
@@ -179,6 +183,7 @@ struct synaptics_data {
 	bool disable_gesture;			/* disable gestures */
 
 	struct serio *pt_port;			/* Pass-through serio port */
+	unsigned char pt_buttons;		/* Pass-through buttons */
 
 	/*
 	 * Last received Advanced Gesture Mode (AGM) packet. An AGM packet
-- 
2.1.0


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

* [PATCH v2 7/7] Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
                   ` (5 preceding siblings ...)
  2015-02-06 20:04 ` [PATCH v2 6/7] Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series Benjamin Tissoires
@ 2015-02-06 20:04 ` Benjamin Tissoires
  2015-02-17  3:23 ` [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
  2015-03-19 14:24 ` Yves-Alexis Perez
  8 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-06 20:04 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

Lenovo decided to switch back to physical buttons for the trackstick
on their latest series. The PNPId list was provided before they reverted
back to physical buttons, so it contains the new models too.
We can know from the touchpad capabilities that the touchpad has physical
buttons, so removing the ids from the list is not mandatory. It is still
nicer to remove the wrong ids, so start by removing the X1 Carbon 3rd gen,
with the PNPId of LEN0048.

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

v2:
- no changes

 drivers/input/mouse/synaptics.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index dfe8235..7267738 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -186,7 +186,6 @@ static const char * const topbuttonpad_pnp_ids[] = {
 	"LEN0045",
 	"LEN0046",
 	"LEN0047",
-	"LEN0048",
 	"LEN0049",
 	"LEN2000",
 	"LEN2001", /* Edge E431 */
-- 
2.1.0


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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
                   ` (6 preceding siblings ...)
  2015-02-06 20:04 ` [PATCH v2 7/7] Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list Benjamin Tissoires
@ 2015-02-17  3:23 ` Benjamin Tissoires
  2015-02-25 14:36   ` Benjamin Tissoires
  2015-03-19 14:24 ` Yves-Alexis Perez
  8 siblings, 1 reply; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-17  3:23 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
> Hi,
>
> This is the second episode of the Lenovo 2015 party :)
>
> Thanks to Andrew, we now have an idea within the driver of what are the extra
> buttons aimed for, and the patch series looks cleaner.
> Many thanks for your help.
>
> I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
> stable fixes. Without the rest of the series, user-space can cope with the
> kernel result, and so there is IMO no need to backport too many patches in
> stable. I bet distributions will cherry-pick the rest of the series however.
>

Guys,

any chances we consider this for 3.20 (or whatever it will be numbered)?
I'd really like to see this accepted upstream in one way or one other
so we will prevent the mess we had to deal with last year.

Cheers,
Benjamin

> Benjamin Tissoires (7):
>   Input: synaptics - fix middle button on Lenovo 2015 products
>   Input: synaptics - handle spurious release of trackstick buttons
>   Input: synaptics - do not retrieve the board id on old firmwares
>   Input: synaptics - retrieve the extended capabilities in query $10
>   Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
>   Input: synaptics - re-route tracksticks buttons on the Lenovo 2015
>     series
>   Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list
>
>  drivers/input/mouse/synaptics.c | 129 +++++++++++++++++++++++++++++-----------
>  drivers/input/mouse/synaptics.h |  28 +++++++++
>  2 files changed, 122 insertions(+), 35 deletions(-)
>
> --
> 2.1.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-02-17  3:23 ` [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
@ 2015-02-25 14:36   ` Benjamin Tissoires
  2015-02-25 14:58     ` Hans de Goede
  0 siblings, 1 reply; 31+ messages in thread
From: Benjamin Tissoires @ 2015-02-25 14:36 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
<benjamin.tissoires@gmail.com> wrote:
> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
> <benjamin.tissoires@redhat.com> wrote:
>> Hi,
>>
>> This is the second episode of the Lenovo 2015 party :)
>>
>> Thanks to Andrew, we now have an idea within the driver of what are the extra
>> buttons aimed for, and the patch series looks cleaner.
>> Many thanks for your help.
>>
>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
>> stable fixes. Without the rest of the series, user-space can cope with the
>> kernel result, and so there is IMO no need to backport too many patches in
>> stable. I bet distributions will cherry-pick the rest of the series however.
>>
>
> Guys,
>
> any chances we consider this for 3.20 (or whatever it will be numbered)?
> I'd really like to see this accepted upstream in one way or one other
> so we will prevent the mess we had to deal with last year.
>

Hans, Dmitry,

well, it's been 3 weeks since I received the loaner I have to support
these touchpads. I will have to return it next week or the week after
at most. That means that I will not be able to conduct more tests at
that point.
Can I ask you to please review the series?

Sorry for pushing, but I am running out of time and I'd like to be
able to include the fixes in RHEL/Fedora too.

Cheers,
Benjamin

>> Benjamin Tissoires (7):
>>   Input: synaptics - fix middle button on Lenovo 2015 products
>>   Input: synaptics - handle spurious release of trackstick buttons
>>   Input: synaptics - do not retrieve the board id on old firmwares
>>   Input: synaptics - retrieve the extended capabilities in query $10
>>   Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
>>   Input: synaptics - re-route tracksticks buttons on the Lenovo 2015
>>     series
>>   Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list
>>
>>  drivers/input/mouse/synaptics.c | 129 +++++++++++++++++++++++++++++-----------
>>  drivers/input/mouse/synaptics.h |  28 +++++++++
>>  2 files changed, 122 insertions(+), 35 deletions(-)
>>
>> --
>> 2.1.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-02-25 14:36   ` Benjamin Tissoires
@ 2015-02-25 14:58     ` Hans de Goede
  2015-03-09  6:46       ` Dmitry Torokhov
  0 siblings, 1 reply; 31+ messages in thread
From: Hans de Goede @ 2015-02-25 14:58 UTC (permalink / raw)
  To: Benjamin Tissoires, Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Peter Hutterer, linux-input,
	linux-kernel

Hi,

On 25-02-15 15:36, Benjamin Tissoires wrote:
> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
> <benjamin.tissoires@gmail.com> wrote:
>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>> <benjamin.tissoires@redhat.com> wrote:
>>> Hi,
>>>
>>> This is the second episode of the Lenovo 2015 party :)
>>>
>>> Thanks to Andrew, we now have an idea within the driver of what are the extra
>>> buttons aimed for, and the patch series looks cleaner.
>>> Many thanks for your help.
>>>
>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
>>> stable fixes. Without the rest of the series, user-space can cope with the
>>> kernel result, and so there is IMO no need to backport too many patches in
>>> stable. I bet distributions will cherry-pick the rest of the series however.
>>>
>>
>> Guys,
>>
>> any chances we consider this for 3.20 (or whatever it will be numbered)?
>> I'd really like to see this accepted upstream in one way or one other
>> so we will prevent the mess we had to deal with last year.
>>
>
> Hans, Dmitry,
>
> well, it's been 3 weeks since I received the loaner I have to support
> these touchpads. I will have to return it next week or the week after
> at most. That means that I will not be able to conduct more tests at
> that point.
> Can I ask you to please review the series?

Ah, sorry I missed you did a v2 (I did review v1).

Series looks good to me and is:

Acked-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans

>
> Sorry for pushing, but I am running out of time and I'd like to be
> able to include the fixes in RHEL/Fedora too.
>
> Cheers,
> Benjamin
>
>>> Benjamin Tissoires (7):
>>>    Input: synaptics - fix middle button on Lenovo 2015 products
>>>    Input: synaptics - handle spurious release of trackstick buttons
>>>    Input: synaptics - do not retrieve the board id on old firmwares
>>>    Input: synaptics - retrieve the extended capabilities in query $10
>>>    Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
>>>    Input: synaptics - re-route tracksticks buttons on the Lenovo 2015
>>>      series
>>>    Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list
>>>
>>>   drivers/input/mouse/synaptics.c | 129 +++++++++++++++++++++++++++++-----------
>>>   drivers/input/mouse/synaptics.h |  28 +++++++++
>>>   2 files changed, 122 insertions(+), 35 deletions(-)
>>>
>>> --
>>> 2.1.0
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH v2 6/7] Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series
  2015-02-06 20:04 ` [PATCH v2 6/7] Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series Benjamin Tissoires
@ 2015-03-09  6:45   ` Dmitry Torokhov
  0 siblings, 0 replies; 31+ messages in thread
From: Dmitry Torokhov @ 2015-03-09  6:45 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

On Fri, Feb 06, 2015 at 03:04:34PM -0500, Benjamin Tissoires wrote:
> The 2015 series of the Lenovo thinkpads added back the hardware buttons
> on top of the touchpad for the trackstick.
> 
> Unfortunately, they are wired to the touchpad, and not the trackstick.
> Thus, they are seen as extra buttons from the kernel point of view.
> 
> This leads to a problem in user space because extra buttons on synaptics
> devices used to be used as scroll up/down buttons. So in the end, the
> experience for the user is scroll events for buttons left and right
> when using the trackstick. Yay!
> 
> Fortunatelly, the firmware advertizes such behavior in the extended
> capability $10, and so we can re-route the buttons through the
> pass-through interface.
> 
> Hallelujah-expressed-by: Peter Hutterer <peter.hutterer@who-t.net>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> ---
> 
> v2:
> - forward only 3 extra buttons, not the whole array. The PS/2 base protocol
>   handles only 3 buttons, so giving more than 3 will mess up REL_X and REL_Y.
> - rely on SYN_CAP_EXT_BUTTONS_STICK to know if the re-routing has to be put in
>   place or not
> 
>  drivers/input/mouse/synaptics.c | 45 +++++++++++++++++++++++++++++++----------
>  drivers/input/mouse/synaptics.h |  5 +++++
>  2 files changed, 39 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
> index 79c4a87..dfe8235 100644
> --- a/drivers/input/mouse/synaptics.c
> +++ b/drivers/input/mouse/synaptics.c
> @@ -585,18 +585,20 @@ static int synaptics_is_pt_packet(unsigned char *buf)
>  	return (buf[0] & 0xFC) == 0x84 && (buf[3] & 0xCC) == 0xC4;
>  }
>  
> -static void synaptics_pass_pt_packet(struct serio *ptport, unsigned char *packet)
> +static void synaptics_pass_pt_packet(struct psmouse *psmouse,
> +		struct serio *ptport, unsigned char *packet)
>  {
> +	struct synaptics_data *priv = psmouse->private;
>  	struct psmouse *child = serio_get_drvdata(ptport);
>  
>  	if (child && child->state == PSMOUSE_ACTIVATED) {
> -		serio_interrupt(ptport, packet[1], 0);
> +		serio_interrupt(ptport, packet[1] | priv->pt_buttons, 0);
>  		serio_interrupt(ptport, packet[4], 0);
>  		serio_interrupt(ptport, packet[5], 0);
>  		if (child->pktsize == 4)
>  			serio_interrupt(ptport, packet[2], 0);
>  	} else
> -		serio_interrupt(ptport, packet[1], 0);
> +		serio_interrupt(ptport, packet[1] | priv->pt_buttons, 0);

We only need to pass the button state when trackpad is activated, not
when we are querying the device.

>  }
>  
>  static void synaptics_pt_activate(struct psmouse *psmouse)
> @@ -842,6 +844,7 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
>  	struct input_dev *dev = psmouse->dev;
>  	struct synaptics_data *priv = psmouse->private;
>  	int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1;
> +	char buf[6] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
>  	int i;
>  
>  	if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))
> @@ -852,12 +855,30 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
>  	    !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
>  		return;
>  
> -	for (i = 0; i < ext_bits; i++) {
> -		input_report_key(dev, BTN_0 + 2 * i,
> -			hw->ext_buttons & (1 << i));
> -		input_report_key(dev, BTN_1 + 2 * i,
> -			hw->ext_buttons & (1 << (i + ext_bits)));
> +	if (!SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10)) {
> +		for (i = 0; i < ext_bits; i++) {
> +			input_report_key(dev, BTN_0 + 2 * i,
> +				hw->ext_buttons & (1 << i));
> +			input_report_key(dev, BTN_1 + 2 * i,
> +				hw->ext_buttons & (1 << (i + ext_bits)));
> +		}
> +		return;
>  	}
> +
> +	/*
> +	 * This generation of touchpads has the trackstick buttons
> +	 * physically wired to the touchpad. Re-route them through
> +	 * the pass-through interface.
> +	 */
> +	if (!priv->pt_port)
> +		return;
> +
> +	/* the trackstick expects at most 3 buttons */
> +	priv->pt_buttons = SYN_CAP_EXT_BUTTON_STICK_L(hw->ext_buttons)      |
> +			   SYN_CAP_EXT_BUTTON_STICK_R(hw->ext_buttons) << 1 |
> +			   SYN_CAP_EXT_BUTTON_STICK_M(hw->ext_buttons) << 2;
> +
> +	synaptics_pass_pt_packet(psmouse, priv->pt_port, buf);
>  }
>  
>  static void synaptics_report_buttons(struct psmouse *psmouse,
> @@ -1098,7 +1119,8 @@ static psmouse_ret_t synaptics_process_byte(struct psmouse *psmouse)
>  		if (SYN_CAP_PASS_THROUGH(priv->capabilities) &&
>  		    synaptics_is_pt_packet(psmouse->packet)) {
>  			if (priv->pt_port)
> -				synaptics_pass_pt_packet(priv->pt_port, psmouse->packet);
> +				synaptics_pass_pt_packet(psmouse, priv->pt_port,
> +							 psmouse->packet);
>  		} else
>  			synaptics_process_packet(psmouse);
>  
> @@ -1200,8 +1222,9 @@ static void set_input_params(struct psmouse *psmouse,
>  		__set_bit(BTN_BACK, dev->keybit);
>  	}
>  
> -	for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++)
> -		__set_bit(BTN_0 + i, dev->keybit);
> +	if (!SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10))
> +		for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++)
> +			__set_bit(BTN_0 + i, dev->keybit);
>  
>  	__clear_bit(EV_REL, dev->evbit);
>  	__clear_bit(REL_X, dev->relbit);
> diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
> index 9723092..8102a72 100644
> --- a/drivers/input/mouse/synaptics.h
> +++ b/drivers/input/mouse/synaptics.h
> @@ -111,6 +111,10 @@
>  #define SYN_CAP_EXT_BUTTONS_STICK(ex10)	((ex10) & 0x010000)
>  #define SYN_CAP_SECUREPAD(ex10)		((ex10) & 0x020000)
>  
> +#define SYN_CAP_EXT_BUTTON_STICK_L(eb)	(!!((eb) & 0x01))
> +#define SYN_CAP_EXT_BUTTON_STICK_M(eb)	(!!((eb) & 0x02))
> +#define SYN_CAP_EXT_BUTTON_STICK_R(eb)	(!!((eb) & 0x04))
> +
>  /* synaptics modes query bits */
>  #define SYN_MODE_ABSOLUTE(m)		((m) & (1 << 7))
>  #define SYN_MODE_RATE(m)		((m) & (1 << 6))
> @@ -179,6 +183,7 @@ struct synaptics_data {
>  	bool disable_gesture;			/* disable gestures */
>  
>  	struct serio *pt_port;			/* Pass-through serio port */
> +	unsigned char pt_buttons;		/* Pass-through buttons */
>  
>  	/*
>  	 * Last received Advanced Gesture Mode (AGM) packet. An AGM packet
> -- 
> 2.1.0
> 

-- 
Dmitry

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-02-25 14:58     ` Hans de Goede
@ 2015-03-09  6:46       ` Dmitry Torokhov
  2015-03-09  8:24         ` Hans de Goede
  0 siblings, 1 reply; 31+ messages in thread
From: Dmitry Torokhov @ 2015-03-09  6:46 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Benjamin Tissoires, Benjamin Tissoires, Andrew Duggan,
	Peter Hutterer, linux-input, linux-kernel

On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
> Hi,
> 
> On 25-02-15 15:36, Benjamin Tissoires wrote:
> >On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
> ><benjamin.tissoires@gmail.com> wrote:
> >>On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
> >><benjamin.tissoires@redhat.com> wrote:
> >>>Hi,
> >>>
> >>>This is the second episode of the Lenovo 2015 party :)
> >>>
> >>>Thanks to Andrew, we now have an idea within the driver of what are the extra
> >>>buttons aimed for, and the patch series looks cleaner.
> >>>Many thanks for your help.
> >>>
> >>>I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
> >>>stable fixes. Without the rest of the series, user-space can cope with the
> >>>kernel result, and so there is IMO no need to backport too many patches in
> >>>stable. I bet distributions will cherry-pick the rest of the series however.
> >>>
> >>
> >>Guys,
> >>
> >>any chances we consider this for 3.20 (or whatever it will be numbered)?
> >>I'd really like to see this accepted upstream in one way or one other
> >>so we will prevent the mess we had to deal with last year.
> >>
> >
> >Hans, Dmitry,
> >
> >well, it's been 3 weeks since I received the loaner I have to support
> >these touchpads. I will have to return it next week or the week after
> >at most. That means that I will not be able to conduct more tests at
> >that point.
> >Can I ask you to please review the series?
> 
> Ah, sorry I missed you did a v2 (I did review v1).
> 
> Series looks good to me and is:
> 
> Acked-by: Hans de Goede <hdegoede@redhat.com>

I did a few edits of the patches in the 2 series so I created a separate
branch "synaptics" based on 3.19. I'd appreciate if you could give it q
quick spin before I will send it for 4.0.

Thanks.

-- 
Dmitry

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-09  6:46       ` Dmitry Torokhov
@ 2015-03-09  8:24         ` Hans de Goede
  2015-03-09 19:36           ` Benjamin Tissoires
  0 siblings, 1 reply; 31+ messages in thread
From: Hans de Goede @ 2015-03-09  8:24 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Benjamin Tissoires, Benjamin Tissoires, Andrew Duggan,
	Peter Hutterer, linux-input, linux-kernel

Hi,

On 09-03-15 07:46, Dmitry Torokhov wrote:
> On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
>> Hi,
>>
>> On 25-02-15 15:36, Benjamin Tissoires wrote:
>>> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
>>> <benjamin.tissoires@gmail.com> wrote:
>>>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>>>> <benjamin.tissoires@redhat.com> wrote:
>>>>> Hi,
>>>>>
>>>>> This is the second episode of the Lenovo 2015 party :)
>>>>>
>>>>> Thanks to Andrew, we now have an idea within the driver of what are the extra
>>>>> buttons aimed for, and the patch series looks cleaner.
>>>>> Many thanks for your help.
>>>>>
>>>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
>>>>> stable fixes. Without the rest of the series, user-space can cope with the
>>>>> kernel result, and so there is IMO no need to backport too many patches in
>>>>> stable. I bet distributions will cherry-pick the rest of the series however.
>>>>>
>>>>
>>>> Guys,
>>>>
>>>> any chances we consider this for 3.20 (or whatever it will be numbered)?
>>>> I'd really like to see this accepted upstream in one way or one other
>>>> so we will prevent the mess we had to deal with last year.
>>>>
>>>
>>> Hans, Dmitry,
>>>
>>> well, it's been 3 weeks since I received the loaner I have to support
>>> these touchpads. I will have to return it next week or the week after
>>> at most. That means that I will not be able to conduct more tests at
>>> that point.
>>> Can I ask you to please review the series?
>>
>> Ah, sorry I missed you did a v2 (I did review v1).
>>
>> Series looks good to me and is:
>>
>> Acked-by: Hans de Goede <hdegoede@redhat.com>
>
> I did a few edits of the patches in the 2 series so I created a separate
> branch "synaptics" based on 3.19. I'd appreciate if you could give it q
> quick spin before I will send it for 4.0.

I don't have access to the hardware in question, but Benjamin does, so
we'll have to wait (a bit) for him to wake up :)

Regards,

Hans

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-09  8:24         ` Hans de Goede
@ 2015-03-09 19:36           ` Benjamin Tissoires
  2015-03-10  6:17             ` Steven Noonan
  2015-03-16 14:46             ` Benjamin Tissoires
  0 siblings, 2 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-03-09 19:36 UTC (permalink / raw)
  To: Hans de Goede, Daniel Martin
  Cc: Dmitry Torokhov, Benjamin Tissoires, Andrew Duggan,
	Peter Hutterer, linux-input, linux-kernel

On Mon, Mar 9, 2015 at 4:24 AM, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
>
> On 09-03-15 07:46, Dmitry Torokhov wrote:
>>
>> On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
>>>
>>> Hi,
>>>
>>> On 25-02-15 15:36, Benjamin Tissoires wrote:
>>>>
>>>> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
>>>> <benjamin.tissoires@gmail.com> wrote:
>>>>>
>>>>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>>>>> <benjamin.tissoires@redhat.com> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> This is the second episode of the Lenovo 2015 party :)
>>>>>>
>>>>>> Thanks to Andrew, we now have an idea within the driver of what are
>>>>>> the extra
>>>>>> buttons aimed for, and the patch series looks cleaner.
>>>>>> Many thanks for your help.
>>>>>>
>>>>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are
>>>>>> really
>>>>>> stable fixes. Without the rest of the series, user-space can cope with
>>>>>> the
>>>>>> kernel result, and so there is IMO no need to backport too many
>>>>>> patches in
>>>>>> stable. I bet distributions will cherry-pick the rest of the series
>>>>>> however.
>>>>>>
>>>>>
>>>>> Guys,
>>>>>
>>>>> any chances we consider this for 3.20 (or whatever it will be
>>>>> numbered)?
>>>>> I'd really like to see this accepted upstream in one way or one other
>>>>> so we will prevent the mess we had to deal with last year.
>>>>>
>>>>
>>>> Hans, Dmitry,
>>>>
>>>> well, it's been 3 weeks since I received the loaner I have to support
>>>> these touchpads. I will have to return it next week or the week after
>>>> at most. That means that I will not be able to conduct more tests at
>>>> that point.
>>>> Can I ask you to please review the series?
>>>
>>>
>>> Ah, sorry I missed you did a v2 (I did review v1).
>>>
>>> Series looks good to me and is:
>>>
>>> Acked-by: Hans de Goede <hdegoede@redhat.com>
>>
>>
>> I did a few edits of the patches in the 2 series so I created a separate
>> branch "synaptics" based on 3.19. I'd appreciate if you could give it q
>> quick spin before I will send it for 4.0.
>
>
> I don't have access to the hardware in question, but Benjamin does, so
> we'll have to wait (a bit) for him to wake up :)
>

It took me a little bit of time to retrieve the laptop and get it tested.
So far, so good:
- t440s (2013) shows the correct behavior
- x1 carbon 3 has the buttons properly forwarded through the
trackstick interface and are reacting as expected.

Thanks Dmitry!

I've added Daniel to the thread and asked it this morning if he could
also give a try to the series.

Cheers,
Benjamin

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-09 19:36           ` Benjamin Tissoires
@ 2015-03-10  6:17             ` Steven Noonan
  2015-03-10  7:23               ` Hans de Goede
  2015-03-16 14:46             ` Benjamin Tissoires
  1 sibling, 1 reply; 31+ messages in thread
From: Steven Noonan @ 2015-03-10  6:17 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Hans de Goede, Daniel Martin, Dmitry Torokhov,
	Benjamin Tissoires, Andrew Duggan, Peter Hutterer, linux-input,
	linux-kernel

Hi Benjamin,

I just got a ThinkPad X250 in today and have tried out your patches on
3.19.1. Before the patches, the top TrackPoint buttons weren't working
at all, but the clickpad was working fine. For the most part, your
patches fixed the TrackPoint.

There's something weird going on though. If I control the mouse cursor
with the trackpoint nub, it feels "slow". At first I though it was
running the video mode at half the normal refresh rate, because the
pointer was only moving at what felt like a 30Hz refresh rate. But
then I tried the trackpad, and it behaves as expected (snappy and
responsive). Note that this is a definite difference between the BDW
generation and the HSW generation, as my HSW ThinkPad Yoga feels fine.

Is there something in the driver that controls the TrackPoint nub's
sampling rate?

- Steven

On Mon, Mar 9, 2015 at 12:36 PM, Benjamin Tissoires
<benjamin.tissoires@gmail.com> wrote:
> On Mon, Mar 9, 2015 at 4:24 AM, Hans de Goede <hdegoede@redhat.com> wrote:
>> Hi,
>>
>>
>> On 09-03-15 07:46, Dmitry Torokhov wrote:
>>>
>>> On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
>>>>
>>>> Hi,
>>>>
>>>> On 25-02-15 15:36, Benjamin Tissoires wrote:
>>>>>
>>>>> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
>>>>> <benjamin.tissoires@gmail.com> wrote:
>>>>>>
>>>>>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>>>>>> <benjamin.tissoires@redhat.com> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> This is the second episode of the Lenovo 2015 party :)
>>>>>>>
>>>>>>> Thanks to Andrew, we now have an idea within the driver of what are
>>>>>>> the extra
>>>>>>> buttons aimed for, and the patch series looks cleaner.
>>>>>>> Many thanks for your help.
>>>>>>>
>>>>>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are
>>>>>>> really
>>>>>>> stable fixes. Without the rest of the series, user-space can cope with
>>>>>>> the
>>>>>>> kernel result, and so there is IMO no need to backport too many
>>>>>>> patches in
>>>>>>> stable. I bet distributions will cherry-pick the rest of the series
>>>>>>> however.
>>>>>>>
>>>>>>
>>>>>> Guys,
>>>>>>
>>>>>> any chances we consider this for 3.20 (or whatever it will be
>>>>>> numbered)?
>>>>>> I'd really like to see this accepted upstream in one way or one other
>>>>>> so we will prevent the mess we had to deal with last year.
>>>>>>
>>>>>
>>>>> Hans, Dmitry,
>>>>>
>>>>> well, it's been 3 weeks since I received the loaner I have to support
>>>>> these touchpads. I will have to return it next week or the week after
>>>>> at most. That means that I will not be able to conduct more tests at
>>>>> that point.
>>>>> Can I ask you to please review the series?
>>>>
>>>>
>>>> Ah, sorry I missed you did a v2 (I did review v1).
>>>>
>>>> Series looks good to me and is:
>>>>
>>>> Acked-by: Hans de Goede <hdegoede@redhat.com>
>>>
>>>
>>> I did a few edits of the patches in the 2 series so I created a separate
>>> branch "synaptics" based on 3.19. I'd appreciate if you could give it q
>>> quick spin before I will send it for 4.0.
>>
>>
>> I don't have access to the hardware in question, but Benjamin does, so
>> we'll have to wait (a bit) for him to wake up :)
>>
>
> It took me a little bit of time to retrieve the laptop and get it tested.
> So far, so good:
> - t440s (2013) shows the correct behavior
> - x1 carbon 3 has the buttons properly forwarded through the
> trackstick interface and are reacting as expected.
>
> Thanks Dmitry!
>
> I've added Daniel to the thread and asked it this morning if he could
> also give a try to the series.
>
> Cheers,
> Benjamin
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-10  6:17             ` Steven Noonan
@ 2015-03-10  7:23               ` Hans de Goede
  2015-03-10 18:35                 ` Steven Noonan
  0 siblings, 1 reply; 31+ messages in thread
From: Hans de Goede @ 2015-03-10  7:23 UTC (permalink / raw)
  To: Steven Noonan, Benjamin Tissoires
  Cc: Daniel Martin, Dmitry Torokhov, Benjamin Tissoires,
	Andrew Duggan, Peter Hutterer, linux-input, linux-kernel

Hi,

On 10-03-15 07:17, Steven Noonan wrote:
> Hi Benjamin,
>
> I just got a ThinkPad X250 in today and have tried out your patches on
> 3.19.1. Before the patches, the top TrackPoint buttons weren't working
> at all, but the clickpad was working fine. For the most part, your
> patches fixed the TrackPoint.
>
> There's something weird going on though. If I control the mouse cursor
> with the trackpoint nub, it feels "slow". At first I though it was
> running the video mode at half the normal refresh rate, because the
> pointer was only moving at what felt like a 30Hz refresh rate. But
> then I tried the trackpad, and it behaves as expected (snappy and
> responsive). Note that this is a definite difference between the BDW
> generation and the HSW generation, as my HSW ThinkPad Yoga feels fine.
>
> Is there something in the driver that controls the TrackPoint nub's
> sampling rate?

Actually the trackpoint sensitivity is of (less sensitive) on the t440 /
x240 generation too. There it seems slower then with previous thinkpads
as well. I was hoping this would be fixed with the t450, but given that
they've recycled the keyboard it makes sense that it is not fixed.

I still have writing a kernel patch for this on my todo list. In the
mean time you can change the sensitivity as documented here:

http://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint#Sensitivity_.26_Speed

I plan to write a kernel patch to set a different sensitivity by default
on these newer models to fix this ootb. If you can let me know what seems
to be a good sensitivity that would be useful.

Regards,

Hans



>
> - Steven
>
> On Mon, Mar 9, 2015 at 12:36 PM, Benjamin Tissoires
> <benjamin.tissoires@gmail.com> wrote:
>> On Mon, Mar 9, 2015 at 4:24 AM, Hans de Goede <hdegoede@redhat.com> wrote:
>>> Hi,
>>>
>>>
>>> On 09-03-15 07:46, Dmitry Torokhov wrote:
>>>>
>>>> On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> On 25-02-15 15:36, Benjamin Tissoires wrote:
>>>>>>
>>>>>> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
>>>>>> <benjamin.tissoires@gmail.com> wrote:
>>>>>>>
>>>>>>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>>>>>>> <benjamin.tissoires@redhat.com> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> This is the second episode of the Lenovo 2015 party :)
>>>>>>>>
>>>>>>>> Thanks to Andrew, we now have an idea within the driver of what are
>>>>>>>> the extra
>>>>>>>> buttons aimed for, and the patch series looks cleaner.
>>>>>>>> Many thanks for your help.
>>>>>>>>
>>>>>>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are
>>>>>>>> really
>>>>>>>> stable fixes. Without the rest of the series, user-space can cope with
>>>>>>>> the
>>>>>>>> kernel result, and so there is IMO no need to backport too many
>>>>>>>> patches in
>>>>>>>> stable. I bet distributions will cherry-pick the rest of the series
>>>>>>>> however.
>>>>>>>>
>>>>>>>
>>>>>>> Guys,
>>>>>>>
>>>>>>> any chances we consider this for 3.20 (or whatever it will be
>>>>>>> numbered)?
>>>>>>> I'd really like to see this accepted upstream in one way or one other
>>>>>>> so we will prevent the mess we had to deal with last year.
>>>>>>>
>>>>>>
>>>>>> Hans, Dmitry,
>>>>>>
>>>>>> well, it's been 3 weeks since I received the loaner I have to support
>>>>>> these touchpads. I will have to return it next week or the week after
>>>>>> at most. That means that I will not be able to conduct more tests at
>>>>>> that point.
>>>>>> Can I ask you to please review the series?
>>>>>
>>>>>
>>>>> Ah, sorry I missed you did a v2 (I did review v1).
>>>>>
>>>>> Series looks good to me and is:
>>>>>
>>>>> Acked-by: Hans de Goede <hdegoede@redhat.com>
>>>>
>>>>
>>>> I did a few edits of the patches in the 2 series so I created a separate
>>>> branch "synaptics" based on 3.19. I'd appreciate if you could give it q
>>>> quick spin before I will send it for 4.0.
>>>
>>>
>>> I don't have access to the hardware in question, but Benjamin does, so
>>> we'll have to wait (a bit) for him to wake up :)
>>>
>>
>> It took me a little bit of time to retrieve the laptop and get it tested.
>> So far, so good:
>> - t440s (2013) shows the correct behavior
>> - x1 carbon 3 has the buttons properly forwarded through the
>> trackstick interface and are reacting as expected.
>>
>> Thanks Dmitry!
>>
>> I've added Daniel to the thread and asked it this morning if he could
>> also give a try to the series.
>>
>> Cheers,
>> Benjamin
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-10  7:23               ` Hans de Goede
@ 2015-03-10 18:35                 ` Steven Noonan
  0 siblings, 0 replies; 31+ messages in thread
From: Steven Noonan @ 2015-03-10 18:35 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Benjamin Tissoires, Daniel Martin, Dmitry Torokhov,
	Benjamin Tissoires, Andrew Duggan, Peter Hutterer, linux-input,
	linux-kernel

On Tue, Mar 10, 2015 at 12:23 AM, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 10-03-15 07:17, Steven Noonan wrote:
>>
>> Hi Benjamin,
>>
>> I just got a ThinkPad X250 in today and have tried out your patches on
>> 3.19.1. Before the patches, the top TrackPoint buttons weren't working
>> at all, but the clickpad was working fine. For the most part, your
>> patches fixed the TrackPoint.
>>
>> There's something weird going on though. If I control the mouse cursor
>> with the trackpoint nub, it feels "slow". At first I though it was
>> running the video mode at half the normal refresh rate, because the
>> pointer was only moving at what felt like a 30Hz refresh rate. But
>> then I tried the trackpad, and it behaves as expected (snappy and
>> responsive). Note that this is a definite difference between the BDW
>> generation and the HSW generation, as my HSW ThinkPad Yoga feels fine.
>>
>> Is there something in the driver that controls the TrackPoint nub's
>> sampling rate?
>
>
> Actually the trackpoint sensitivity is of (less sensitive) on the t440 /
> x240 generation too. There it seems slower then with previous thinkpads
> as well. I was hoping this would be fixed with the t450, but given that
> they've recycled the keyboard it makes sense that it is not fixed.
>
> I still have writing a kernel patch for this on my todo list. In the
> mean time you can change the sensitivity as documented here:
>
> http://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint#Sensitivity_.26_Speed

Nice! Super useful.

> I plan to write a kernel patch to set a different sensitivity by default
> on these newer models to fix this ootb. If you can let me know what seems
> to be a good sensitivity that would be useful.

Original values:

# head speed sensitivity
==> speed <==
97

==> sensitivity <==
128


These are comfortable for me, but are a little bit faster than even
the X230 TrackPoint was:

# head speed sensitivity
==> speed <==
105

==> sensitivity <==
160


These feel pretty close to the X230 behavior:

# head speed sensitivity
==> speed <==
105

==> sensitivity <==
140

> Regards,
>
> Hans
>
>
>
>
>>
>> - Steven
>>
>> On Mon, Mar 9, 2015 at 12:36 PM, Benjamin Tissoires
>> <benjamin.tissoires@gmail.com> wrote:
>>>
>>> On Mon, Mar 9, 2015 at 4:24 AM, Hans de Goede <hdegoede@redhat.com>
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>>
>>>> On 09-03-15 07:46, Dmitry Torokhov wrote:
>>>>>
>>>>>
>>>>> On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
>>>>>>
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> On 25-02-15 15:36, Benjamin Tissoires wrote:
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
>>>>>>> <benjamin.tissoires@gmail.com> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>>>>>>>> <benjamin.tissoires@redhat.com> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> This is the second episode of the Lenovo 2015 party :)
>>>>>>>>>
>>>>>>>>> Thanks to Andrew, we now have an idea within the driver of what are
>>>>>>>>> the extra
>>>>>>>>> buttons aimed for, and the patch series looks cleaner.
>>>>>>>>> Many thanks for your help.
>>>>>>>>>
>>>>>>>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are
>>>>>>>>> really
>>>>>>>>> stable fixes. Without the rest of the series, user-space can cope
>>>>>>>>> with
>>>>>>>>> the
>>>>>>>>> kernel result, and so there is IMO no need to backport too many
>>>>>>>>> patches in
>>>>>>>>> stable. I bet distributions will cherry-pick the rest of the series
>>>>>>>>> however.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Guys,
>>>>>>>>
>>>>>>>> any chances we consider this for 3.20 (or whatever it will be
>>>>>>>> numbered)?
>>>>>>>> I'd really like to see this accepted upstream in one way or one
>>>>>>>> other
>>>>>>>> so we will prevent the mess we had to deal with last year.
>>>>>>>>
>>>>>>>
>>>>>>> Hans, Dmitry,
>>>>>>>
>>>>>>> well, it's been 3 weeks since I received the loaner I have to support
>>>>>>> these touchpads. I will have to return it next week or the week after
>>>>>>> at most. That means that I will not be able to conduct more tests at
>>>>>>> that point.
>>>>>>> Can I ask you to please review the series?
>>>>>>
>>>>>>
>>>>>>
>>>>>> Ah, sorry I missed you did a v2 (I did review v1).
>>>>>>
>>>>>> Series looks good to me and is:
>>>>>>
>>>>>> Acked-by: Hans de Goede <hdegoede@redhat.com>
>>>>>
>>>>>
>>>>>
>>>>> I did a few edits of the patches in the 2 series so I created a
>>>>> separate
>>>>> branch "synaptics" based on 3.19. I'd appreciate if you could give it q
>>>>> quick spin before I will send it for 4.0.
>>>>
>>>>
>>>>
>>>> I don't have access to the hardware in question, but Benjamin does, so
>>>> we'll have to wait (a bit) for him to wake up :)
>>>>
>>>
>>> It took me a little bit of time to retrieve the laptop and get it tested.
>>> So far, so good:
>>> - t440s (2013) shows the correct behavior
>>> - x1 carbon 3 has the buttons properly forwarded through the
>>> trackstick interface and are reacting as expected.
>>>
>>> Thanks Dmitry!
>>>
>>> I've added Daniel to the thread and asked it this morning if he could
>>> also give a try to the series.
>>>
>>> Cheers,
>>> Benjamin
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel"
>>> in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-09 19:36           ` Benjamin Tissoires
  2015-03-10  6:17             ` Steven Noonan
@ 2015-03-16 14:46             ` Benjamin Tissoires
  1 sibling, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-03-16 14:46 UTC (permalink / raw)
  To: Hans de Goede, Daniel Martin
  Cc: Dmitry Torokhov, Andrew Duggan, Peter Hutterer, linux-input,
	linux-kernel

On Mon, Mar 9, 2015 at 3:36 PM, Benjamin Tissoires
<benjamin.tissoires@gmail.com> wrote:
> On Mon, Mar 9, 2015 at 4:24 AM, Hans de Goede <hdegoede@redhat.com> wrote:
>> Hi,
>>
>>
>> On 09-03-15 07:46, Dmitry Torokhov wrote:
>>>
>>> On Wed, Feb 25, 2015 at 03:58:20PM +0100, Hans de Goede wrote:
>>>>
>>>> Hi,
>>>>
>>>> On 25-02-15 15:36, Benjamin Tissoires wrote:
>>>>>
>>>>> On Mon, Feb 16, 2015 at 10:23 PM, Benjamin Tissoires
>>>>> <benjamin.tissoires@gmail.com> wrote:
>>>>>>
>>>>>> On Fri, Feb 6, 2015 at 3:04 PM, Benjamin Tissoires
>>>>>> <benjamin.tissoires@redhat.com> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> This is the second episode of the Lenovo 2015 party :)
>>>>>>>
>>>>>>> Thanks to Andrew, we now have an idea within the driver of what are
>>>>>>> the extra
>>>>>>> buttons aimed for, and the patch series looks cleaner.
>>>>>>> Many thanks for your help.
>>>>>>>
>>>>>>> I marked only patches 1/7, 2/7 and 3/7 as stable because they are
>>>>>>> really
>>>>>>> stable fixes. Without the rest of the series, user-space can cope with
>>>>>>> the
>>>>>>> kernel result, and so there is IMO no need to backport too many
>>>>>>> patches in
>>>>>>> stable. I bet distributions will cherry-pick the rest of the series
>>>>>>> however.
>>>>>>>
>>>>>>
>>>>>> Guys,
>>>>>>
>>>>>> any chances we consider this for 3.20 (or whatever it will be
>>>>>> numbered)?
>>>>>> I'd really like to see this accepted upstream in one way or one other
>>>>>> so we will prevent the mess we had to deal with last year.
>>>>>>
>>>>>
>>>>> Hans, Dmitry,
>>>>>
>>>>> well, it's been 3 weeks since I received the loaner I have to support
>>>>> these touchpads. I will have to return it next week or the week after
>>>>> at most. That means that I will not be able to conduct more tests at
>>>>> that point.
>>>>> Can I ask you to please review the series?
>>>>
>>>>
>>>> Ah, sorry I missed you did a v2 (I did review v1).
>>>>
>>>> Series looks good to me and is:
>>>>
>>>> Acked-by: Hans de Goede <hdegoede@redhat.com>
>>>
>>>
>>> I did a few edits of the patches in the 2 series so I created a separate
>>> branch "synaptics" based on 3.19. I'd appreciate if you could give it q
>>> quick spin before I will send it for 4.0.
>>
>>
>> I don't have access to the hardware in question, but Benjamin does, so
>> we'll have to wait (a bit) for him to wake up :)
>>
>
> It took me a little bit of time to retrieve the laptop and get it tested.
> So far, so good:
> - t440s (2013) shows the correct behavior
> - x1 carbon 3 has the buttons properly forwarded through the
> trackstick interface and are reacting as expected.
>
> Thanks Dmitry!
>
> I've added Daniel to the thread and asked it this morning if he could
> also give a try to the series.
>

It's been a week since this testing request has been made.
So far:
- we pushed that on Fedora 22/rawhide since last Thu, no bad reports since
- our internal IT tested the series on a X250 and W541 with good results
- I recieved other reports from X250 IIRC, no problems so far

I guess it's time to merge this branch in your "next" branch at least.

Cheers,
Benjamin

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
                   ` (7 preceding siblings ...)
  2015-02-17  3:23 ` [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
@ 2015-03-19 14:24 ` Yves-Alexis Perez
  2015-03-19 14:46   ` Benjamin Tissoires
  8 siblings, 1 reply; 31+ messages in thread
From: Yves-Alexis Perez @ 2015-03-19 14:24 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Fri, Feb 06, 2015 at 03:04:28PM -0500, Benjamin Tissoires wrote:
> Hi,
> 
> This is the second episode of the Lenovo 2015 party :)
> 
> Thanks to Andrew, we now have an idea within the driver of what are the extra
> buttons aimed for, and the patch series looks cleaner.
> Many thanks for your help.
> 
> I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
> stable fixes. Without the rest of the series, user-space can cope with the
> kernel result, and so there is IMO no need to backport too many patches in
> stable. I bet distributions will cherry-pick the rest of the series however.
> 
Hi,

I recently bought a ThinkPad X250 [1]. I'm running Debian sid with the
4.0-rc4 kernel right now.

I don't use the touchpad at all, but rather the trackpoint, so I
disabled the touchpad in the BIOS. Following some advice, I setup the
input system using psmouse.proto=imps with a custom Xorg.conf.d config
file for the “touchpad” (the Trackpoint device disappears when using
IMPS). It works fine with xf86-input-evdev, and the psmouse module
correctly respects the BIOS setting (the touchpad itself is disabled).

Then I was made aware of that patch set and of the xf86-input-synaptics
patches [2].

I tried the patchset at [3], disabling the psmouse.proto=imps, but I
don't yet installed xf86-input-synaptics. Here are the results:

- - the trackpoint device reappears
- - the hardware buttons seem to work, and are assigned the the trackpoint
  device (and can configured using the standard trackpoint config file)
- - the touchpad is enabled, so it looks like the BIOS setting is not
  respected

So I have two questions/remarks about this:

- - if I don't use the touchpad, do I need xf86-input-synaptics at all?
- - how can I have the BIOS setting respected by the psmouse/synaptics
  kernel module (like when using psmouse)

Thanks for your patchset anyway, and regards,

[1] http://www.corsac.net/X250
[2] http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/
[3] https://git.kernel.org/cgit/linux/kernel/git/dtor/input.git/log/
- -- 
Yves-Alexis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCgAGBQJVCtwvAAoJEG3bU/KmdcClNNYIAIyaikIj76wq0evHDWFAPcZN
5fACdhoEHtnLJYlTUe+b35ywhPLNSLpmjr//goOLqTnqHSSScM/09s4tyCbk9vWp
JprHzfp3HK1ggx4sa6MQlR5cX8wUA5AP/LhYCuKgsPrkD5cNX4Q818FWrYNnB6Hm
y7uC3Mcs9KDk1KvyK79dSMg1lrdtIMCkvgO+81fZPUQOsd3FjMq5vci0zqxHnxZB
1694fY+j9ZMAlyD+wZ/NGsANjZDdqYm/dy5i+NrYjVb53sJD/piZ+NsuIgP4neRJ
Y3kskJbFB/bfv29N4LETT3JrqmYfsvcOMoilnnh8P1f73VTsdgJGw6brtmt0cKE=
=7KN3
-----END PGP SIGNATURE-----

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 14:24 ` Yves-Alexis Perez
@ 2015-03-19 14:46   ` Benjamin Tissoires
  2015-03-19 15:25     ` Yves-Alexis Perez
  0 siblings, 1 reply; 31+ messages in thread
From: Benjamin Tissoires @ 2015-03-19 14:46 UTC (permalink / raw)
  To: Yves-Alexis Perez
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> On Fri, Feb 06, 2015 at 03:04:28PM -0500, Benjamin Tissoires wrote:
> > Hi,
> > 
> > This is the second episode of the Lenovo 2015 party :)
> > 
> > Thanks to Andrew, we now have an idea within the driver of what are the extra
> > buttons aimed for, and the patch series looks cleaner.
> > Many thanks for your help.
> > 
> > I marked only patches 1/7, 2/7 and 3/7 as stable because they are really
> > stable fixes. Without the rest of the series, user-space can cope with the
> > kernel result, and so there is IMO no need to backport too many patches in
> > stable. I bet distributions will cherry-pick the rest of the series however.
> > 
> Hi,
> 
> I recently bought a ThinkPad X250 [1]. I'm running Debian sid with the
> 4.0-rc4 kernel right now.
> 
> I don't use the touchpad at all, but rather the trackpoint, so I
> disabled the touchpad in the BIOS. Following some advice, I setup the
> input system using psmouse.proto=imps with a custom Xorg.conf.d config
> file for the “touchpad” (the Trackpoint device disappears when using
> IMPS). It works fine with xf86-input-evdev, and the psmouse module
> correctly respects the BIOS setting (the touchpad itself is disabled).
> 
> Then I was made aware of that patch set and of the xf86-input-synaptics
> patches [2].
> 
> I tried the patchset at [3], disabling the psmouse.proto=imps, but I
> don't yet installed xf86-input-synaptics. Here are the results:
> 
> - the trackpoint device reappears
> - the hardware buttons seem to work, and are assigned the the trackpoint
>   device (and can configured using the standard trackpoint config file)
> - the touchpad is enabled, so it looks like the BIOS setting is not
>   respected
> 
> So I have two questions/remarks about this:
> 
> - if I don't use the touchpad, do I need xf86-input-synaptics at all?

Wether you use it or not, with the current kernel patch set, there will
be no modifications to do in xf86-input-synaptics. Legacy versions will
work just fine and the trackstick/touchpads are seen like they were in
the past (lik ein the thinkpads t410 .. t430).

So I would advice to just revert to whatever Xorg / xf86-input-synaptics
/ configuration you had from your distribution, apply the patches (or
wait for 4.0-rc5), and you are done.

> - how can I have the BIOS setting respected by the psmouse/synaptics
>   kernel module (like when using psmouse)

I was confused at first so I double checked. If you use the
psmouse.proto=imps boot parameter, then the bios setting is respected.

If the trackpad is enabled, it is barely usable, but that's what you get
:)

> 
> Thanks for your patchset anyway, and regards,

Thanks for your testings.

Cheers,
Benjamin


> 
> [1] http://www.corsac.net/X250
> [2] http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/
> [3] https://git.kernel.org/cgit/linux/kernel/git/dtor/input.git/log/
> -- 
> Yves-Alexis

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 14:46   ` Benjamin Tissoires
@ 2015-03-19 15:25     ` Yves-Alexis Perez
  2015-03-19 15:58       ` Benjamin Tissoires
  0 siblings, 1 reply; 31+ messages in thread
From: Yves-Alexis Perez @ 2015-03-19 15:25 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Thu, Mar 19, 2015 at 10:46:27AM -0400, Benjamin Tissoires wrote:
> On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > So I have two questions/remarks about this:
> > 
> > - if I don't use the touchpad, do I need xf86-input-synaptics at all?
> 
> Wether you use it or not, with the current kernel patch set, there will
> be no modifications to do in xf86-input-synaptics. Legacy versions will
> work just fine and the trackstick/touchpads are seen like they were in
> the past (lik ein the thinkpads t410 .. t430).
> 
> So I would advice to just revert to whatever Xorg / xf86-input-synaptics
> / configuration you had from your distribution, apply the patches (or
> wait for 4.0-rc5), and you are done.

So to summarize: both patchsets are enough for complete
touchpad+trackpoint operations, having both is not useful but not
harmful either, and it's better to have the kernel one.

Am I right? Thanks for the information, I'll also try to point our
kernel maintainers to that thread and ask them if it's possible to
backport them to the 3.16 kernel for Jessie.
> 
> > - how can I have the BIOS setting respected by the psmouse/synaptics
> >   kernel module (like when using psmouse)
> 
> I was confused at first so I double checked. If you use the
> psmouse.proto=imps boot parameter, then the bios setting is respected.
> 
> If the trackpad is enabled, it is barely usable, but that's what you get
> :)

Oh ok. I didn't try to boot with touchpad enabled in BIOS and
psmouse.proto=imps, so I missed that.

But that doesn't really answer my question. Can the BIOS setting be
handled correctly, so I don't have to disable the touchpad from xinput
or something?

Regards,
- -- 
Yves-Alexis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCgAGBQJVCupjAAoJEG3bU/KmdcClcikH/2e5qahRr2+gXRbEzQcimMvp
9EHk7cY+1AQlDfN5EasKY3mEbYUC7ZZP97IlKZSTCgcl8Ai8d+jYAMlkOviytV5x
eh8LixhI/0d4u/SBDycXYXezMaNqdVQYBJ+E8bEHM6SXp4h1qEHlhzeIwDDafWQk
UeVFWbQAxrWSXX+6ZCrmBNqDOvKdCddAa77DjZGhOztBrnk4+Kr2CvcurNiHJ/36
Z1gdSaVk9Or8hfwxcoT5ZMGXld+CihK0MMuwSLBoHjggHjGFkDZuQM6I3l8WAQO5
uMjQhp+s3Gt2raMYwSFDSQQ2Tlc7//nh6LySIkPVUU+uaG3W2xbhOUFHnauLW1I=
=xG6T
-----END PGP SIGNATURE-----

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 15:25     ` Yves-Alexis Perez
@ 2015-03-19 15:58       ` Benjamin Tissoires
  2015-03-19 16:47         ` Yves-Alexis Perez
  2015-04-09 12:59         ` Yves-Alexis Perez
  0 siblings, 2 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-03-19 15:58 UTC (permalink / raw)
  To: Yves-Alexis Perez
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> On Thu, Mar 19, 2015 at 10:46:27AM -0400, Benjamin Tissoires wrote:
> > On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > > So I have two questions/remarks about this:
> > > 
> > > - if I don't use the touchpad, do I need xf86-input-synaptics at all?
> > 
> > Wether you use it or not, with the current kernel patch set, there will
> > be no modifications to do in xf86-input-synaptics. Legacy versions will
> > work just fine and the trackstick/touchpads are seen like they were in
> > the past (lik ein the thinkpads t410 .. t430).
> > 
> > So I would advice to just revert to whatever Xorg / xf86-input-synaptics
> > / configuration you had from your distribution, apply the patches (or
> > wait for 4.0-rc5), and you are done.
> 
> So to summarize: both patchsets are enough for complete
> touchpad+trackpoint operations, having both is not useful but not
> harmful either, and it's better to have the kernel one.

Hmm, sorry, looks like I was not clear enough in my reply.

- the kernel patch is the fix.
- the xf86-input-synaptics patch has been reverted upstream [1]. See
  Peter's explanations on his blog post [2]

The main problem with the xorg approach was that the middle button was
not working and the buttons were released immediately after the press.

This buttons problems have been marked for stable because they are
actually bug fix. The re-routing is not because we already backported
many things in the synaptics driver that have fired back now, so I
prefer asking the distributions to backport it themselves. If they don't
want, they can still revert the revert in xf86-synaptics, but this is
not a nice fix.

One more reason for not asking to backport the re-routing is that
broadwell laptops needs a recent kernel, and possibly backport other
patches from 4.0, so things will get settle once 4.0 gets in the main
distributions.

> 
> Am I right? Thanks for the information, I'll also try to point our
> kernel maintainers to that thread and ask them if it's possible to
> backport them to the 3.16 kernel for Jessie.

Yes, please do. For the record, they are already in Fedora.

> > 
> > > - how can I have the BIOS setting respected by the psmouse/synaptics
> > >   kernel module (like when using psmouse)
> > 
> > I was confused at first so I double checked. If you use the
> > psmouse.proto=imps boot parameter, then the bios setting is respected.
> > 
> > If the trackpad is enabled, it is barely usable, but that's what you get
> > :)
> 
> Oh ok. I didn't try to boot with touchpad enabled in BIOS and
> psmouse.proto=imps, so I missed that.
> 
> But that doesn't really answer my question. Can the BIOS setting be
> handled correctly, so I don't have to disable the touchpad from xinput
> or something?
> 

Again, sorry, I thought I answered it. With the kernel patches applied:
- disabled in the bios without psmouse.proto=imps -> touchpad still
  enabled, trackstick + buttons working
- disabling in the bios + psmouse.proto=imps -> touchpad disabled,
  trackstick + buttons working
- enabled in the bios + psmouse.proto=imps -> touchpad barely usable,
  trackstick + buttons working

That should cover all the cases :)

Cheers,
Benjamin


[1] http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=5378a020a003cbdfa565d43c9e01997b570059c9
[2] http://who-t.blogspot.com/2015/01/lenovos-x1-carbon-3rd-touchpad-woes.html

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 15:58       ` Benjamin Tissoires
@ 2015-03-19 16:47         ` Yves-Alexis Perez
  2015-03-19 17:06           ` Benjamin Tissoires
  2015-04-09 12:59         ` Yves-Alexis Perez
  1 sibling, 1 reply; 31+ messages in thread
From: Yves-Alexis Perez @ 2015-03-19 16:47 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Thu, Mar 19, 2015 at 11:58:31AM -0400, Benjamin Tissoires wrote:
> On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > Am I right? Thanks for the information, I'll also try to point our
> > kernel maintainers to that thread and ask them if it's possible to
> > backport them to the 3.16 kernel for Jessie.
> 
> Yes, please do. For the record, they are already in Fedora.
> 
Ok, will do.

> Again, sorry, I thought I answered it. With the kernel patches applied:
> - disabled in the bios without psmouse.proto=imps -> touchpad still
>   enabled, trackstick + buttons working
> - disabling in the bios + psmouse.proto=imps -> touchpad disabled,
>   trackstick + buttons working
> - enabled in the bios + psmouse.proto=imps -> touchpad barely usable,
>   trackstick + buttons working
> 
> That should cover all the cases :)
> 
Actually, one is missing: “touchpad enabled / without
psmouse.proto=imps”, but it doesn't really matter for me since I'm not
using the touchpad anyway.

But that also means if I want a disabled touchpad (without using xinput
disable) I'm forced to use psmouse.proto=imps. It does work fine but I
then lose the speed and sensitivity attributes (in
/sys/devices/platform/i8042/...) and the Trackpoint device itself is
gone from the input subsystem (everything goes to the touchpad one).

I find that a bit confusing, and think it'd be best if the touchpad
disabling could be handled even when IMPS/2 is not used, but maybe it's
impossible to do?

Sorry for the ~user-related questions.

Regards,
- -- 
Yves-Alexis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCgAGBQJVCv2tAAoJEG3bU/KmdcCl1KsIAJOH5Q2v/Dtp5R69Sgq3ERcU
VscKl3K4Mqv4U8mNU47PBgSRWBOlZ7OuOkyJbo/gBKaxwNP6mnctn8BWfu3bzXVA
ycSbUgpiws+EsZXkPL+ej7qtxWu0UamUKR9Aoeto6NDy/2KCzcBWCGtfgyVFvsL7
BxC9bPX2tGhgE+9tt+S+AW03aovSfmIipV7XCY3A5hB1lzpjvZwagAzY5PwgI9sj
8gsaDlHeb9l0KFtElVgU+aF2CM1Q07VWQbE6Jcims2LJgLcrOWraye50YP/s7WA4
dC+9n+yY4bm3Q1YyjKUK8Rgq7WzWJFk8O+mJlS81I3tc41Ihg/RlZkUKxg7rM4A=
=YqYu
-----END PGP SIGNATURE-----

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 16:47         ` Yves-Alexis Perez
@ 2015-03-19 17:06           ` Benjamin Tissoires
  2015-03-19 17:43             ` Dmitry Torokhov
  2015-03-20 13:59             ` Yves-Alexis Perez
  0 siblings, 2 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-03-19 17:06 UTC (permalink / raw)
  To: Yves-Alexis Perez
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> On Thu, Mar 19, 2015 at 11:58:31AM -0400, Benjamin Tissoires wrote:
> > On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > Again, sorry, I thought I answered it. With the kernel patches applied:
> > - disabled in the bios without psmouse.proto=imps -> touchpad still
> >   enabled, trackstick + buttons working
> > - disabling in the bios + psmouse.proto=imps -> touchpad disabled,
> >   trackstick + buttons working
> > - enabled in the bios + psmouse.proto=imps -> touchpad barely usable,
> >   trackstick + buttons working
> > 
> > That should cover all the cases :)
> > 
> Actually, one is missing: “touchpad enabled / without
> psmouse.proto=imps”, but it doesn't really matter for me since I'm not
> using the touchpad anyway.

Yes, but that is the most used case, and if this one was not working
then the patch series would have been moot :)

> 
> But that also means if I want a disabled touchpad (without using xinput
> disable) I'm forced to use psmouse.proto=imps. It does work fine but I
> then lose the speed and sensitivity attributes (in
> /sys/devices/platform/i8042/...) and the Trackpoint device itself is
> gone from the input subsystem (everything goes to the touchpad one).
> 
> I find that a bit confusing, and think it'd be best if the touchpad
> disabling could be handled even when IMPS/2 is not used, but maybe it's
> impossible to do?

I honestly did not spent much time understanding the IMPS/2 boot option
and the way it is advertised by the bios. I just made the above
statements.

To solve your problem, your desktop environment must have a "disable
touchpad" switch in the configuration panel. At least, gnome has. This
way, your settings should come back at each login.
And if this is not sufficient enough, you can always add a xorg.conf.d
snippet which disables the touchpad when X starts.

Cheers,
Benjamin

> 
> Sorry for the ~user-related questions.
> 
> Regards,
> -- 
> Yves-Alexis

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 17:06           ` Benjamin Tissoires
@ 2015-03-19 17:43             ` Dmitry Torokhov
  2015-03-19 18:29               ` Benjamin Tissoires
  2015-03-20 13:59             ` Yves-Alexis Perez
  1 sibling, 1 reply; 31+ messages in thread
From: Dmitry Torokhov @ 2015-03-19 17:43 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Yves-Alexis Perez, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Thu, Mar 19, 2015 at 01:06:49PM -0400, Benjamin Tissoires wrote:
> On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > On Thu, Mar 19, 2015 at 11:58:31AM -0400, Benjamin Tissoires wrote:
> > > On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > > Again, sorry, I thought I answered it. With the kernel patches applied:
> > > - disabled in the bios without psmouse.proto=imps -> touchpad still
> > >   enabled, trackstick + buttons working
> > > - disabling in the bios + psmouse.proto=imps -> touchpad disabled,
> > >   trackstick + buttons working
> > > - enabled in the bios + psmouse.proto=imps -> touchpad barely usable,
> > >   trackstick + buttons working
> > > 
> > > That should cover all the cases :)
> > > 
> > Actually, one is missing: “touchpad enabled / without
> > psmouse.proto=imps”, but it doesn't really matter for me since I'm not
> > using the touchpad anyway.
> 
> Yes, but that is the most used case, and if this one was not working
> then the patch series would have been moot :)
> 
> > 
> > But that also means if I want a disabled touchpad (without using xinput
> > disable) I'm forced to use psmouse.proto=imps. It does work fine but I
> > then lose the speed and sensitivity attributes (in
> > /sys/devices/platform/i8042/...) and the Trackpoint device itself is
> > gone from the input subsystem (everything goes to the touchpad one).
> > 
> > I find that a bit confusing, and think it'd be best if the touchpad
> > disabling could be handled even when IMPS/2 is not used, but maybe it's
> > impossible to do?

It is possible, but that task is on Lenovo's BIOS engineers to
implement. The kernel queries the device and responds accordingly; there
is no separate "check BIOS settings" pass. "proto=imps" simply tells
psmouse driver to skip the advanced protocol "magic knocks" and try
initalize mouse as MS Intellimouse compatible device.

I'd be curious to compare i8042 data (i8042.debug) from booting with
both proto=imps and without (note that keystrokes for your password will
be recorded there if you decide to post the logs), but again just for
curiosity's sake as I wonder how exactly they done disabling that it
only works for Intellimouse mode.

Thanks.

-- 
Dmitry

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 17:43             ` Dmitry Torokhov
@ 2015-03-19 18:29               ` Benjamin Tissoires
  0 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-03-19 18:29 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Yves-Alexis Perez, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Mar 19 2015 or thereabouts, Dmitry Torokhov wrote:
> On Thu, Mar 19, 2015 at 01:06:49PM -0400, Benjamin Tissoires wrote:
> > On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > > On Thu, Mar 19, 2015 at 11:58:31AM -0400, Benjamin Tissoires wrote:
> > > > On Mar 19 2015 or thereabouts, Yves-Alexis Perez wrote:
> > > > Again, sorry, I thought I answered it. With the kernel patches applied:
> > > > - disabled in the bios without psmouse.proto=imps -> touchpad still
> > > >   enabled, trackstick + buttons working
> > > > - disabling in the bios + psmouse.proto=imps -> touchpad disabled,
> > > >   trackstick + buttons working
> > > > - enabled in the bios + psmouse.proto=imps -> touchpad barely usable,
> > > >   trackstick + buttons working
> > > > 
> > > > That should cover all the cases :)
> > > > 
> > > Actually, one is missing: “touchpad enabled / without
> > > psmouse.proto=imps”, but it doesn't really matter for me since I'm not
> > > using the touchpad anyway.
> > 
> > Yes, but that is the most used case, and if this one was not working
> > then the patch series would have been moot :)
> > 
> > > 
> > > But that also means if I want a disabled touchpad (without using xinput
> > > disable) I'm forced to use psmouse.proto=imps. It does work fine but I
> > > then lose the speed and sensitivity attributes (in
> > > /sys/devices/platform/i8042/...) and the Trackpoint device itself is
> > > gone from the input subsystem (everything goes to the touchpad one).
> > > 
> > > I find that a bit confusing, and think it'd be best if the touchpad
> > > disabling could be handled even when IMPS/2 is not used, but maybe it's
> > > impossible to do?
> 
> It is possible, but that task is on Lenovo's BIOS engineers to
> implement. The kernel queries the device and responds accordingly; there
> is no separate "check BIOS settings" pass. "proto=imps" simply tells
> psmouse driver to skip the advanced protocol "magic knocks" and try
> initalize mouse as MS Intellimouse compatible device.
> 
> I'd be curious to compare i8042 data (i8042.debug) from booting with
> both proto=imps and without (note that keystrokes for your password will
> be recorded there if you decide to post the logs), but again just for
> curiosity's sake as I wonder how exactly they done disabling that it
> only works for Intellimouse mode.
> 

There you go:
http://people.freedesktop.org/~tissoire/boot_bios_disabled_with_imps.txt
http://people.freedesktop.org/~tissoire/boot_bios_disabled_no_imps.txt

An no, there is no trace of my password on this, I carefully ssh to the
box to extract the logs :)

Cheers,
Benjamin

> Thanks.
> 
> -- 
> Dmitry

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 17:06           ` Benjamin Tissoires
  2015-03-19 17:43             ` Dmitry Torokhov
@ 2015-03-20 13:59             ` Yves-Alexis Perez
  1 sibling, 0 replies; 31+ messages in thread
From: Yves-Alexis Perez @ 2015-03-20 13:59 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Thu, Mar 19, 2015 at 01:06:49PM -0400, Benjamin Tissoires wrote:
> To solve your problem, your desktop environment must have a "disable
> touchpad" switch in the configuration panel. At least, gnome has. This
> way, your settings should come back at each login.
> And if this is not sufficient enough, you can always add a xorg.conf.d
> snippet which disables the touchpad when X starts.

In the end, I did it that way. Using psmouse.proto=imps also means I
lose the speed/sensitivity settings on the TrackPoint, and the new
defaults are not really usable for me (following the advice in that
thread, I've set them to 105 and 160, now I need to cook an udev rule or
something to set them at boot).

I tried to generate i8042.debug logs for:

- BIOS touchpad disable / psmouse.proto=imps
- BIOS touchpad enable  / psmouse.proto=imps
- BIOS touchpad disable
- BIOS touchpad enable

but the logs for the two last ones are imcomplete, I get:

Mar 20 12:53:21 balvenie systemd-journal[368]: Missed 2672 kernel
messages

so I miss the initialization which I guess is the most useful part.

Regards,
-- 
Yves-Alexis

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-03-19 15:58       ` Benjamin Tissoires
  2015-03-19 16:47         ` Yves-Alexis Perez
@ 2015-04-09 12:59         ` Yves-Alexis Perez
  2015-04-09 13:56           ` Benjamin Tissoires
  1 sibling, 1 reply; 31+ messages in thread
From: Yves-Alexis Perez @ 2015-04-09 12:59 UTC (permalink / raw)
  To: Benjamin Tissoires, Dmitry Torokhov
  Cc: Andrew Duggan, Hans de Goede, Peter Hutterer, linux-input, linux-kernel

On jeu., 2015-03-19 at 11:58 -0400, Benjamin Tissoires wrote:
> > 
> > Am I right? Thanks for the information, I'll also try to point our
> > kernel maintainers to that thread and ask them if it's possible to
> > backport them to the 3.16 kernel for Jessie.
> 
> Yes, please do. For the record, they are already in Fedora.

I've opened a Debian bug [1] to request the patch serie to be backported
to the 3.16 kernel used by Debian and Ubuntu, but Ben Hutchings asked
for more information than just the merge commit id.

The merge contains the following commits:

09d042a2eb90ee2c86d80c48ad096ae3f5776cef Revert "Input: synaptics - use dmax in input_mt_assign_slots"
6067fe5e0bf29f525561c8281d01011cfc9ebbd4 Merge branch 'synaptics' into for-linus
8f004f3f4daf5dc98dc78f8e62497ad834053855 Input: synaptics - remove X250 from the topbuttonpad list
860e6f7fcbe5653ec4e394f9ee335f2032398beb Input: synaptics - remove X1 Carbon 3rd gen from the topbuttonpad list
cdd9dc195916ef5644cfac079094c3c1d1616e4c Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series
3adde1f59195df2965f632e22b31f97fb371612f Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
06aa374bc70468b517dd36b95c48c8f391c08a27 Input: synaptics - retrieve the extended capabilities in query $10
b57a7128be24062b5b5b26032b7cd58f1651547e Input: synaptics - do not retrieve the board id on old firmwares
ebc80840b850db72f7ae84fbcf77630ae5409629 Input: synaptics - handle spurious release of trackstick buttons
dc5465dc8a6d5cae8a0e1d8826bdcb2e4cb261ab Input: synaptics - fix middle button on Lenovo 2015 products
02e07492cdfae9c86e3bd21c0beec88dbcc1e9e8 Input: synaptics - skip quirks when post-2013 dimensions
5b3089ddb540401c1ad2e385a03d7e89ff954585 Input: synaptics - support min/max board id in min_max_pnpid_table
b05f4d1c332a22f98c037fa64f249aa30877adaf Input: synaptics - remove obsolete min/max quirk for X240
ac097930f0730a9b777737de2b51e0fc49d2be7a Input: synaptics - query min dimensions for fw v8.1
9aff65982d0f58a78a27769fba7e97bc937b2593 Input: synaptics - log queried and quirked dimension values
8b04baba10b007f8b6c245a50be73cf09cc3a414 Input: synaptics - split synaptics_resolution(), query first

Are they all needed or is there a more minimal but still working list?

Thanks for your work and regards.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780862
-- 
Yves-Alexis

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

* Re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
  2015-04-09 12:59         ` Yves-Alexis Perez
@ 2015-04-09 13:56           ` Benjamin Tissoires
  0 siblings, 0 replies; 31+ messages in thread
From: Benjamin Tissoires @ 2015-04-09 13:56 UTC (permalink / raw)
  To: Yves-Alexis Perez
  Cc: Dmitry Torokhov, Andrew Duggan, Hans de Goede, Peter Hutterer,
	linux-input, linux-kernel

On Apr 09 2015 or thereabouts, Yves-Alexis Perez wrote:
> On jeu., 2015-03-19 at 11:58 -0400, Benjamin Tissoires wrote:
> > > 
> > > Am I right? Thanks for the information, I'll also try to point our
> > > kernel maintainers to that thread and ask them if it's possible to
> > > backport them to the 3.16 kernel for Jessie.
> > 
> > Yes, please do. For the record, they are already in Fedora.
> 
> I've opened a Debian bug [1] to request the patch serie to be backported
> to the 3.16 kernel used by Debian and Ubuntu, but Ben Hutchings asked
> for more information than just the merge commit id.
> 
> The merge contains the following commits:
> 
> 09d042a2eb90ee2c86d80c48ad096ae3f5776cef Revert "Input: synaptics - use dmax in input_mt_assign_slots"
> 6067fe5e0bf29f525561c8281d01011cfc9ebbd4 Merge branch 'synaptics' into for-linus
> 8f004f3f4daf5dc98dc78f8e62497ad834053855 Input: synaptics - remove X250 from the topbuttonpad list
> 860e6f7fcbe5653ec4e394f9ee335f2032398beb Input: synaptics - remove X1 Carbon 3rd gen from the topbuttonpad list
> cdd9dc195916ef5644cfac079094c3c1d1616e4c Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series
> 3adde1f59195df2965f632e22b31f97fb371612f Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
> 06aa374bc70468b517dd36b95c48c8f391c08a27 Input: synaptics - retrieve the extended capabilities in query $10
> b57a7128be24062b5b5b26032b7cd58f1651547e Input: synaptics - do not retrieve the board id on old firmwares
> ebc80840b850db72f7ae84fbcf77630ae5409629 Input: synaptics - handle spurious release of trackstick buttons
> dc5465dc8a6d5cae8a0e1d8826bdcb2e4cb261ab Input: synaptics - fix middle button on Lenovo 2015 products
> 02e07492cdfae9c86e3bd21c0beec88dbcc1e9e8 Input: synaptics - skip quirks when post-2013 dimensions
> 5b3089ddb540401c1ad2e385a03d7e89ff954585 Input: synaptics - support min/max board id in min_max_pnpid_table
> b05f4d1c332a22f98c037fa64f249aa30877adaf Input: synaptics - remove obsolete min/max quirk for X240
> ac097930f0730a9b777737de2b51e0fc49d2be7a Input: synaptics - query min dimensions for fw v8.1
> 9aff65982d0f58a78a27769fba7e97bc937b2593 Input: synaptics - log queried and quirked dimension values
> 8b04baba10b007f8b6c245a50be73cf09cc3a414 Input: synaptics - split synaptics_resolution(), query first
> 
> Are they all needed or is there a more minimal but still working list?

8b04baba...b57a7128 are marked as stable@ and will/should be backported
in debian too. This leaves us the minimum patches to backport in
addition to those 9:
06aa374bc70468b517dd36b95c48c8f391c08a27 Input: synaptics - retrieve the extended capabilities in query $10
3adde1f59195df2965f632e22b31f97fb371612f Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
cdd9dc195916ef5644cfac079094c3c1d1616e4c Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series

09d042a2eb (Revert "Input: synaptics - use dmax in
input_mt_assign_slots") is only required if the reverted commit is
already in the debian tree, which I doubt given that it was introduced
in v3.19 or v4.0.

Hope this helps.

Cheers,
Benjamin

> 
> Thanks for your work and regards.
> 
> [1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780862
> -- 
> Yves-Alexis

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

* re: [PATCH v2 0/7] New Lenovos 2015 touchpads: party time!
@ 2015-02-21 23:22 Michael Mullin
  0 siblings, 0 replies; 31+ messages in thread
From: Michael Mullin @ 2015-02-21 23:22 UTC (permalink / raw)
  To: linux-kernel, benjamin.tissoires

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

I have applied Benjamin's Lenovo touchpad patches onto
the 3.19 kernel at sha of 18a8d49973667aa016e68826eeb374788b7c63b0
(Feb 21).

In conjunction with synaptic touchpad application found at
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/
(sha of 37d34f0356cc556dd8a49ec5d1ed64d49417a9b2 jan 15),
and with the additional configuration file

# cat /etc/X11/xorg.conf.d/20-lenovo-touchpad.conf
Section "InputClass"
	Identifier	"Trackpoint Wheel Emulation"
	MatchProduct	"TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc.
Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with
TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
	MatchDevicePath	"/dev/input/event*"
	Option		"EmulateWheel"		"true"
	Option		"EmulateWheelButton"	"2"
	Option		"Emulate3Buttons"	"false"

 both my trackpad and touchpoint (and the left and right touchpoint
buttons, along with the middle click and middle scroll)
work as expected on my Lenovo X1 Carbon 3rd Gen.

I am sure that all owners of the new Lenovo laptops would
appreciate these patches going into the 3.20 kernel

Thank you
Michael Mullin


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

end of thread, other threads:[~2015-04-09 13:56 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-06 20:04 [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
2015-02-06 20:04 ` [PATCH v2 1/7] Input: synaptics - fix middle button on Lenovo 2015 products Benjamin Tissoires
2015-02-06 20:04 ` [PATCH v2 2/7] Input: synaptics - handle spurious release of trackstick buttons Benjamin Tissoires
2015-02-06 20:04 ` [PATCH v2 3/7] Input: synaptics - do not retrieve the board id on old firmwares Benjamin Tissoires
2015-02-06 20:04 ` [PATCH v2 4/7] Input: synaptics - retrieve the extended capabilities in query $10 Benjamin Tissoires
2015-02-06 20:04 ` [PATCH v2 5/7] Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015 Benjamin Tissoires
2015-02-06 20:04 ` [PATCH v2 6/7] Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series Benjamin Tissoires
2015-03-09  6:45   ` Dmitry Torokhov
2015-02-06 20:04 ` [PATCH v2 7/7] Input: synaptics - Remove X1 Carbon 3rd gen from the topbuttonpad list Benjamin Tissoires
2015-02-17  3:23 ` [PATCH v2 0/7] New Lenovos 2015 touchpads: party time! Benjamin Tissoires
2015-02-25 14:36   ` Benjamin Tissoires
2015-02-25 14:58     ` Hans de Goede
2015-03-09  6:46       ` Dmitry Torokhov
2015-03-09  8:24         ` Hans de Goede
2015-03-09 19:36           ` Benjamin Tissoires
2015-03-10  6:17             ` Steven Noonan
2015-03-10  7:23               ` Hans de Goede
2015-03-10 18:35                 ` Steven Noonan
2015-03-16 14:46             ` Benjamin Tissoires
2015-03-19 14:24 ` Yves-Alexis Perez
2015-03-19 14:46   ` Benjamin Tissoires
2015-03-19 15:25     ` Yves-Alexis Perez
2015-03-19 15:58       ` Benjamin Tissoires
2015-03-19 16:47         ` Yves-Alexis Perez
2015-03-19 17:06           ` Benjamin Tissoires
2015-03-19 17:43             ` Dmitry Torokhov
2015-03-19 18:29               ` Benjamin Tissoires
2015-03-20 13:59             ` Yves-Alexis Perez
2015-04-09 12:59         ` Yves-Alexis Perez
2015-04-09 13:56           ` Benjamin Tissoires
2015-02-21 23:22 Michael Mullin

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