• Henrik Rydberg's avatar
    Input: synaptics - add multi-finger and semi-mt support · fec6e525
    Henrik Rydberg authored
    The Synaptics 2.7 series of touchpads support a mode for reporting two
    sets of X/Y/Pressure data (advanced gesture mode). By default, these
    devices report only single finger data, depriving userspace of the
    nowadays ubiquitous two-finger scroll gesture.
    
    Enabling advanced gesture mode also enables the multi-finger report,
    although the device does not claim that capability. Up to three
    fingers can be reported this way.
    
    While two or three fingers are touching, the normal packet is
    prepended by a reduced finger packet of lower resolution. From the two
    packets (which do not represent the actual fingers), the bounding
    rectangle of the individual contacts can be extracted.  This
    information is sufficient to perform scaling gestures and a limited
    form of rotation gesture. The behavior has been coined semi-mt
    capability, and is signaled to userspace via the INPUT_PROP_SEMI_MT
    device property.
    
    Work to decode the advanced gesture packet: Takashi Iwai.
    Cleanup and testing of the original patch: Chase Douglas.
    Minor cleanup and testing: Chris Bagwell.
    Finalization and semi-mt support: Henrik Rydberg.
    
    Reported-by: Tobyn Bertram
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarChase Douglas <chase.douglas@canonical.com>
    Signed-off-by: default avatarChris Bagwell <chris@cnpbagwell.com>
    Acked-by: default avatarDmitry Torokhov <dtor@mail.ru>
    Signed-off-by: default avatarHenrik Rydberg <rydberg@euromail.se>
    fec6e525
synaptics.h 4.09 KB