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

From: Kim Holviala
Date: Wed Oct 27 2004 - 01:47:38 EST


Vojtech Pavlik 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.

It wasn't an optimal solution, but just a quick hack that made the scrollpoint usable. BTW, I've tried with about a dozen wheelmice and all of them needed real misuse to get a packet where the scroll amount was more than 1....

Not that I'm claiming that those kind of mice don't exist. They do, one of them is this ScrollPoint that I'm using now.

We would have to split the value into multiple events which would each
report a 1 or -1.

That would be the right solution - I thought about it but deciced not to steal any more of my employers time.... Besides, I needed to slow the wheel/stick action down anyway since a light touch of the stick generates insane scroll events. In Windows with the default driver the stick operated like Home/End...



Kim

-
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/