[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-input-synaptics: Changes to 'debian-unstable'



 ChangeLog                      |  485 ++++++++++++++++++++++++++++
 configure.ac                   |    2 
 debian/changelog               |    8 
 debian/patches/series          |    2 
 include/synaptics-properties.h |    3 
 man/synaptics.man              |   69 ++--
 src/alpscomm.c                 |   12 
 src/eventcomm.c                |  102 +++---
 src/properties.c               |  103 +++---
 src/ps2comm.c                  |   46 +-
 src/psmcomm.c                  |   24 -
 src/synaptics.c                |  689 +++++++++++++++++++++++------------------
 src/synapticsstr.h             |    6 
 src/synproto.h                 |   12 
 tools/synclient.c              |    2 
 tools/syndaemon.c              |   21 -
 16 files changed, 1121 insertions(+), 465 deletions(-)

New commits:
commit a5bead3ea53a1e96ee0f3bad5b571f1627a83cf7
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon Feb 21 04:27:18 2011 +0100

    Upload to unstable.

diff --git a/debian/changelog b/debian/changelog
index 4397db7..a57be82 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-xserver-xorg-input-synaptics (1.3.99.901-1) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.3.99.901-1) unstable; urgency=low
 
   * New upstream release.
   * Disable patch: 01-synaptics-dont-grab-if-not-on-current-VT.patch (no
     longer applies, needs to be sent/discussed upstream anyway).
 
- -- Cyril Brulebois <kibi@debian.org>  Mon, 21 Feb 2011 04:19:57 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Mon, 21 Feb 2011 04:27:15 +0100
 
 xserver-xorg-input-synaptics (1.3.0-2) unstable; urgency=low
 

commit 482db68264f5268c2416a5fc6993c25b3ad062a6
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon Feb 21 04:26:51 2011 +0100

    Disable patch: 01-synaptics-dont-grab-if-not-on-current-VT.patch (no longer applies, needs to be sent/discussed upstream anyway).

diff --git a/debian/changelog b/debian/changelog
index 5568cab..4397db7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 xserver-xorg-input-synaptics (1.3.99.901-1) UNRELEASED; urgency=low
 
   * New upstream release.
+  * Disable patch: 01-synaptics-dont-grab-if-not-on-current-VT.patch (no
+    longer applies, needs to be sent/discussed upstream anyway).
 
  -- Cyril Brulebois <kibi@debian.org>  Mon, 21 Feb 2011 04:19:57 +0100
 
diff --git a/debian/patches/series b/debian/patches/series
index d1c01f7..c8a3753 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,3 @@
-01-synaptics-dont-grab-if-not-on-current-VT.patch
+#01-synaptics-dont-grab-if-not-on-current-VT.patch
 02-do-not-use-synaptics-for-keyboards.patch
 03-man-no-hal.patch

commit 443746dd6b3d5afe9903734686daa421df1dac68
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon Feb 21 04:20:21 2011 +0100

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 754167f..cebefe8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,459 @@
+commit 8ec84d1850fe801fa9a123ae70e09821a4358389
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Feb 21 12:57:21 2011 +1000
+
+    synaptics 1.3.99.901
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit ee99d4f7bc3374e8bac083ac4ea159f5da43db06
+Author: Daniel Kurtz <djkurtz@google.com>
+Date:   Mon Feb 14 22:08:41 2011 +0800
+
+    Stop scrolling if not exactly two fingers on touchpad.
+    
+    X.Org Bug 34257 <http://bugs.freedesktop.org/show_bug.cgi?id=34257>
+    
+    Signed-off-by: Daniel Kurtz <djkurtz@google.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 7771bc91c989d1ac6f6147f2b26e5d7e70555856
+Author: Simon Thum <simon.thum@gmx.de>
+Date:   Mon Feb 21 11:55:17 2011 +1000
+
+    add a few comments to ComputeDeltas()
+    
+    Signed-off-by: Simon Thum <simon.thum@gmx.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    
+    Conflicts:
+    
+    	src/synaptics.c
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f2f19be03d62b45e51e7fa55b24ed14fec3ba4d2
+Author: Simon Thum <simon.thum@gmx.de>
+Date:   Thu Feb 10 13:30:07 2011 +0100
+
+    add some acceleration-related info to the man page
+    
+    Signed-off-by: Simon Thum <simon.thum@gmx.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 4a1f524fcbc47e6af772f82dffa6286eea43e460
+Author: Simon Thum <simon.thum@gmx.de>
+Date:   Thu Feb 10 12:33:04 2011 +0100
+
+    reshuffle details on acceleration in the man page for increased readability
+    
+    Signed-off-by: Simon Thum <simon.thum@gmx.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 91c85a7d010728bf493e77527984024660eb2b6c
+Merge: cc26edf 442527d
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Feb 21 11:47:46 2011 +1000
+
+    Merge branch 'devel' into merge
+    
+    Conflicts:
+    	src/synaptics.c
+
+commit cc26edfba13216ceda02d9d352643535ba359e5e
+Author: Simon Thum <simon.thum@gmx.de>
+Date:   Sun Feb 6 17:57:17 2011 +0100
+
+    Add hysteresis-based noise reduction
+    
+    This introduces hysteresis into the driver's processing. It significantly
+    reduces noise motion, i.e. now the pad does no longer generate a stream of
+    sub-pixel events when just holding the position with the finger down.
+    Also, taking off the finger no longer generates additional motion,
+    scrolling becomes flicker-free etc.
+    
+    The code makes use of "fuzz" from the kernel, if available. This has not
+    been tested extensively, as an overwhelming majority of evdev touchpad
+    drivers view 0 (zero) as a good value for fuzz, forcing userland into
+    assuming "zero fuzz" means "make zero assumptions about fuzz", not
+    "there is no fuzz". Until things improve, this is what we do.
+    
+    Anyway, the fuzz a.k.a. hysteresis can be set/overridden with options
+    and properties, as documented.
+    
+    Signed-off-by: Simon Thum <simon.thum@gmx.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 442527d44a07eceaf6d8b33f4b469e36afc0dcc5
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Feb 9 16:03:36 2011 +1000
+
+    Factor out edge speed calculation.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
+
+commit a785b831a6cdb14ea1c11b894cc1a84aea4a37fd
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Feb 9 16:00:10 2011 +1000
+
+    Factor out delta calculation into a static func.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
+
+commit 736b32cadd55b05d67c4988bec96dc8df7ebb51c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Feb 9 15:55:41 2011 +1000
+
+    Move delta calculation for trackstick out.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
+
+commit f2cbd47caebd85904dd0c480d9a3128c55fec56c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Feb 9 15:52:45 2011 +1000
+
+    Reshuffle ComputeDeltas for less indentation.
+    
+    No functional changes, just moving out of double-nested conditions.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
+
+commit 5aaeea79eea98705fbbbea363a7ee4be1eeed827
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Oct 8 11:56:57 2009 +1000
+
+    Don't expect a palm based on pressure (#22806)
+    
+    If the first touch on the touchpad is above palm_min_z, the palm detection
+    unsets the finger status ("probably palm"). Don't do that, for low values of
+    palm_min_z this disables the finger during normal use of the touchpad.
+    
+    X.Org Bug 22806 <http://bugs.freedesktop.org/show_bug.cgi?id=22806>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f34ee8e8ac68c3fdff38d084f175106a3415f3a5
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Feb 8 11:46:46 2011 +1000
+
+    syndaemon: reset idle time if the system time has changed (#31968)
+    
+    If the system time is changed backwards while the touchpad is disabled
+    through syndaemon it remains disabled until the time catches up with the
+    previous idle time again. Avoid this by resetting last_activity with a time
+    that will trigger re-enabling of the device.
+    
+    X.Org Bug 31968 <http://bugs.freedesktop.org/show_bug.cgi?id=31968>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 311e54594a7dbacf241c046626139a260716ba31
+Author: Nicolas Cavallari <batchman@free.fr>
+Date:   Sun Jan 23 16:14:48 2011 +0100
+
+    synaptics: detect corner tap using the initial touch position
+    
+    Currently, when detecting a tap release, the corner tap detection
+    uses the current touch position to figure out which corner it
+    corresponds. The problem is that, theoretically, there is no such position
+    because there is no touch. It work in mosts cases because most touchpad
+    are fast enough to still have a position on release, but some aren't.
+    
+    In that case, the driver do corner tap detection using the position
+    given by the hardware when there is no touch, that is, (0,0), (1,5855)
+    or whatever. The driver will detect them as corner tap, regardless of
+    the initial touch position. On the default configuration, corner taps
+    are ignored, so basically, these tap are not working.
+    
+    This patch make tap detection use the initial touch position to
+    detect corner taps.
+    
+    Signed-off-by: Nicolas Cavallari <batchman@free.fr>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 0e27ce3ad7493ec28bde421a61c8a6e8d147efb6
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Sun Jan 16 12:57:15 2011 -0800
+
+    syndaemon.c: Add #include <string.h>
+    
+    Solaris FD_ZERO is defined using memset, but <sys/select.h> doesn't include
+    <string.h> itself, leading to compiler warning:
+    
+    "syndaemon.c", line 404: warning: implicit function declaration: memset
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 5c98205e025adaf2aa4d99b71cb4581963076a04
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Sun Jan 16 12:57:14 2011 -0800
+
+    synclient.c: Replace old index() function with C89-standard strchr()
+    
+    Fixes Solaris compiler warnings of:
+    "synclient.c", line 152: warning: implicit function declaration: index
+    "synclient.c", line 152: warning: improper pointer/integer combination: op "="
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit ca0f87eb2a7491048d49e6449b688c4fea245310
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Dec 8 11:15:09 2010 +1000
+
+    Rename SHM functions from alloc/free_param_data to alloc/free_shm_data
+    
+    This naming is historical, we used to export the parameters through SHM.
+    These days it's just confusing.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 07dbd6b85d806aa7ebb340f7f555d1992940f319
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Dec 8 11:08:55 2010 +1000
+
+    Don't report all options unconditionally.
+    
+    While this is useful to see all options provided, it also lists options that
+    are not actually interpreted by the driver. Skip it, use xf86Set*Option()
+    instead to just report the options handled by the driver.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 9b62f5c29152d59a894a463711737c52c97b5cbe
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Dec 8 11:08:03 2010 +1000
+
+    Dont report the version explicitly, it's reported in the module blob anyway.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 2da93d9735b6951861043de8ea59c8ca1cea4f96
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Dec 8 11:05:51 2010 +1000
+
+    Use xf86SetStrOption instead of xf86FindOption for the Device
+    
+    xf86SetStrOption reports to the log if found.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit b2cc4f5c4aa35fb13d96fafdbd907b6dba4b4796
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Dec 8 11:01:56 2010 +1000
+
+    Remove the need for XI86_CONFIGURED on input-ABI 12
+    
+    Just move the assignment into an already if GET_ABI_MAJOR() block.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 6f61aa776332b99e0d3cc035bff11d87d2735a47
+Author: Alessandro Guido <ag@alessandroguido.name>
+Date:   Fri Dec 3 11:55:00 2010 +0100
+
+    syndaemon: decouple background mode from quietness
+    
+    syndaemon currently outputs lots of stuff when not running in background mode.
+    However, current init daemons and session managers can manage to launch the
+    daemon in background without "-b" just fine (if not better), by doing the
+    fork() themselves. Indeed, if one uses that setup, ie. by having syndaemon
+    launched by GNOME at login, it gets the ~/.xsession-errors file spammed by
+    Enable/Disabled messages.
+    
+    This patch fixes this by introducing a new verbose (-v) flag that enables those
+    messages and makes syndaemon quiet by default.
+    
+    Signed-off-by: Alessandro Guido <ag@alessandroguido.name>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 4d22aa06fd2b53e11233ebd3a25045cd96bf67ab
+Author: Takashi Iwai <tiwai@suse.de>
+Date:   Fri Oct 8 19:22:29 2010 +0200
+
+    Fix 64bit arch issue in synaptics eventcomm.c
+    
+    In C, "1" is an integer, not an unsigned long. Thus (1 << 33) doesn't give
+    you the 33th bit shift, but it's undefined.
+    
+    Signed-off-by: Takashi Iwai <tiwai@suse.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 57193777374dd10a920171670a06b7e79d389703
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 25 10:39:38 2010 +1000
+
+    Input API 12 requires a valuator mode for each axis.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+
+commit 61aa201dabe9aa46dadd1a9dc08eadab878cd09c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 18 09:47:20 2010 +1000
+
+    Remove convert_proc and close_proc.
+    
+    Both aren't actually called by the server anymore.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 26d5eaeb6b9321ad1a794846333a60125df7317d
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 18 09:44:35 2010 +1000
+
+    Replace two LocalDevicePtr with InputInfoPtr.
+    
+    ABI 12 removes the LocalDevicePtr define from the server, InputInfoPtr is
+    the replacement.
+    Compile error introduced in 0b28a4c046a30ccb83278ea0aa59541fad89092c.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit e2260fef76b08f782ab5640ae490d9b2da33c94b
+Author: Joe Shaw <joe@joeshaw.org>
+Date:   Tue Oct 12 10:00:48 2010 -0400
+
+    don't post motion events if the finger state is FS_UNTOUCHED
+    
+    Works around some buggy touchpads that report their position as things
+    like 0,0; 0,ymax; etc. at the same time as they turn off the finger
+    tool and/or touch indication.  This is particularly a problem when
+    using the touchpad in absolute mode.
+    
+    Signed-off-by: Joe Shaw <joe@joeshaw.org>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a7637b5b3782f6f7b8efadaa459e9e365701d88b
+Author: Joe Shaw <joe@joeshaw.org>
+Date:   Fri Oct 8 15:20:42 2010 -0400
+
+    post absolute coordinate motion events if device mode is absolute
+    
+    Signed-off-by: Joe Shaw <joe@joeshaw.org>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 0b28a4c046a30ccb83278ea0aa59541fad89092c
+Author: Joe Shaw <joe@joeshaw.org>
+Date:   Fri Oct 8 15:20:41 2010 -0400
+
+    track abs/rel mode changes in SwitchMode() instead of ignoring them
+    
+    Signed-off-by: Joe Shaw <joe@joeshaw.org>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a36976e7c9b1d408751a35caceef4fb64b6d7a1d
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Oct 6 11:00:47 2010 +1000
+
+    Remove refcnt initialization from InputDriverRec.
+    
+    Removed from the server with
+    commit 6130170e7e9b64c611ee942ec3455dd1a185193d
+    Author: Adam Jackson <ajax@redhat.com>
+    Date:   Sat Sep 18 06:41:35 2010 -0400
+    
+        xfree86: Remove unused refcounting from input drivers
+    
+    And given that it was unused, we don't need to ifdef it.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f5687a6741a19ef3081e7fd83ac55f6df8bcd5c2
+Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+Date:   Sun Sep 19 09:49:59 2010 +0200
+
+    config: don't autoprobe when device was set
+    
+    If device was already set, we were asked to handle that specific device
+    and we should not go probing around. If we do, we might end up handling
+    a device different from what the X server thinks we are handling, with
+    dire consequences in case of hot plugging and unplugging.
+    
+    Without this patch, a situation such as the following can happen.
+    
+    A user has both a built-in laptop touchpad and a tablet such as the
+    Wacom Bamboo Pen & Touch, that is also exposed as a touchpad.
+    
+    The tablet is plugged in before the server starts, and during setup the
+    server calls the synaptic driver for the /dev/input/mouseX device
+    corresponding to the touch device of the tablet; we end up in the
+    autoprobe path even though `device' was set, and the driver scans
+    /dev/input, where the first useful device it finds is the event device
+    for the built-in touchpad.
+    
+    The driver starts managing the built-in touchpad, preventing future
+    instances from managing it too, while the server thinks the driver is
+    managing the tablet.
+    
+    When the user disconnects the tablet, the corresponding instance of the
+    synpatics driver (which is actually managing the touchpad instead) is
+    unloaded: the built-in touchpad stops working in X.
+    
+    Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f2039cb7fba41032ec87315a3a4511472a5ef0dc
+Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+Date:   Wed Sep 22 21:44:13 2010 +0200
+
+    config: collect options during preinit
+    
+    This must to ensure that the "Device" option is set correctly before
+    SetDeviceAndProtocol is called, but it's only needed when the old input
+    API is used.
+    
+    Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 6f7daad930bbceb98a3bea537446b457a5f76246
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Sep 1 13:42:56 2010 +1000
+
+    Bump to 1.3.99
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f0623c56b91d1444ceb0f18a3b090a06bd6817a9
+Merge: 1a9495a 81ad2e3
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Sep 1 13:42:37 2010 +1000
+
+    Merge branch 'input-api'
+    
+    Conflicts:
+    	src/properties.c
+
+commit 81ad2e389d11691d5c2687d83150e8e9033cfe76
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Jul 23 15:03:42 2010 +1000
+
+    Use InputInfoPtr instead of LocalDevicePtr.
+    
+    The latter is about to be removed from the server, InputInfoPtr has been
+    around in all supported server versions.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit b7dbe57332bd3d009ea60038f555ae1ef7e17e85
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jul 22 11:53:52 2010 +1000
+
+    Support the new input api.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
 commit 1a9495a74c41d956751177807602383ce4549c37
 Author: Peter Hutterer <peter.hutterer@who-t.net>
 Date:   Wed Sep 1 09:04:11 2010 +1000
@@ -109,6 +565,35 @@ Date:   Tue Aug 17 11:34:32 2010 +1000
     
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 
+commit a9d25b818d364594bfb761a996a86db002a7d4ac
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jul 22 11:44:35 2010 +1000
+
+    Reshuffle initialization in preparation for new input API.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 4dd15cf37d388a720e502f364410c28f17e03ce6
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jul 22 11:42:38 2010 +1000
+
+    Add some ifdefs missing from XINPUT ABI 12
+    
+    These flags are not used in the newer servers anymore. Define them locally,
+    remove the defines once we stop supporting server 1.9.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit e6f209d1aacef18e68eeede84c7bfca4c1c100c8
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Jul 22 11:41:35 2010 +1000
+
+    Remove XI86_POINTER_CAPABLE usage.
+    
+    This is a write-only flag.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
 commit abb448a253cb0b3003038fbaa1daa9494c396e8f
 Author: Chris Bagwell <chris@cnpbagwell.com>
 Date:   Wed Jul 7 21:35:22 2010 -0500
diff --git a/debian/changelog b/debian/changelog
index de9c85b..5568cab 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-synaptics (1.3.99.901-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Cyril Brulebois <kibi@debian.org>  Mon, 21 Feb 2011 04:19:57 +0100
+
 xserver-xorg-input-synaptics (1.3.0-2) unstable; urgency=low
 
   * Switch to Architecture: any, adding armhf support (Closes: #604672).

commit 8ec84d1850fe801fa9a123ae70e09821a4358389
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 21 12:57:21 2011 +1000

    synaptics 1.3.99.901
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index 155c6dc..ea66935 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-        [1.3.99],
+        [1.3.99.901],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit ee99d4f7bc3374e8bac083ac4ea159f5da43db06
Author: Daniel Kurtz <djkurtz@google.com>
Date:   Mon Feb 14 22:08:41 2011 +0800

    Stop scrolling if not exactly two fingers on touchpad.
    
    X.Org Bug 34257 <http://bugs.freedesktop.org/show_bug.cgi?id=34257>
    
    Signed-off-by: Daniel Kurtz <djkurtz@google.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/synaptics.c b/src/synaptics.c
index 0a7ceac..56ce725 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2026,7 +2026,7 @@ HandleScrolling(SynapticsPrivate *priv, struct SynapticsHwState *hw,
 	    priv->circ_scroll_on = FALSE;
 	}
 
-	if (!finger || hw->numFingers < 2) {
+	if (!finger || hw->numFingers != 2) {
 	    if (priv->vert_scroll_twofinger_on) {
 		DBG(7, "vert two-finger scroll off\n");
 		priv->vert_scroll_twofinger_on = FALSE;

commit 7771bc91c989d1ac6f6147f2b26e5d7e70555856
Author: Simon Thum <simon.thum@gmx.de>
Date:   Mon Feb 21 11:55:17 2011 +1000

    add a few comments to ComputeDeltas()
    
    Signed-off-by: Simon Thum <simon.thum@gmx.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    
    Conflicts:
    
    	src/synaptics.c
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/synaptics.c b/src/synaptics.c
index 365951a..0a7ceac 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1810,6 +1810,7 @@ get_delta(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
     int x_edge_speed = 0;
     int y_edge_speed = 0;
 
+    /* HIST is full enough: priv->count_packet_finger > 3 */
     *dx = estimate_delta(hw->x, HIST(0).x, HIST(1).x, HIST(2).x);
     *dy = estimate_delta(hw->y, HIST(0).y, HIST(1).y, HIST(2).y);
 
@@ -1826,6 +1827,9 @@ get_delta(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
     *dy = integral;
 }
 
+/**
+ * Compute relative motion ('deltas') including edge motion xor trackstick.
+ */
 static int
 ComputeDeltas(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
 	      edge_type edge, int *dxP, int *dyP, Bool inside_area)
@@ -1864,10 +1868,11 @@ ComputeDeltas(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
         goto out;
     }
 
-    /* FIXME: Wtf?? what's with 13? */
+    /* to create fluid edge motion, call back 'soon'
+     * even in the absence of new hardware events */
     delay = MIN(delay, 13);
 
-    if (priv->count_packet_finger <= 3) /* min. 3 packets */
+    if (priv->count_packet_finger <= 3) /* min. 3 packets, see get_delta() */
         goto skip; /* skip the lot */
 
     if (priv->moving_state == MS_TRACKSTICK)

commit f2f19be03d62b45e51e7fa55b24ed14fec3ba4d2
Author: Simon Thum <simon.thum@gmx.de>
Date:   Thu Feb 10 13:30:07 2011 +0100

    add some acceleration-related info to the man page
    
    Signed-off-by: Simon Thum <simon.thum@gmx.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/man/synaptics.man b/man/synaptics.man
index 8d817ca..0a35883 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -608,6 +608,13 @@ HorizScrollDelta parameters.
 .
 To disable vertical or horizontal scrolling, set VertScrollDelta or
 HorizScrollDelta to zero.
+.
+.LP
+Acceleration is mostly handled outside the driver, thus the driver will
+translate MinSpeed into constant deceleration and adapt MaxSpeed at
+startup time. This ensures you can user the other acceleration profiles, albeit
+without pressure motion. However the numbers at runtime will likely be different
+from any options you may have set.
 
 .SS Pressure motion
 When pressure motion is activated, the cursor motion speed depends

commit 4a1f524fcbc47e6af772f82dffa6286eea43e460
Author: Simon Thum <simon.thum@gmx.de>
Date:   Thu Feb 10 12:33:04 2011 +0100

    reshuffle details on acceleration in the man page for increased readability
    
    Signed-off-by: Simon Thum <simon.thum@gmx.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/man/synaptics.man b/man/synaptics.man
index 16ae7f6..8d817ca 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -608,8 +608,31 @@ HorizScrollDelta parameters.
 .
 To disable vertical or horizontal scrolling, set VertScrollDelta or
 HorizScrollDelta to zero.
+
+.SS Pressure motion
+When pressure motion is activated, the cursor motion speed depends
+on the pressure exerted on the touchpad (the more pressure exerted on
+the touchpad, the faster the pointer).
+.
+More precisely the speed is first calculated according to MinSpeed,
+MaxSpeed and AccelFactor, and then is multiplied by a sensitivity
+factor.
 .
 .LP
+The sensitivity factor can be adjusted using the PressureMotion
+parameters.
+.
+If the pressure is below PressureMotionMinZ, PressureMotionMinFactor
+is used, and if the pressure is greater than PressureMotionMaxZ,
+PressureMotionMaxFactor is used.
+.
+By default, PressureMotionMinZ and PressureMotionMaxZ are equal to
+EdgeMotionMinZ and EdgeMotionMaxZ.
+.
+For a pressure value between PressureMotionMinZ and
+PressureMotionMaxZ, the factor is increased linearly.
+.
+.SS Edge motion
 When hitting an egde, movement can be automatically continued.
 .
 If EdgeMotionUseAlways is false, edge motion is only used when
@@ -631,27 +654,6 @@ is used.
 For a pressure value between EdgeMotionMinZ and EdgeMotionMaxZ, the
 speed is increased linearly.
 .
-.LP
-When pressure motion is activated, the cursor motion speed depends
-on the pressure exerted on the touchpad (the more pressure exerted on
-the touchpad, the faster the pointer).
-.
-More precisely the speed is first calculated according to MinSpeed,
-MaxSpeed and AccelFactor, and then is multiplied by a sensitivity
-factor.
-.
-The sensitivity factor can be adjusted using the PressureMotion
-parameters.
-.
-If the pressure is below PressureMotionMinZ, PressureMotionMinFactor
-is used, and if the pressure is greater than PressureMotionMaxZ,
-PressureMotionMaxFactor is used.
-.
-By default, PressureMotionMinZ and PressureMotionMaxZ are equal to
-EdgeMotionMinZ and EdgeMotionMaxZ.
-.
-For a pressure value between PressureMotionMinZ and
-PressureMotionMaxZ, the factor is increased linearly.
 .SS Middle button emulation
 Since most synaptics touchpad models don't have a button that
 corresponds to the middle button on a mouse, the driver can emulate

commit cc26edfba13216ceda02d9d352643535ba359e5e
Author: Simon Thum <simon.thum@gmx.de>
Date:   Sun Feb 6 17:57:17 2011 +0100

    Add hysteresis-based noise reduction
    
    This introduces hysteresis into the driver's processing. It significantly
    reduces noise motion, i.e. now the pad does no longer generate a stream of
    sub-pixel events when just holding the position with the finger down.
    Also, taking off the finger no longer generates additional motion,
    scrolling becomes flicker-free etc.
    
    The code makes use of "fuzz" from the kernel, if available. This has not
    been tested extensively, as an overwhelming majority of evdev touchpad
    drivers view 0 (zero) as a good value for fuzz, forcing userland into
    assuming "zero fuzz" means "make zero assumptions about fuzz", not
    "there is no fuzz". Until things improve, this is what we do.
    
    Anyway, the fuzz a.k.a. hysteresis can be set/overridden with options
    and properties, as documented.
    
    Signed-off-by: Simon Thum <simon.thum@gmx.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/include/synaptics-properties.h b/include/synaptics-properties.h
index 9c6a2ee..bdb2112 100644
--- a/include/synaptics-properties.h
+++ b/include/synaptics-properties.h
@@ -155,4 +155,7 @@
 /* 32 bit, 4 values, left, right, top, bottom */
 #define SYNAPTICS_PROP_AREA "Synaptics Area"
 
+/* 32 Bit Integer, 2 values, horizontal hysteresis, vertical hysteresis */
+#define SYNAPTICS_PROP_NOISE_CANCELLATION "Synaptics Noise Cancellation"
+
 #endif /* _SYNAPTICS_PROPERTIES_H_ */
diff --git a/man/synaptics.man b/man/synaptics.man
index 3f1ca9d..16ae7f6 100644
--- a/man/synaptics.man
+++ b/man/synaptics.man
@@ -222,6 +222,17 @@ Motion Factor"
 Greatest setting for pressure motion factor. Property: "Synaptics Pressure
 Motion Factor"
 .TP
+.BI "Option \*qHorizHysteresis\*q \*q" integer \*q
+The minimum horizontal HW distance required to generate motion events. Can be
+specified as a percentage. Increase if noise motion is a problem for you. Zero
+is disabled.
+Default: 0.5 percent of the diagonal or (in case of evdev) the appropriate
+"fuzz" as advertised by the device.
+.TP
+.BI "Option \*qVertHysteresis\*q \*q" integer \*q
+The minimum vertical HW distance required to generate motion events. See
+\fBHorizHysteresis\fR.
+.TP
 .BI "Option \*qUpDownScrolling\*q \*q" boolean \*q
 If on, the up/down buttons generate button 4/5 events.
 .
@@ -707,6 +718,13 @@ scrolling to circular scrolling.  That is, if CornerCoasting is
 active, scrolling will stop, and circular scrolling will not start,
 when the finger leaves the corner.
 
+.SS Noise cancellation
+The synaptics has a built-in nose canellation based on hysteresis. This means
+that incoming coordinates actually shift a box of predefined dimensions such
+that it covers the incoming coordinate, and only the boxes own center is used
+as input. Obviously, the smaller the box the better, but the likelyhood of
+noise motion coming through also increases.
+
 .SS Trackstick mode
 Trackstick emulation mode is entered when pressing the finger hard on
 the touchpad.
diff --git a/src/eventcomm.c b/src/eventcomm.c
index 4593bba..1a31c54 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -184,6 +184,11 @@ event_query_axis_ranges(InputInfoPtr pInfo)
 		abs.minimum, abs.maximum);
 	priv->minx = abs.minimum;
 	priv->maxx = abs.maximum;
+	/* The kernel's fuzziness concept seems a bit weird, but it can more or
+	 * less be applied as hysteresis directly, i.e. no factor here. Though,
+	 * we don't trust a zero fuzz as it probably is just a lazy value. */
+	if (abs.fuzz > 0)
+	    priv->synpara.hyst_x = abs.fuzz;
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30)
 	priv->resx = abs.resolution;
 #endif
@@ -198,6 +203,9 @@ event_query_axis_ranges(InputInfoPtr pInfo)
 		abs.minimum, abs.maximum);
 	priv->miny = abs.minimum;
 	priv->maxy = abs.maximum;
+	/* don't trust a zero fuzz */
+	if (abs.fuzz > 0)
+	    priv->synpara.hyst_y = abs.fuzz;
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30)
 	priv->resy = abs.resolution;
 #endif
diff --git a/src/properties.c b/src/properties.c
index 5400928..23b5a6a 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -82,6 +82,7 @@ Atom prop_gestures              = 0;
 Atom prop_capabilities          = 0;
 Atom prop_resolution            = 0;
 Atom prop_area                  = 0;
+Atom prop_noise_cancellation    = 0;
 
 static Atom
 InitAtom(DeviceIntPtr dev, char *name, int format, int nvalues, int *values)
@@ -278,6 +279,12 @@ InitDeviceProperties(InputInfoPtr pInfo)
     values[2] = para->area_top_edge;
     values[3] = para->area_bottom_edge;
     prop_area = InitAtom(pInfo->dev, SYNAPTICS_PROP_AREA, 32, 4, values);
+
+    values[0] = para->hyst_x;
+    values[1] = para->hyst_y;
+    prop_noise_cancellation = InitAtom(pInfo->dev,
+            SYNAPTICS_PROP_NOISE_CANCELLATION, 32, 2, values);
+
 }
 
 int
@@ -649,6 +656,16 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop,
         para->area_right_edge  = area[1];
         para->area_top_edge    = area[2];
         para->area_bottom_edge = area[3];
+    } else if (property == prop_noise_cancellation) {
+        INT32 *hyst;
+        if (prop->size != 2 || prop->format != 32 || prop->type != XA_INTEGER)
+            return BadMatch;
+
+        hyst = (INT32*)prop->data;
+        if (hyst[0] < 0 || hyst[1] < 0)
+            return BadValue;
+        para->hyst_x = hyst[0];
+        para->hyst_y = hyst[1];
     }
 
     return Success;
diff --git a/src/synaptics.c b/src/synaptics.c
index 03092f2..276c024 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -387,18 +387,19 @@ calculate_edge_widths(SynapticsPrivate *priv, int *l, int *r, int *t, int *b)
  * the log message.
  */
 static int set_percent_option(pointer options, const char* optname,
-                              const int range, const int offset)
+                              const int range, const int offset,
+                              const int default_value)
 {
     int result;
 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
-    int percent = xf86CheckPercentOption(options, optname, -1);
+    double percent = xf86CheckPercentOption(options, optname, -1);
 
-    if (percent != -1) {
+    if (percent >= 0.0) {
         percent = xf86SetPercentOption(options, optname, -1);
         result = percent/100.0 * range + offset;
     } else
 #endif
-        result = xf86SetIntOption(options, optname, 0);
+        result = xf86SetIntOption(options, optname, default_value);
 
     return result;
 }
@@ -427,6 +428,7 @@ static void set_default_parameters(InputInfoPtr pInfo)
     int horizResolution = 1;
     int vertResolution = 1;
     int width, height, diag, range;
+    int horizHyst, vertHyst;
 
     /* read the parameters */
     if (priv->synshm)
@@ -458,6 +460,10 @@ static void set_default_parameters(InputInfoPtr pInfo)
     edgeMotionMaxSpeed = diag * .080;
     accelFactor = 200.0 / diag; /* trial-and-error */
 
+    /* hysteresis, assume >= 0 is a detected value (e.g. evdev fuzz) */
+    horizHyst = pars->hyst_x >= 0 ? pars->hyst_x : diag * 0.005;
+    vertHyst = pars->hyst_y >= 0 ? pars->hyst_y : diag * 0.005;
+
     range = priv->maxp - priv->minp;
 
     /* scaling based on defaults and a pressure of 256 */
@@ -513,10 +519,13 @@ static void set_default_parameters(InputInfoPtr pInfo)
     pars->top_edge = xf86SetIntOption(opts, "TopEdge", t);
     pars->bottom_edge = xf86SetIntOption(opts, "BottomEdge", b);
 
-    pars->area_top_edge = set_percent_option(opts, "AreaTopEdge", height, priv->miny);
-    pars->area_bottom_edge = set_percent_option(opts, "AreaBottomEdge", height, priv->miny);
-    pars->area_left_edge = set_percent_option(opts, "AreaLeftEdge", width, priv->minx);
-    pars->area_right_edge = set_percent_option(opts, "AreaRightEdge", width, priv->minx);
+    pars->area_top_edge = set_percent_option(opts, "AreaTopEdge", height, priv->miny, 0);
+    pars->area_bottom_edge = set_percent_option(opts, "AreaBottomEdge", height, priv->miny, 0);
+    pars->area_left_edge = set_percent_option(opts, "AreaLeftEdge", width, priv->minx, 0);
+    pars->area_right_edge = set_percent_option(opts, "AreaRightEdge", width, priv->minx, 0);
+
+    pars->hyst_x = set_percent_option(opts, "HorizHysteresis", width, 0, horizHyst);
+    pars->hyst_y = set_percent_option(opts, "VertHysteresis", height, 0, vertHyst);
 
     pars->finger_low = xf86SetIntOption(opts, "FingerLow", fingerLow);
     pars->finger_high = xf86SetIntOption(opts, "FingerHigh", fingerHigh);
@@ -722,6 +731,8 @@ SynapticsPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)


Reply to: