Hello all,

I am using the RedHat9(2.4.20-8) distro with XFree86-4.3.0-2.90.55.  I
am a developer for Win32/MFC and am new to the Linux world, but not
unfamiliar with it.  I was constantly annoyed by the fact that when I
changed my kvm over to the windows machine , and then back over to X or
a console, the mouse (both gpm and X) could not read the mouse any
longer (I am using IMPS2).

On the lists out on the net, the most common fix is to use the bare ps2
protocol which eliminates the wheel functionality, which I did not like.
So I downloaded the XFree86 4.3 distro to see if I could change it.

I talked with Vojtech Pavlik about the issue and he correctly pointed
out that in the 2.4 kernel, there is no real input driver layer and gpm
and X do the ps2 translation themselves and that is what would need to
be changed to rectify the situation (Thanks Vojtech).

So I have successfully modified mouse.c so that upon switching back, the
mouse re inits itself and does not go haywire.  I looked in CVS and
noticed that version 1.39 of mouse.c was changed to fix a kvm switching
issue, but that did not fix mine.

Anyway, I wanted to give this fix to the community for better or worse
and I am sure a more elegant solution could be adapted, but this fixes
the problem in my case and hopefully may help someone else out there as
well.

Regards,

Jeff Warren

P.S. If anyone is interested in the gpm patch, I have that as well for
gpm-1.19.3.



--- mouse.c     2004-09-12 22:15:04.000000000 -0700
+++ mousenew.c  2004-09-13 01:16:14.000000000 -0700
@@ -1347,6 +1347,15 @@
            dx = (pBuf[0] & 0x10) ?    pBuf[1]-256  :  pBuf[1];
            dy = (pBuf[0] & 0x20) ?  -(pBuf[2]-256) : -pBuf[2];
            dz = (char)pBuf[3];
+      /*Added by J.Warren 09/12/04 to fix kvm switching issue with
IMPS2  */
+      /*I don't know if this breaks NETPS2 and this is set to only work
without autoprobe   */
+      if (!pMse->autoProbe && (pBuf[0] & 0xc8) != 0x8)
+      {
+        buttons = dx = dy = dz = 0;
+        initMouseHW(pInfo);
+        }
+        /* End of kvm switch fix */
+
            if ((dz >= 7) || (dz <= -8)) {
                if (pMse->autoProbe && !(pBuf[3] & 0xC0)) {
                    SetMouseProto(pMse, PROT_EXPPS2);





_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to