[lkml]   [2003]   [Jun]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Synaptics TouchPad driver for 2.5.70
    Vojtech Pavlik <> writes:

    > On Wed, Jun 11, 2003 at 07:05:31AM +0200, Peter Osterlund wrote:
    > >
    > > Here is a driver for the Synaptics TouchPad for 2.5.70.
    > > The only major missing feature is runtime configuration of driver
    > > parameters. What is the best way to implement that?
    > sysfs, of course.

    Actually, the runtime configuration may not be needed at all if we do
    the ABS -> REL conversion in user space, because all parameters
    control different aspects of this conversion.

    > > The patch is available here:
    > >
    > >
    > >
    > > Comments?
    > IMO it should use ABS_ events and the relativization should be done in
    > the XFree86 driver. Other than that, it looks quite OK.

    OK, the hardware state consists of 4 "axes" and 4 buttons, as defined
    in the synaptics_hw_state struct:

    struct synaptics_hw_state {
    int x;
    int y;
    int z;
    int w;
    int left;
    int right;
    int up;
    int down;

    x and y are the finger position, z is the finger pressure and w
    contains information about multifinger taps and finger width (for palm
    detection.) Left, right, up and down contain the state of the
    corresponding physical buttons.

    Is this mapping reasonable?

    x -> ABS_X
    y -> ABS_Y
    w -> ABS_MISC
    left -> BTN_LEFT
    right -> BTN_RIGHT
    up -> BTN_FORWARD
    down -> BTN_BACK

    The w value is somewhat special and not really a real axis. According
    to the Synaptics TouchPad Interfacing Guide
    (, W is defined as

    Value Needed capability Interpretation
    W = 0 capMultiFinger Two fingers on the pad.
    W = 1 capMultiFinger Three or more fingers on the pad.
    W = 2 capPen Pen (instead of finger) on the pad.
    W = 3 Reserved.
    W = 4-7 capPalmDetect Finger of normal width.
    W = 8-14 capPalmDetect Very wide finger or palm.
    W = 15 capPalmDetect Maximum reportable width; extremely
    wide contact.

    Is there a better way than using ABS_MISC to pass the W information to
    user space?

    Peter Osterlund -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:36    [W:0.023 / U:44.684 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site