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

Dmitry Torokhov
2008-12-30T09:15:44Z

On Monday 29 December 2008 22:03:35 Alexander E. Patrakov wrote:
> Arjan Opmeer wrote:
> > On Sat, Dec 27, 2008 at 02:06:29PM +0500, Alexander E. Patrakov wrote:
> >> 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