Messages in this thread | | | Date | Tue, 03 Aug 2004 21:36:35 +0200 | From | Marko Macek <> | Subject | Re: KVM & mouse wheel [was PATCH] |
| |
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? > > Insane means that the mouse is moving really slowly, jumping around and buttons work erratically. I did some more experiments and it seems that if I put this command before the resolution/rate/scaling setting it seems to do no harm (the mouse works perfectly). I'd still prefer to remove it since I see no need for it.
>>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? > > Yes, without the KVM the mouse works perfectly.
> > >>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. > > > Yeah, that's why I decided to fallback to im/exps modes instead.
I have now also successfuly used the extra mouse buttons with 'exps' protocol. So only the 'task' button is not supported with my previous patch (because it requires PS2++ mode).
>>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. > > I have also seen comments in X sources about needing to reset the mouse after each unsuccessful probe for best compatibility.
Mark
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |