Experimental PS/2 driver with heuristic synchronization
Hi!
I wanted to try if my thoughts about how to reliably synchronize the PS/2 mouse stream would work, and as a test I created this driver.
It supports only bare PS/2 protocol, because it's just an experiment.
The driver drops every 63rd byte from the input stream to simulate missing bytes, yet it never loses sync, and the mouse is perfectly usable.
Try it, take a look. It should be possible to extend this to all the other protocols the current psmouse Linux driver supports.
[Nevertheless, we still should try to find the cause of the missing
bytes, as those don't happen in 2.4 on many of the affected machines.]
[email protected], 2004-06-30 14:32:06+02:00, [email protected]
input: PS/2 mouse stream autosynchronization experiment.
Kconfig | 11 + Makefile | 1 ps2sync.c | 356 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 368 insertions(+)
drivers/input/mouse/Kconfig +11 -0
@@ -36,6 +36,17 @@ To compile this driver as a module, choose M here: the module will be called psmouse. +config MOUSE_PS2SYNC + tristate "Experimental PS/2 autosync mouse driver" + default y + depends on INPUT && INPUT_MOUSE + select SERIO + select SERIO_I8042 if PC + select SERIO_GSCPS2 if GSC + ---help--- + This is an Experiment on autosyncing the PS/2 mouse data stream. + It may or may not work. + config MOUSE_SERIAL tristate "Serial mouse" depends on INPUT && INPUT_MOUSE
drivers/input/mouse/Makefile +1 -0
@@ -11,6 +11,7 @@ obj-$(CONFIG_MOUSE_MAPLE) += maplemouse.o obj-$(CONFIG_MOUSE_PC110PAD) += pc110pad.o obj-$(CONFIG_MOUSE_PS2) += psmouse.o +obj-$(CONFIG_MOUSE_PS2SYNC) += ps2sync.o obj-$(CONFIG_MOUSE_SERIAL) += sermouse.o obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o
drivers/input/mouse/ps2sync.c new file +356 -0
356 lines not on this page · raw message
Signature · 2 lines
Vojtech Pavlik SuSE Labs, SuSE CR
Quoted 5 lines · Vojtech Pavlik
Hi!
I wanted to try if my thoughts about how to reliably synchronize the PS/2 mouse stream would work, and as a test I created this driver.
This is an awesome idea. I've always had intermittent problems with mice freaking out under Linux. Most of the time, it only freaks out for a few seconds, but sometimes, I have to ctrl-alt-F1+ctrl-alt-F7 to get the mouse back.
A patck like yours has been needed for a long time. Good show!