Patch to fix imps2 emulation for usb mice in stable 2.2.X series

Kevin Hendricks khendricks at ivey.uwo.ca
Sun Mar 5 01:09:54 EST 2000


Hi Paul,

According to the XFree 4.0 developers bit 3 in the first character from all
imps/2 mice must be set.  This was not the case in early 2.3.X kernels but this
bug was found and fixed in later 2.3.XX kernels.

The Xfree 4.0 Xserver uses this fact to determine if characters read from a
imps/2 mouse are out-of-sync or not.

Because our 2.2.X kernel usb mouse.c code never properly sets this bit in the
first character, the XFree 4.0 Xservers are throwing out the first character
read from the mouse umaking for mouse mayhem.

Will you please install this patch into the 2.2.X stable kernel series?  It
will make our imps2 usb mouse properly follow the conventions for imps2 mice
and make it more like what the 2.3.XX kernels are doing right now

I have tried this patch with the latest XFree 3.9.18 Xserver, and with Xpmac
(rev 9) and an older Mac-On-Linux and it does not cause any problems.

Thanks.

Kevin


--- drivers/usb/mouse.c.prev	Fri Mar  3 17:18:37 2000
+++ drivers/usb/mouse.c	Fri Mar  3 17:19:56 2000
@@ -183,6 +183,7 @@
 		switch (state) {
 		case 0: { /* buttons and sign */
 			int buttons = mouse->buttons;
+                        buttons = buttons | 0x08; // set bit 3 to fit imps/2
 			mouse->buttons = 0;
 			if (mouse->dx < 0)
 				buttons |= 0x10;


p.s. In case the e-mail mangles this, I have attached the patch as a file also.

Thanks,

Kevin


--
Kevin B. Hendricks
Associate Professor of Operations and Information Technology
Richard Ivey School of Business, University of Western Ontario
London, Ontario  N6A-3K7  CANADA
khendricks at ivey.uwo.ca, (519) 661-3874, fax: 519-661-3959

-------------- next part --------------
A non-text attachment was scrubbed...
Name: usb_imps2.patch
Type: text/x-c++
Size: 360 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20000304/787ef054/attachment.bin>


More information about the Linuxppc-dev mailing list