xf86-input-synaptics:synaptics-1.6-branch: 3 commit(s)

Peter Hutterer whot at kemper.freedesktop.org
Thu May 17 16:34:35 PDT 2012


Reporting from xf86-input-synaptics: xf86-input-synaptics driver

Please visit:
    http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics
Or get your own copy by using:
    git-clone git://anongit.freedesktop.org/xorg/driver/xf86-input-synaptics

3 commits against synaptics-1.6-branch at 67a02d67...:
 src/properties.c |    6 ++++++
 src/synaptics.c  |   16 ++++++++++++++++
 src/synproto.c   |    4 ++--
 3 files changed, 24 insertions(+), 2 deletions(-)


commit 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu May 17 12:10:04 2012 +1000

    Don't allow for scroll distances of 0 (#49965)
    
    It'll either hang the server or blow up with divisions by 0, whichever one
    comes first.
    
    X.Org Bug 49965 <http://bugs.freedesktop.org/show_bug.cgi?id=49965>
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas at canonical.com>
    (cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a)

diffstat:
    src/properties.c |    6 ++++++
    1 file changed, 6 insertions(+)

cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=7ccca8e7


commit f8d970e191e6df05a8f2c26afdeea3e27b941a62
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu May 17 11:02:02 2012 +1000

    Reset hw->x/y to INT_MIN and skip HandleState until we have x/y events
    
    The driver assumes x/y is always valid but after coming from a resume we may
    get a few events with either ABS_X or ABS_Y (not both). Thus we process with
    hw->x == 0 and hw->y == somevalue, causing cursor jumps when calculating
    deltas whenver the real hw->x comes in.
    
    Fix this by resetting hw->x/y to INT_MIN and skip state processing until
    both axes are available.
    
    For clickpads, this means handling of data will be delayed until we get
    at least one motion on each axis. Button presses won't be recognised either
    until that happens. It requires some skill to not trigger motion on both
    axes, even more to press a button without doing so.
    
    For non-clickpads, handling of motion events will be delayed likewise. If a
    physical button is pressed immediately after resume we have to assume deltas
    of x/y.
    - If the next event is a new touch, it will have ABS_X/ABS_Y set anyway
    - If the finger was already down, a button event is generated, and the
      finger has generated ABS_X or ABS_Y only before the event, the next event
      containing the missing data will cause a jump. The fix for this is more
      invasive and this is quite a corner-case.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas at canonical.com>
    (cherry picked from commit cd569377cda9b5a4ee00c0137db14f625c76c40f)

diffstat:
    src/synaptics.c |   13 +++++++++++++
    src/synproto.c  |    4 ++--
    2 files changed, 15 insertions(+), 2 deletions(-)

cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=7ccca8e7


commit 739175d198372a3226ce061b118d8fe5bbc8f6bf
Author: Chase Douglas <chase.douglas at canonical.com>
Date:   Wed May 16 07:49:25 2012 -0700

    Reset open slots array on device disable
    
    The open slots array is used for clickpad cumulative delta computation.
    If the array is not reset and becomes corrupted during the device
    disable/enable cycle, the cumulative deltas may be wrong. This manifests
    as jumpy cursor behavior on some clickpads after suspend/resume.
    
    Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 0054b144f3daf00e46a35b2f165befb209df94fc)

diffstat:
    src/synaptics.c |    3 +++
    1 file changed, 3 insertions(+)

cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=7ccca8e7




More information about the xorg-commit mailing list