I have a customer using a KVM device, the mouse works fine -until- the KVM is switched elsewhere and back. After that, the mouse sends garbage. X+Y movement data is completely hosed causing the mouse to jump around everywhere. If I remove the module and reload it, the mouse partially returns. X+Y movement is normal again however the buttons are now messed up. Sometimes the buttons seem constantly pressed or constantly released. The only way to recover normal mousing is to reboot. This didn't happen back on 2.6.0-test8 and I don't think it happened on 2.6.7. David Dmitry Torokhov wrote: >Hi, > >On Tuesday 03 August 2004 10:26 am, Marko Macek wrote: > > >>Hello! >> >>A few months ago I posted about problems with 2.6 kernel, KVM and mouse >>wheel. >> >>I was using 2.4 kernel until recently, but with the switch to FC2 with >>2.6 kernel this problem became much more annoying. >> >>My mouse is Logitech MX 510. >> >>I figured out a few things. >> >>1. Trying to set the mouse/kvm into a stream mode makes things insane. >>Since streaming mode is supposed to be the default, I propose not >>doing this at all. I haven't researched this further. >> >>- psmouse_command(psmouse, param, PSMOUSE_CMD_SETSTREAM); >> >> > >Could you describe what insane mean? If you take the KVM out of the picture >is the mouse still instane? > > > >>2. synaptics_detect hoses imps and exps detection. Resetting the mouse >>after failed detect fixes it. This makes 'imps' and 'exps' protocols >>work when used as proto=imps or proto=exps. Wheel works, I haven't tried >>the buttons. >> >> >> > >Again, does it work without the KVM? > > > >>3. PS2++ detection correctly detects Logitech MX mouse but doesn't >>enable the PS2PP protocol, because of unexpected results in this code: >> >> param[0] = param[1] = param[2] = 0; >> ps2pp_cmd(psmouse, param, 0x39); /* Magic knock */ >> ps2pp_cmd(psmouse, param, 0xDB); >> >> if ((param[0] & 0x78) == 0x48 && >> (param[1] & 0xf3) == 0xc2 && >> (param[2] & 0x03) == ((param[1] >> 2) & 3)) { >> ps2pp_set_smartscroll(psmouse); >> protocol = PSMOUSE_PS2PP; >> } >> >>The returned param array in my case is: 08 01 00 or 08 00 00 (hex) >>(without KVM: C8 C2 64) >> >>I don't understand what this code is trying to check or why the protocol >>is only set conditionally. If I set it unconditionally (swap last 2 >>lines) the PS2++ protocol now works including detection of all buttons >>(I don't really need the buttons, just the wheel). >> >> >> > >Apparently your KVM doctors the data stream from the mouse. The driver >tries to play safe and only switches to PS2++ protocol if mouse responds >properly, otherwise there is a chance that it uses PS2++ with mouse that >does not actually support it. > > > >>This is not included in the patch. The alternative solution >>is to reset the mouse again and resume probing for imps or exps. >> >> >> > >It will be probed for imps/exps if PS2++ fails. Now I suspect that your >particular KVM does not expect any extended probes and gets confused by >them. > > >