Re: [PATCH] mousedev: Fix scrollwheel thingy on IBM ScrollPoint mice

From: Dmitry Torokhov
Date: Wed Oct 27 2004 - 01:36:31 EST


On Wednesday 27 October 2004 12:51 am, Vojtech Pavlik wrote:
> On Tue, Oct 26, 2004 at 07:33:50PM -0500, Dmitry Torokhov wrote:
>
> > > > This patch limits the scroll wheel movements to be either +1 or -1 on
> > > > the event -> emulated PS/2 level. I chose to implement it there because
> > > > mousedev emulates Microsoft mice but the real ones almoust never return
> > > > a bigger value than 1 (or -1).
> > > > ...
> > > > +#ifdef CONFIG_INPUT_MOUSEDEV_WHEELFIX
> > > > + if (value) { value = (value < 0 ? -1 : 1); }
> > > > +#endif /* CONFIG_INPUT_MOUSEDEV_WHEELFIX */
> > >
> > > This is really not a thing which we can put behind compile-time config.
> > >
> > > Can we come up with a fix which works correctly on all hardware? If not,
> > > this workaround will need to be enabled by some sort of runtime detection.
> > >
> >
> > Unless someone (Vojtech?) has an objection I think we should always have
> > this workaround activated - after all mousedev provides legacy emulation
> > mostly for XFree/XOrg benefit anyway. Clients accessing data through evdev
> > will see the full picture regardless.
>
> We can have a workaround for XOrg, but not one like this. This will make
> fast scrolling unreliable. I have standard Microsoft-compatible mice
> which do report more than one scroll tick per report, if you scroll the
> wheel fast enough, and this throws away the extra ticks.
>
> We would have to split the value into multiple events which would each
> report a 1 or -1.
>

I have taken a look at XFree/XOrg sources and it seems that they should
not have -1/1 problem but values outside of limits allowed for Intellimouse
or Explorer protocols will cause re-evaluation of protocol mode. We probably
just clamp values to protocol limits (-8/+7 for intellimouse and explorer
modes) and be done with it.

--
Dmitry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/