Re: Synaptics touchpad + external mouse with Linux 2.6?

From: Dmitry Torokhov
Date: Mon Mar 22 2004 - 23:33:47 EST


On Monday 22 March 2004 09:41 pm, Joshua Kwan wrote:
> On Mon, 22 Mar 2004 07:16:57 +0100, Vojtech Pavlik wrote:
> > I'm sorry to say it, but it's not possible. Well, it might be, but still
> > the magic to recognize which device is sending the data would be rather
> > crazy.
>
> Forgive me if I'm being naive, but...
>
> Why can't synaptics be transparent? Why can't it do all the stuff it
> requires special userspace things for in kernel space?
>
> I should think that mapping the scroll buttons to their normal PS/2
> equivalents on a Synaptics touchpad is possible in kernel space.
>
> A friend recently expressed his discontent with this condition when he
> tried to plug in another mouse and use it while the Synaptics touchpad was
> still present.
>
> So, please enlighten me...
>

Because it is not implementation, it is hardware limitation. Synaptics native
protocol uses 6 bytes, standard PS/2 3 or 4. The protocols are not compatible
at all so unless the PC has an active multiplexing controller (which provides
up to 4 completely independent AUX ports) all devices have to speak the same
protocol.

I have seen 2 different behaviors for PCs without active multiplexor:
1. Plugging external mouse forces synaptics into hardware PS/2 compatibility
mode (Dells).
2. Hardware completely hides presence of external mouse (older Compaqs, ASUS).
In this case psmouse.proto option is needed to force both devices use the
same protocol, but all advanced features of Synaptics are lost.

As a side note what is normal PS/2 equivalent lower left corner tap has? What
about lower right corner tap? 3-finger tap? Synaptics provides much more
features than you can have with standard PS/2.


Hope that helps.

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