Thread (6 messages) 6 messages, 4 authors, 2009-01-02

Re: 2.6.28 thinks that my PS/2 mouse is a touchpad

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2008-12-30 09:15:44
Also in: lkml

Possibly related (same subject, not in this thread)

On Monday 29 December 2008 22:03:35 Alexander E. Patrakov wrote:
Arjan Opmeer wrote:
quoted
On Sat, Dec 27, 2008 at 02:06:29PM +0500, Alexander E. Patrakov wrote:
quoted
elantech.c: Elantech version query result 0x00, 0x01, 0x64.
elantech.c: assuming hardware version 1, firmware version 0.100
elantech.c: Synaptics capabilities query result 0x00, 0x02, 0x64.
However, all version query results I have seen from Elantech touchpads
have a non-zero first byte and a zero second byte. So we could test for
that to prevent this mouse from being detected as a touchpad.

Dmitry, do you think something like this is sufficient?
--- elantech.c.ORIG	2008-12-29 19:35:01.000000000 +0100
+++ elantech.c.NEW	2008-12-29 19:38:59.000000000 +0100
@@ -618,6 +618,10 @@ int elantech_init(struct psmouse *psmous
 	}
 	pr_info("elantech.c: Elantech version query result 0x%02x, 0x%02x,
0x%02x.\n", param[0], param[1], param[2]);
+	if (param[0] == 0 || param[1] != 0) {
+		pr_info("elantech.c: Probably not a real Elantech touchpad.
Aborting.\n"); +		goto init_fail;
+	}
 	etd->fw_version_maj = param[0];
 	etd->fw_version_min = param[2];
This is still slightly wrong. The mouse does work, but is misnamed in
the dmesg output and in /proc/bus/input/devices:

psmouse serio1: ID: 10 00 64<6>elantech.c: Elantech version query result
0x00, 0x01, 0x64.
elantech.c: Probably not a real Elantech touchpad. Aborting.
input: ImExPS/2 Elantech Touchpad as /class/input/input8
Yeah, elantech_init() is too late, we need to do something in
elantech_detect()... What did /proc/bus/input/devices show before
2.6.28? Logitech, right? Maybe we need to pull part of Logitech check (number
of buttons for example) from logips2pp.c. We'd need to test with real elantech
touchpads too though.

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