Synaptics touchpad + external mouse with Linux 2.6?

From: Krzysztof Halasa
Date: Sun Mar 21 2004 - 18:16:37 EST


Hi,

I have a notebook PC (an old Fujitsu-Siemens Liteline, celeron 600 etc)
with a Synaptics touchpad:

Synaptics Touchpad, model: 1
Firmware: 4.6
Sensor: 19
new absolute packet format
Touchpad has extended capability bits
-> multifinger detection
-> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio1

This notebook has external mouse+keyboard connector. Is it possible to
have both the touchpad and the external mouse simultaneously active in
their native modes? The hardware (keyboard controller) doesn't seem to
support the active multiplexing mode (by Synaptics and others):

drivers/input/serio/i8042.c: d3 -> i8042 (command) [3]
drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [3]
drivers/input/serio/i8042.c: 0f <- i8042 (return) [3]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [3]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [3]
drivers/input/serio/i8042.c: a9 <- i8042 (return) [3]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [3]
drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [3]
drivers/input/serio/i8042.c: 5b <- i8042 (return) [3]

It looks the keyboard controller just forwards all data from both
devices. I can set them (i.e. Linux and XFree86 driver) to IM PS/2 mode
and they will both work (Linux treats them as one device), but I can't
use touchpad's special features.

I was thinking about setting them to IM PS/2 mode first (both would go
IM PS/2) then switching to Synaptics mode (the mouse should ignore it).
On the receiving side, I could check if the packet is valid for IM or
Synaptics mode and pass it to the respective driver. Not sure if the
keyboard controller is fully transparent, though - it could be changing
data as outlined in the Synaptics PS2-MUX paper ("legacy hidden
multiplexing").

If I set Linux to Synaptics mode (i.e. modprobe psmouse without any
parameters), I can't use the external mouse as it produces 3-byte
packets by default (the kernel = synaptics.c prints "Synaptics driver
lost sync at byte 1").

What do you think?
--
Krzysztof Halasa, B*FH
-
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/