69523a2
From 555b84220a7c84c2faa1964d19733d867d7bf61f Mon Sep 17 00:00:00 2001
e58a971
From: Hans de Goede <hdegoede@redhat.com>
e58a971
Date: Thu, 10 Apr 2014 11:36:14 +0200
69523a2
Subject: [PATCH v3] synaptics: Add min/max quirk for ThinkPad T431s, L440,
69523a2
 L540, S1 Yoga and X1
e58a971
e58a971
We expect that all the Haswell series will need such quirks, sigh.
e58a971
e58a971
The T431s seems to be T430 hardware in a T440s case, using the T440s touchpad,
e58a971
with the same min/max issue.
e58a971
e58a971
The X1 Carbon 3rd generation name says 2nd while it is a 3rd generation.
e58a971
e58a971
The X1 and T431s share a PnPID with the T540p, but the reported ranges are
e58a971
closer to those of the T440s.
e58a971
69523a2
HdG: Squashed 5 quirk patches into one. T431s + L440 + L540 are written by me,
e58a971
S1 Yoga and X1 are written by Benjamin Tissoires.
e58a971
69523a2
Hdg: Standardized S1 Yoga and X1 values, Yoga uses the same touchpad as the
69523a2
X240, X1 uses the same touchpad as the T440.
69523a2
69523a2
Cc: stable@vger.kernel.org
e58a971
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
e58a971
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
e58a971
---
69523a2
 drivers/input/mouse/synaptics.c | 42 +++++++++++++++++++++++++++++++++++++++++
69523a2
 1 file changed, 42 insertions(+)
e58a971
e58a971
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
69523a2
index a8b57d7..7c9f509 100644
e58a971
--- a/drivers/input/mouse/synaptics.c
e58a971
+++ b/drivers/input/mouse/synaptics.c
69523a2
@@ -1566,6 +1566,14 @@ static const struct dmi_system_id min_max_dmi_table[] __initconst = {
e58a971
 		.driver_data = (int []){1232, 5710, 1156, 4696},
e58a971
 	},
e58a971
 	{
e58a971
+		/* Lenovo ThinkPad T431s */
e58a971
+		.matches = {
e58a971
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
e58a971
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T431"),
e58a971
+		},
e58a971
+		.driver_data = (int []){1024, 5112, 2024, 4832},
e58a971
+	},
e58a971
+	{
e58a971
 		/* Lenovo ThinkPad T440s */
e58a971
 		.matches = {
e58a971
 			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
69523a2
@@ -1574,6 +1582,14 @@ static const struct dmi_system_id min_max_dmi_table[] __initconst = {
e58a971
 		.driver_data = (int []){1024, 5112, 2024, 4832},
e58a971
 	},
e58a971
 	{
e58a971
+		/* Lenovo ThinkPad L440 */
e58a971
+		.matches = {
e58a971
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
e58a971
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L440"),
e58a971
+		},
e58a971
+		.driver_data = (int []){1024, 5112, 2024, 4832},
e58a971
+	},
e58a971
+	{
e58a971
 		/* Lenovo ThinkPad T540p */
e58a971
 		.matches = {
e58a971
 			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
69523a2
@@ -1581,6 +1597,32 @@ static const struct dmi_system_id min_max_dmi_table[] __initconst = {
e58a971
 		},
e58a971
 		.driver_data = (int []){1024, 5056, 2058, 4832},
e58a971
 	},
e58a971
+	{
69523a2
+		/* Lenovo ThinkPad L540 */
69523a2
+		.matches = {
69523a2
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
69523a2
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L540"),
69523a2
+		},
69523a2
+		.driver_data = (int []){1024, 5112, 2024, 4832},
69523a2
+	},
69523a2
+	{
e58a971
+		/* Lenovo Yoga S1 */
e58a971
+		.matches = {
e58a971
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
e58a971
+			DMI_EXACT_MATCH(DMI_PRODUCT_VERSION,
e58a971
+					"ThinkPad S1 Yoga"),
e58a971
+		},
69523a2
+		.driver_data = (int []){1232, 5710, 1156, 4696},
e58a971
+	},
e58a971
+	{
e58a971
+		/* Lenovo ThinkPad X1 Carbon Haswell (3rd generation) */
e58a971
+		.matches = {
e58a971
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
e58a971
+			DMI_MATCH(DMI_PRODUCT_VERSION,
e58a971
+					"ThinkPad X1 Carbon 2nd"),
e58a971
+		},
69523a2
+		.driver_data = (int []){1024, 5112, 2024, 4832},
e58a971
+	},
e58a971
 #endif
e58a971
 	{ }
e58a971
 };
e58a971
-- 
e58a971
1.9.0
e58a971