Google luky.org euqset.org

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] ALPS touchpad detection fix


Denis Vlasenko <vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxx>
---

 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@xxxxxxxxx
http://web.telia.com/~u89404340
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


$B$3$N>pJs$,$"$J$?$NC5$7$F$$?$b$N$+$I$&$+A*Br$7$F$/$@$5$!#(B
yes/$B$^$5$K$3$l$@!*(B   no/$B0c$&$J$!(B   part/$B0lIt8+$D$+$C$?(B   try/$B$3$l$G;n$7$F$_$k(B

$B$"$J$?$,C5$7$F$$?>pJs$O$I$N$h$&$J$3$H$+!"$4<+M3$K5-F~2<$5$!#FC$K!V$^$5$K$3$l$@!*!W$H8@$&>l9g$O5-F~$r$*4j$$7$^$9!#(B
$BNc(B:$B!VJ#?t$N%^%7%s$+$i(BCATV$B7PM3$G(Bipmasquerade$B$rMxMQ$7$F(BWeb$B$r;2>H$7$?$>l9g$N@_Dj$K$D$$F!W(B
References: