[PATCH] elantech: Fix detection of touchpad on ASUS s301l

Subsystems: input (keyboard, mouse, joystick, touchscreen) drivers, the rest

STALE4362d

2 messages, 2 authors, 2014-09-08 · open the first message on its own page

[PATCH] elantech: Fix detection of touchpad on ASUS s301l

From: Hans de Goede <hidden>
Date: 2014-09-03 14:24:02

http://mariusmonton.com/?p=489

Cc: stable@vger.kernel.org
Reported-and-tested-by: Màrius Monton <redacted>
Signed-off-by: Hans de Goede <redacted>
---
 drivers/input/mouse/elantech.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index daaf82f..fad7367 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -1331,6 +1331,13 @@ static bool elantech_is_signature_valid(const unsigned char *param)
 	if (param[1] == 0)
 		return true;
 
+	/*
+	 * Some models have a revision higher then 20. Meaning param[2] may
+	 * be 10 or 20, skip the rates check for these.
+	 */
+	if (param[0] == 0x46 && (param[1] & 0xef) == 0x0f && param[2] < 40)
+		return true;
+
 	for (i = 0; i < ARRAY_SIZE(rates); i++)
 		if (param[2] == rates[i])
 			return false;
-- 
2.1.0

Re: [PATCH] elantech: Fix detection of touchpad on ASUS s301l

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2014-09-08 21:40:59

On Wed, Sep 03, 2014 at 04:24:02PM +0200, Hans de Goede wrote:
http://mariusmonton.com/?p=489

Cc: stable@vger.kernel.org
Reported-and-tested-by: Màrius Monton <redacted>
Signed-off-by: Hans de Goede <redacted>
Applied, thank you.
quoted hunk
---
 drivers/input/mouse/elantech.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index daaf82f..fad7367 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -1331,6 +1331,13 @@ static bool elantech_is_signature_valid(const unsigned char *param)
 	if (param[1] == 0)
 		return true;
 
+	/*
+	 * Some models have a revision higher then 20. Meaning param[2] may
+	 * be 10 or 20, skip the rates check for these.
+	 */
+	if (param[0] == 0x46 && (param[1] & 0xef) == 0x0f && param[2] < 40)
+		return true;
+
 	for (i = 0; i < ARRAY_SIZE(rates); i++)
 		if (param[2] == rates[i])
 			return false;
-- 
2.1.0
-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help