[gpm]Re: PROBLEM: mousedev.c in 2.4.10 not working

Vojtech Pavlik vojtech@suse.cz
Thu, 27 Sep 2001 23:49:46 +0200


On Thu, Sep 27, 2001 at 09:21:09PM +0200, Jan D. wrote:

> > On Thu, Sep 27, 2001 at 06:53:06PM +0200, Jan D. wrote:
> > > 
> > > I downgraded gpm to 1.19.3 from 1.19.4 and then it worked OK.
> > > Sorry about that.  I will now go bug the gpm people instead.
> > 
> > 1.19.4 has new intelligent PS/2 code. It may be imperfect emulation on
> > mousedev's side still. GPM should be able to print its debugging
> > information somewhere. Most likely the ImPS/2 init succeeds on the
> > mousedev side, but GPM is thinking it failed for some reason.
> 
> Cc:ing the gpm list.
> 
> Gpm complains about this:
> /home/jhd/gpm-1.19.4/gpm[4970]: imps2: Auto-detected unknown mouse type 4,
>  assuming standard PS/2
> 
> This explains the "wrong protocol" behaviour.
> If type 4 should be taken care of by gpm or 4 is a bad value from mousedev
> seems to be the question.

It's a bug in mousedev. Type 4 is ExplorerPS/2, which GPM probably
doesn't know about. Anyway, mousedev should report 3 after the sequence
that GPM sends. Thanks for the detailed analysis.

You can use this patch:

--- linux-2.4.10/drivers/input/mousedev.c	Thu Sep 13 00:34:06 2001
+++ linux/drivers/input/mousedev.c	Thu Sep 27 23:47:59 2001
@@ -314,9 +314,9 @@
 
 			case 0xf2: /* Get ID */
 				switch (list->mode) {
-					case 0: list->ps2[1] = 0;
-					case 1: list->ps2[1] = 3;
-					case 2: list->ps2[1] = 4;
+					case 0: list->ps2[1] = 0; break;
+					case 1: list->ps2[1] = 3; break;
+					case 2: list->ps2[1] = 4; break;
 				}
 				list->bufsiz = 2;
 				break;

-- 
Vojtech Pavlik
SuSE Labs