[Gpm] Synaptics touchpad

Doug Walker dwalker@efortress.com
Tue, 24 Oct 2000 17:02:37 -0600


Chris,

It appears to me that you may have the roles of gpm & the kernel
driver confused a bit.

In short, the pc_keyb.c mouse driver is a generic driver.  It is the
lowest level in the kernel which communicates with the touch pad.
Gpm, is a 'user-level' (e.g. it runs in user space), in effect sitting
on top of pc_keyb.c.

The kernel driver gets bytes from the touch pad and buffers them
until a client process (gpm) reads them via the read() system call.
Gpm, reads the incoming bytes from the driver.  It then builds and
Gpm_Event structures which client processes (e.g. X11) use to
determine mousy movements.

At 03:21 PM 10/24/00 -0700, Chris Collins wrote:
>Hello Doug,
>
> > The synps2 module
> > ... attached via a PS/2 style auxiliary port
> > ... attached to the serial port.
>
>I am a bit thick.  Which of these two describes the touchpad
>on a compaq presario 1685 laptop?

More than likely, you have a PS/2 style touch pad attached to the
auxiliary port on the keyboard.   Most (?) laptops are configured
this way.


[snip]

>So let me try to get this straight. A complete solution would be to have
>touchpad movement be picked up by a running gpm module (gpmd?).
>It sends this massaged info to a (yet to be revised) pc_keyb.c which
>correctly interperates the info and makes mousey  movements on the
>screen.

Modifying gpm is the fastest way to solve your problem.  You need to
modify synaptics.c (function syn_process_data() ) in the gpm source
tree to add the smoothing logic discussed in my previous post to you.
You do not have to implement the config file parameter, I just suggested
it as a convenience to the rest of the mailing list.


>If I have this flow of info correct, how can I help test it?
>Setting up the latest GPM is involved :)  also testing the
>patched kernel vs. non-patched?

Patching and testing gpm is a FAR site easier to modify & test than
is a kernel level driver.  All you need do is make the change, compile
gpm, stop the currently running gpm process, then run the newly
compiled gpm process.

Testing a kernel module driver is much more complex and difficult.

Is there a nice overview of the way simple mouse movements
>are read and used through the kernel which could help me
>at least understand the problem better to assist in its
>repair.

I suggest you get the "Synaptics TouchPad Interfacing Guide" at
http://www.synaptics.com/supp-touchutil.cfm and read it.  In addition
to a high level overview of the flow of communications, it has detailed
information as to the content of the packets received from the touch
pad.

FYI - I have a gw2k laptop with a PS/2 synaptics touch pad.  It works
perfectly with gpm.  No jitter problem what-so-ever.

Doug