linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Add a quirk for the Dell XPS 13 (2015) when in PS/2 mode.
@ 2015-02-19  1:43 Mario Limonciello
  2015-02-19 17:16 ` Dmitry Torokhov
  0 siblings, 1 reply; 37+ messages in thread
From: Mario Limonciello @ 2015-02-19  1:43 UTC (permalink / raw)
  To: dmitry.torokhov; +Cc: LKML, linux-input, Mario Limonciello

When the touchpad for the Dell XPS 13 is running in PS/2 mode the
EC has a tendency to glitch causing the driver to receive bad data.
This doesn't affect the usage of the touchpad until enough bad data
is received that causes the driver to reset and "freeze".

Signed-off-by: Mario Limonciello <mario_limonciello@dell.com>
---
 drivers/input/mouse/synaptics.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 7e705ee..4dc456c 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -1244,6 +1244,21 @@ static int synaptics_reconnect(struct psmouse *psmouse)
 	return 0;
 }
 
+static bool dell_ec_glitch;
+
+static const struct dmi_system_id dell_dmi_table[] __initconst = {
+#if defined(CONFIG_DMI) && defined(CONFIG_X86)
+	{
+		/* XPS 13 (2015) */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "XPS 13 9343"),
+		},
+	},
+	{ }
+#endif
+};
+
 static bool impaired_toshiba_kbc;
 
 static const struct dmi_system_id toshiba_dmi_table[] __initconst = {
@@ -1334,6 +1349,8 @@ void __init synaptics_module_init(void)
 	 * so we have to resort to checking DMI.
 	 */
 	is_forcepad = dmi_check_system(forcepad_dmi_table);
+	dell_ec_glitch = dmi_check_system(dell_dmi_table);
+
 }
 
 static int __synaptics_init(struct psmouse *psmouse, bool absolute_mode)
@@ -1426,6 +1443,17 @@ static int __synaptics_init(struct psmouse *psmouse, bool absolute_mode)
 		psmouse->rate = 40;
 	}
 
+	/*
+	 * Some Dell touchpads have a problem where the EC will glitch causing
+	 * bad packets that are otherwise harmless unless they cause psmouse
+	 * to reset.
+	 */
+	if (psmouse->resetafter > 0 && dell_ec_glitch) {
+		psmouse_info(psmouse, "Dell %s detected, disabling tpad reset.\n",
+			dmi_get_system_info(DMI_PRODUCT_NAME));
+		psmouse->resetafter = 0;
+	}
+
 	if (!priv->absolute_mode && SYN_ID_DISGEST_SUPPORTED(priv->identity)) {
 		err = device_create_file(&psmouse->ps2dev.serio->dev,
 					 &psmouse_attr_disable_gesture.dattr);
-- 
1.9.1


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

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

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-19  1:43 [PATCH] Add a quirk for the Dell XPS 13 (2015) when in PS/2 mode Mario Limonciello
2015-02-19 17:16 ` Dmitry Torokhov
2015-02-19 18:16   ` Mario Limonciello
2015-02-20 18:47     ` Dmitry Torokhov
2015-02-20 19:24       ` Pali Rohár
2015-02-20 19:56         ` Mario Limonciello
2015-02-20 20:41           ` Pali Rohár
2015-02-20 21:21             ` Mario Limonciello
2015-02-20 21:31               ` Benjamin Tissoires
2015-02-20 21:40                 ` Mario Limonciello
2015-02-20 21:46                   ` Pali Rohár
2015-02-20 21:54                     ` Mario Limonciello
2015-02-22 16:55               ` Pali Rohár
2015-02-23 23:31                 ` Mario Limonciello
2015-02-24  0:01                   ` Pali Rohár
2015-02-25 18:16                     ` [SUSPECT SPAM] " Mario Limonciello
2015-02-24  0:51                 ` Dmitry Torokhov
2015-02-25 18:26                   ` Mario Limonciello
2015-02-25 18:48             ` Mario Limonciello
2015-02-25 20:45               ` Pali Rohár
2015-03-14 19:17                 ` Benjamin Tissoires
2015-03-16 14:29                   ` Mario Limonciello
2015-03-16 14:40                     ` Benjamin Tissoires
2015-03-16 17:10                     ` Jason Ekstrand
2015-03-16 18:50                       ` Mario Limonciello
2015-03-16 20:42                         ` Jason Ekstrand
2015-03-16 20:50                           ` Mario Limonciello
2015-03-16 20:57                             ` Jason Ekstrand
2015-03-16 21:07                               ` Benjamin Tissoires
2015-03-17  0:45                                 ` Mario Limonciello
2015-04-10 22:39                 ` Pali Rohár
2015-04-10 23:07                   ` Mario Limonciello
2015-04-10 23:14                     ` Pali Rohár
2015-04-10 23:32                       ` Mario Limonciello
2015-04-11  2:19                         ` Ben Gamari
2015-04-13 18:55                           ` Mario Limonciello
2015-03-21 17:21           ` Ben Gamari

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