Messages in this thread Patch in this message | | | Subject | Re: [PATCH] ALPS touchpad detection fix | From | Peter Osterlund <> | Date | 07 Jan 2005 23:17:03 +0100 |
| |
Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> writes:
> On Thursday 06 January 2005 18:54, Peter Osterlund wrote: > > My ALPS touchpad is not recognized because the device gets confused by > > the Kensington ThinkingMouse probe. It responds with "00 00 14" > > instead of the expected "00 00 64" to the "E6 report". > > > > Resetting the device before attempting the ALPS probe fixes the > > problem. > > ... > > /* > > * Try ALPS TouchPad > > */ > > + ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS); > > if (max_proto > PSMOUSE_IMEX && alps_detect(psmouse, set_properties) == 0) { > > if (!set_properties || alps_init(psmouse) == 0) > > return PSMOUSE_ALPS; > > You do reset even if max_proto <= PSMOUSE_IMEX and therefore > alps_detect won't be called. Is it intended?
Not really intended. (It shouldn't harm though because the mouse/touchpad is reset anyway before the IntelliMouse probe.)
Here is an updated patch that only does the reset when alps_detect() is going to be called.
Signed-off-by: Peter Osterlund <petero2@telia.com> ---
linux-petero/drivers/input/mouse/psmouse-base.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)
diff -puN drivers/input/mouse/psmouse-base.c~alps-fix drivers/input/mouse/psmouse-base.c --- linux/drivers/input/mouse/psmouse-base.c~alps-fix 2005-01-06 22:43:28.000000000 +0100 +++ linux-petero/drivers/input/mouse/psmouse-base.c 2005-01-07 22:51:45.000000000 +0100 @@ -451,14 +451,16 @@ static int psmouse_extensions(struct psm /* * Try ALPS TouchPad */ - if (max_proto > PSMOUSE_IMEX && alps_detect(psmouse, set_properties) == 0) { - if (!set_properties || alps_init(psmouse) == 0) - return PSMOUSE_ALPS; - + if (max_proto > PSMOUSE_IMEX) { + ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS); + if (alps_detect(psmouse, set_properties) == 0) { + if (!set_properties || alps_init(psmouse) == 0) + return PSMOUSE_ALPS; /* * Init failed, try basic relative protocols */ - max_proto = PSMOUSE_IMEX; + max_proto = PSMOUSE_IMEX; + } } if (max_proto > PSMOUSE_IMEX && genius_detect(psmouse, set_properties) == 0) _ -- Peter Osterlund - petero2@telia.com http://web.telia.com/~u89404340 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |