Skip to contentSkip to conversation

Experimental PS/2 driver with heuristic synchronization

PATCH Vojtech Pavlik 2 participants 2 messages Jun 30, 2004 Input drivers

lore
Share & tools
lore
#0 lore raw

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
diff -Nru a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig
@@ -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
diff -Nru a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile
@@ -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
#1 lore raw
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!