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

xserver-xorg-input-synaptics: Changes to 'ubuntu-precise'



 ChangeLog                                         |  222 +
 configure.ac                                      |    2 
 debian/changelog                                  |  108 
 debian/control                                    |    2 
 debian/patches/101_resolution_detect_option.patch |  133 -
 debian/patches/118_quell_error_msg.patch          |   42 
 debian/patches/124_syndaemon_events.patch         |   32 
 debian/patches/125_option_rec_revert.patch        |  167 -
 include/synaptics-properties.h                    |    2 
 include/synaptics.h                               |   39 
 src/alpscomm.c                                    |   97 
 src/eventcomm.c                                   |  666 ++---
 src/eventcomm.h                                   |    8 
 src/properties.c                                  |  589 ++---
 src/ps2comm.c                                     |  534 ++--
 src/ps2comm.h                                     |   21 
 src/psmcomm.c                                     |   71 
 src/synaptics.c                                   | 2589 +++++++++++-----------
 src/synapticsstr.h                                |  361 +--
 src/synproto.c                                    |   46 
 src/synproto.h                                    |   54 
 test/eventcomm-test.c                             |   86 
 test/fake-symbols.c                               |  176 -
 test/fake-symbols.h                               |  169 -
 tools/synclient.c                                 |  588 ++--
 tools/syndaemon.c                                 |  604 ++---
 26 files changed, 3952 insertions(+), 3456 deletions(-)

New commits:
commit 6d5d3caee239be736098e0c2342d9f7355b1ce5e
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Thu Jun 14 09:42:07 2012 +0200

    Merged from Debian unstable
    
    * Merged from Debian unstable
    * Removed patches that were cherry picked commits and now in 1.6.2:
      - 201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
      - 202-Ignore-pre-existing-touches.patch
      - 203-Fix-coasting-for-negative-ScrollDelta.patch
      - 204-Reset-open-slots-array-on-device-disable.patch
      - 205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
      - 206-Don-t-allow-for-scroll-distances-of-0-49965.patch
    * Remaining patches:
      - 101_resolution_detect_option.patch
      - 103_enable_cornertapping.patch
      - 104_always_enable_tapping.patch
      - 106_always_enable_vert_edge_scroll.patch
      - 115_evdev_only.patch
      - 118_quell_error_msg.patch
      - 124_syndaemon_events.patch
      - 125_option_rec_revert.patch
      - 126_ubuntu_xi22.patch
      - 128_disable_three_click_action.patch
      - 129_disable_three_touch_tap.patch

diff --git a/debian/changelog b/debian/changelog
index 9f8182c..b63e262 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,28 @@
+xserver-xorg-input-synaptics (1.6.2-1ubuntu1) UNRELEASED; urgency=low
+
+  * Merged from Debian unstable
+  * Removed patches that were cherry picked commits and now in 1.6.2:
+    - 201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
+    - 202-Ignore-pre-existing-touches.patch
+    - 203-Fix-coasting-for-negative-ScrollDelta.patch
+    - 204-Reset-open-slots-array-on-device-disable.patch
+    - 205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
+    - 206-Don-t-allow-for-scroll-distances-of-0-49965.patch
+  * Remaining patches:
+    - 101_resolution_detect_option.patch
+    - 103_enable_cornertapping.patch
+    - 104_always_enable_tapping.patch
+    - 106_always_enable_vert_edge_scroll.patch
+    - 115_evdev_only.patch
+    - 118_quell_error_msg.patch
+    - 124_syndaemon_events.patch
+    - 125_option_rec_revert.patch
+    - 126_ubuntu_xi22.patch
+    - 128_disable_three_click_action.patch
+    - 129_disable_three_touch_tap.patch
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Thu, 14 Jun 2012 09:35:21 +0200
+
 xserver-xorg-input-synaptics (1.6.2-1) unstable; urgency=low
 
   * New upstream release, from the 1.6 branch.
diff --git a/debian/patches/201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch b/debian/patches/201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
deleted file mode 100644
index 2aac35f..0000000
--- a/debian/patches/201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 23065a974e5dcdf0d6a436a0547bb7887d306a6f Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Fri, 11 May 2012 12:27:39 +1000
-Subject: [PATCH 1/6] Avoid out-of-bounds access by running num_active_touches
- < 0 (#49439)
-
-If a touch is active during driver init, the slot will be set to
-SLOTSTATE_CLOSE when it finishes. That could decrease num_active_touches to
-less than 0, causing out-of-bounds access.
-
-X.Org Bug 49439 <http://bugs.freedesktop.org/show_bug.cgi?id=49439>
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-(cherry picked from commit 77d766b1d535dff9a27c7db343ede85d9f44850b)
----
- src/synaptics.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/synaptics.c b/src/synaptics.c
-index 30d79c5..1d32093 100644
---- a/src/synaptics.c
-+++ b/src/synaptics.c
-@@ -3128,7 +3128,9 @@ UpdateTouchState(InputInfoPtr pInfo, struct SynapticsHwState *hw)
-                     priv->open_slots[j] = priv->open_slots[j + 1];
-             }
- 
--            priv->num_active_touches--;
-+            BUG_WARN(priv->num_active_touches == 0);
-+            if (priv->num_active_touches > 0)
-+                priv->num_active_touches--;
-         }
-     }
- 
--- 
-1.7.9.5
-
diff --git a/debian/patches/202-Ignore-pre-existing-touches.patch b/debian/patches/202-Ignore-pre-existing-touches.patch
deleted file mode 100644
index cd36103..0000000
--- a/debian/patches/202-Ignore-pre-existing-touches.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 23e87b57bb874326c88a7ad7292bec51959fb876 Mon Sep 17 00:00:00 2001
-From: Chase Douglas <chase.douglas@canonical.com>
-Date: Mon, 14 May 2012 10:20:01 -0700
-Subject: [PATCH 2/6] Ignore pre-existing touches
-
-If a touch is physically active when the device is enabled, then all
-events for that touch must be ignored. In particular, we cannot close
-the touch or we will decrement touch count counters below zero. If these
-counters go below zero memory corruption can occur.
-
-Note that a device is disabled and enabled every time the user types on
-the keyboard if synclient is used to disable the trackpad while typing.
-This is a very common option.
-
-Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit 55fc42e7c9b4948cadd4f98ef7b6a3b12e268e3e)
----
- src/eventcomm.c |    5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/src/eventcomm.c b/src/eventcomm.c
-index 89a8a3a..280ef9b 100644
---- a/src/eventcomm.c
-+++ b/src/eventcomm.c
-@@ -564,8 +564,7 @@ EventProcessTouchEvent(InputInfoPtr pInfo, struct SynapticsHwState *hw,
-         if (slot_index < 0)
-             return;
- 
--        if (hw->slot_state[slot_index] == SLOTSTATE_EMPTY ||
--            hw->slot_state[slot_index] == SLOTSTATE_OPEN_EMPTY)
-+        if (hw->slot_state[slot_index] == SLOTSTATE_OPEN_EMPTY)
-             hw->slot_state[slot_index] = SLOTSTATE_UPDATE;
-         if (ev->code == ABS_MT_TRACKING_ID) {
-             if (ev->value >= 0) {
-@@ -580,7 +579,7 @@ EventProcessTouchEvent(InputInfoPtr pInfo, struct SynapticsHwState *hw,
-                                 "Attempted to copy values from out-of-range "
-                                 "slot, touch events may be incorrect.\n");
-             }
--            else {
-+            else if (hw->slot_state[slot_index] != SLOTSTATE_EMPTY) {
-                 hw->slot_state[slot_index] = SLOTSTATE_CLOSE;
-                 proto_data->num_touches--;
-             }
--- 
-1.7.9.5
-
diff --git a/debian/patches/203-Fix-coasting-for-negative-ScrollDelta.patch b/debian/patches/203-Fix-coasting-for-negative-ScrollDelta.patch
deleted file mode 100644
index b492d8c..0000000
--- a/debian/patches/203-Fix-coasting-for-negative-ScrollDelta.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 67a02d676c96d5b3d4729290cd96af0201eb76bb Mon Sep 17 00:00:00 2001
-From: Chun Yang <Chuck.Yang@gmail.com>
-Date: Tue, 15 May 2012 14:51:42 -0500
-Subject: [PATCH 3/6] Fix coasting for negative ScrollDelta
-
-Fix the coasting direction for when VertScrollDelta or HorizScrollDelta is
-negative.
-
-Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=49966
-
-Regression introduced in 0de4445ff8e75aab208faf6383e76045934c6720
-
-Signed-off-by: Chun Yang <Chuck.Yang@gmail.com>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit 53557a5cab1e253dc8f4393207954ae0fe76068f)
----
- src/synaptics.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/synaptics.c b/src/synaptics.c
-index 1d32093..074bcb8 100644
---- a/src/synaptics.c
-+++ b/src/synaptics.c
-@@ -2740,7 +2740,7 @@ HandleScrolling(SynapticsPrivate * priv, struct SynapticsHwState *hw,
-         double dtime = (hw->millis - priv->scroll.last_millis) / 1000.0;
-         double ddy = para->coasting_friction * dtime;
- 
--        priv->scroll.delta_y += priv->scroll.coast_speed_y * dtime * para->scroll_dist_vert;
-+        priv->scroll.delta_y += priv->scroll.coast_speed_y * dtime * abs(para->scroll_dist_vert);
-         delay = MIN(delay, POLL_MS);
-         if (abs(priv->scroll.coast_speed_y) < ddy) {
-             priv->scroll.coast_speed_y = 0;
-@@ -2755,7 +2755,7 @@ HandleScrolling(SynapticsPrivate * priv, struct SynapticsHwState *hw,
-     if (priv->scroll.coast_speed_x) {
-         double dtime = (hw->millis - priv->scroll.last_millis) / 1000.0;
-         double ddx = para->coasting_friction * dtime;
--        priv->scroll.delta_x += priv->scroll.coast_speed_x * dtime * para->scroll_dist_vert;
-+        priv->scroll.delta_x += priv->scroll.coast_speed_x * dtime * abs(para->scroll_dist_horiz);
-         delay = MIN(delay, POLL_MS);
-         if (abs(priv->scroll.coast_speed_x) < ddx) {
-             priv->scroll.coast_speed_x = 0;
--- 
-1.7.9.5
-
diff --git a/debian/patches/204-Reset-open-slots-array-on-device-disable.patch b/debian/patches/204-Reset-open-slots-array-on-device-disable.patch
deleted file mode 100644
index b9baee8..0000000
--- a/debian/patches/204-Reset-open-slots-array-on-device-disable.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 739175d198372a3226ce061b118d8fe5bbc8f6bf Mon Sep 17 00:00:00 2001
-From: Chase Douglas <chase.douglas@canonical.com>
-Date: Wed, 16 May 2012 07:49:25 -0700
-Subject: [PATCH 4/6] 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@canonical.com>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit 0054b144f3daf00e46a35b2f165befb209df94fc)
----
- src/synaptics.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/synaptics.c b/src/synaptics.c
-index 074bcb8..78660f4 100644
---- a/src/synaptics.c
-+++ b/src/synaptics.c
-@@ -1153,6 +1153,9 @@ SynapticsReset(SynapticsPrivate * priv)
-     priv->lastButtons = 0;
-     priv->prev_z = 0;
-     priv->prevFingers = 0;
-+#ifdef HAVE_MULTITOUCH
-+    memset(priv->open_slots, 0, priv->num_slots * sizeof(int));
-+#endif
- }
- 
- static Bool
--- 
-1.7.9.5
-
diff --git a/debian/patches/205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch b/debian/patches/205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
deleted file mode 100644
index da104cd..0000000
--- a/debian/patches/205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From f8d970e191e6df05a8f2c26afdeea3e27b941a62 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Thu, 17 May 2012 11:02:02 +1000
-Subject: [PATCH 5/6] 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@who-t.net>
-Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-(cherry picked from commit cd569377cda9b5a4ee00c0137db14f625c76c40f)
----
- src/synaptics.c |   13 +++++++++++++
- src/synproto.c  |    4 ++--
- 2 files changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/src/synaptics.c b/src/synaptics.c
-index 78660f4..cd9f936 100644
---- a/src/synaptics.c
-+++ b/src/synaptics.c
-@@ -3278,6 +3278,19 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now,
-         return delay;
-     }
- 
-+    /* We need both and x/y, the driver can't handle just one of the two
-+     * yet. But since it's possible to hit a phys button on non-clickpads
-+     * without ever getting motion data first, we must continue with 0/0 for
-+     * that case. */
-+    if (hw->x == INT_MIN || hw->y == INT_MAX) {
-+        if (para->clickpad)
-+            return delay;
-+        else if (hw->left || hw->right || hw->middle) {
-+            hw->x = (hw->x == INT_MIN) ? 0 : hw->x;
-+            hw->y = (hw->y == INT_MIN) ? 0 : hw->y;
-+        }
-+    }
-+
-     /* If a physical button is pressed on a clickpad, use cumulative relative
-      * touch movements for motion */
-     if (para->clickpad && (hw->left || hw->right || hw->middle)) {
-diff --git a/src/synproto.c b/src/synproto.c
-index d6e8c65..0c8a066 100644
---- a/src/synproto.c
-+++ b/src/synproto.c
-@@ -134,8 +134,8 @@ void
- SynapticsResetHwState(struct SynapticsHwState *hw)
- {
-     hw->millis = 0;
--    hw->x = 0;
--    hw->y = 0;
-+    hw->x = INT_MIN;
-+    hw->y = INT_MIN;
-     hw->z = 0;
-     hw->cumulative_dx = 0;
-     hw->cumulative_dy = 0;
--- 
-1.7.9.5
-
diff --git a/debian/patches/206-Don-t-allow-for-scroll-distances-of-0-49965.patch b/debian/patches/206-Don-t-allow-for-scroll-distances-of-0-49965.patch
deleted file mode 100644
index ba24320..0000000
--- a/debian/patches/206-Don-t-allow-for-scroll-distances-of-0-49965.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Thu, 17 May 2012 12:10:04 +1000
-Subject: [PATCH 6/6] 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@who-t.net>
-Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-(cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a)
----
- src/properties.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/properties.c b/src/properties.c
-index 44ac306..3b3f1c5 100644
---- a/src/properties.c
-+++ b/src/properties.c
-@@ -519,6 +519,9 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop,
-             return BadMatch;
- 
-         dist = (INT32 *) prop->data;
-+        if (dist[0] == 0 || dist[1] == 0)
-+            return BadValue;
-+
-         if (para->scroll_dist_vert != dist[0]) {
-             para->scroll_dist_vert = dist[0];
- #ifdef HAVE_SMOOTH_SCROLL
-@@ -715,6 +718,9 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop,
-             return BadMatch;
- 
-         circdist = *(float *) prop->data;
-+        if (circdist == 0)
-+            return BadValue;
-+
-         para->scroll_dist_circ = circdist;
-     }
-     else if (property == prop_circscroll_trigger) {
--- 
-1.7.9.5
-
diff --git a/debian/patches/series b/debian/patches/series
index 5a85917..063c319 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -19,12 +19,3 @@
 126_ubuntu_xi22.patch
 128_disable_three_click_action.patch
 129_disable_three_touch_tap.patch
-
-# in synaptics-1.6-branch, scheduled for 1.6.2 release
-201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
-202-Ignore-pre-existing-touches.patch
-203-Fix-coasting-for-negative-ScrollDelta.patch
-204-Reset-open-slots-array-on-device-disable.patch
-205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
-206-Don-t-allow-for-scroll-distances-of-0-49965.patch
-

commit 1b7a3baa3f8f7c71a3264e50cabf7461afc9d463
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Jun 13 22:22:46 2012 +0200

    Upload to unstable.

diff --git a/debian/changelog b/debian/changelog
index 0547378..9801715 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,8 @@
-xserver-xorg-input-synaptics (1.6.2-1) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.6.2-1) unstable; urgency=low
 
   * New upstream release, from the 1.6 branch.
 
- -- Cyril Brulebois <kibi@debian.org>  Wed, 13 Jun 2012 22:21:59 +0200
+ -- Cyril Brulebois <kibi@debian.org>  Wed, 13 Jun 2012 22:22:42 +0200
 
 xserver-xorg-input-synaptics (1.6.1-1) unstable; urgency=low
 

commit f0998d15565eaae5b6189a535d5d584fff071874
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Jun 13 22:22:27 2012 +0200

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 187be52..1c01053 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,133 @@
+commit d5ff9d8b0b186cf39695df84a10984eac559b746
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Jun 12 13:46:34 2012 +1000
+
+    synaptics 1.6.2
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit c1aae820601a911432c64938f03eab62bafaab2f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri May 18 09:38:50 2012 +1000
+
+    synaptics 1.6.1.901
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149
+Author: Peter Hutterer <peter.hutterer@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@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a)
+
+commit f8d970e191e6df05a8f2c26afdeea3e27b941a62
+Author: Peter Hutterer <peter.hutterer@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@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit cd569377cda9b5a4ee00c0137db14f625c76c40f)
+
+commit 739175d198372a3226ce061b118d8fe5bbc8f6bf
+Author: Chase Douglas <chase.douglas@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@canonical.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 0054b144f3daf00e46a35b2f165befb209df94fc)
+
+commit 67a02d676c96d5b3d4729290cd96af0201eb76bb
+Author: Chun Yang <Chuck.Yang@gmail.com>
+Date:   Tue May 15 14:51:42 2012 -0500
+
+    Fix coasting for negative ScrollDelta
+    
+    Fix the coasting direction for when VertScrollDelta or HorizScrollDelta is
+    negative.
+    
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=49966
+    
+    Regression introduced in 0de4445ff8e75aab208faf6383e76045934c6720
+    
+    Signed-off-by: Chun Yang <Chuck.Yang@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 53557a5cab1e253dc8f4393207954ae0fe76068f)
+
+commit 23e87b57bb874326c88a7ad7292bec51959fb876
+Author: Chase Douglas <chase.douglas@canonical.com>
+Date:   Mon May 14 10:20:01 2012 -0700
+
+    Ignore pre-existing touches
+    
+    If a touch is physically active when the device is enabled, then all
+    events for that touch must be ignored. In particular, we cannot close
+    the touch or we will decrement touch count counters below zero. If these
+    counters go below zero memory corruption can occur.
+    
+    Note that a device is disabled and enabled every time the user types on
+    the keyboard if synclient is used to disable the trackpad while typing.
+    This is a very common option.
+    
+    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 55fc42e7c9b4948cadd4f98ef7b6a3b12e268e3e)
+
+commit 23065a974e5dcdf0d6a436a0547bb7887d306a6f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri May 11 12:27:39 2012 +1000
+
+    Avoid out-of-bounds access by running num_active_touches < 0 (#49439)
+    
+    If a touch is active during driver init, the slot will be set to
+    SLOTSTATE_CLOSE when it finishes. That could decrease num_active_touches to
+    less than 0, causing out-of-bounds access.
+    
+    X.Org Bug 49439 <http://bugs.freedesktop.org/show_bug.cgi?id=49439>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit 77d766b1d535dff9a27c7db343ede85d9f44850b)
+
 commit e0f5688994baa85a8c658120681575cdd0ba2a58
 Author: Peter Hutterer <peter.hutterer@who-t.net>
 Date:   Fri May 11 10:30:21 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index 6bd821f..0547378 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-synaptics (1.6.2-1) UNRELEASED; urgency=low
+
+  * New upstream release, from the 1.6 branch.
+
+ -- Cyril Brulebois <kibi@debian.org>  Wed, 13 Jun 2012 22:21:59 +0200
+
 xserver-xorg-input-synaptics (1.6.1-1) unstable; urgency=low
 
   [ Julien Cristau ]

commit d5ff9d8b0b186cf39695df84a10984eac559b746
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 12 13:46:34 2012 +1000

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

diff --git a/configure.ac b/configure.ac
index 3e7ec2a..894d4f5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-        [1.6.1.901],
+        [1.6.2],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])

commit c171d9e40005b79557b2402132f07f3ec2c71848
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Thu Jun 7 10:07:57 2012 -0700

    releasing version 1.6.1-1ubuntu2

diff --git a/debian/changelog b/debian/changelog
index 4bb62b4..0003c44 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xserver-xorg-input-synaptics (1.6.1-1ubuntu2) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.6.1-1ubuntu2) quantal-proposed; urgency=low
 
   * Enable right button clickpad area by default (LP: #972727)
     - Upstream has this enabled. We had it disabled for Precise due to the
       feature landing well after feature freeze. This change puts us back in
       sync with upstream.
 
- -- Chase Douglas <chase.douglas@ubuntu.com>  Thu, 07 Jun 2012 10:03:04 -0700
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Thu, 07 Jun 2012 10:07:18 -0700
 
 xserver-xorg-input-synaptics (1.6.1-1ubuntu1) quantal; urgency=low
 

commit 3054a6872df2726887429b3bb3a6c4608315801f
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Thu Jun 7 10:07:14 2012 -0700

    Enable right button clickpad area by default (LP: #972727)
    
    * Enable right button clickpad area by default (LP: #972727)
      - Upstream has this enabled. We had it disabled for Precise due to the
        feature landing well after feature freeze. This change puts us back in
        sync with upstream.

diff --git a/debian/changelog b/debian/changelog
index 22b9efc..4bb62b4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+xserver-xorg-input-synaptics (1.6.1-1ubuntu2) UNRELEASED; urgency=low
+
+  * Enable right button clickpad area by default (LP: #972727)
+    - Upstream has this enabled. We had it disabled for Precise due to the
+      feature landing well after feature freeze. This change puts us back in
+      sync with upstream.
+
+ -- Chase Douglas <chase.douglas@ubuntu.com>  Thu, 07 Jun 2012 10:03:04 -0700
+
 xserver-xorg-input-synaptics (1.6.1-1ubuntu1) quantal; urgency=low
 
   * Merged from Debian unstable
diff --git a/debian/patches/130_dont_enable_rightbutton_area.patch b/debian/patches/130_dont_enable_rightbutton_area.patch
deleted file mode 100644
index b8399e1..0000000
--- a/debian/patches/130_dont_enable_rightbutton_area.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 797e51a27f48a93da9f3fb3355ca78c483029e63 Mon Sep 17 00:00:00 2001
-From: Chase Douglas <chase.douglas@canonical.com>
-Date: Fri, 23 Mar 2012 10:58:52 -0700
-Subject: [PATCH] Revert "conf: enable right-button click by default on
- non-Apple clickpads"
-
-This is a behavior change that is inappropriate at this point in the
-Precise release cycle
-
-This reverts commit b6779458bcdb049480310ba1acb3991ad061ffc7.
----
- conf/50-synaptics.conf |   18 ------------------
- 1 files changed, 0 insertions(+), 18 deletions(-)
-
-diff --git a/conf/50-synaptics.conf b/conf/50-synaptics.conf
-index 822f7a4..5ec7e78 100644
---- a/conf/50-synaptics.conf
-+++ b/conf/50-synaptics.conf
-@@ -24,21 +24,3 @@ Section "InputClass"
-         MatchDevicePath "/dev/input/mouse*"
-         Option "Ignore" "on"
- EndSection
--
--# This option enables the bottom right corner to be a right button on
--# non-synaptics clickpads.
--# This option is only interpreted by clickpads.
--Section "InputClass"
--        Identifier "Default clickpad buttons"
--        MatchDriver "synaptics"
--        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
--EndSection
--
--# This option disables software buttons on Apple touchpads.
--# This option is only interpreted by clickpads.
--Section "InputClass"
--        Identifier "Disable clickpad buttons on Apple touchpads"
--        MatchProduct "Apple|bcm5974"
--        MatchDriver "synaptics"
--        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
--EndSection
--- 
-1.7.9.1
-
diff --git a/debian/patches/series b/debian/patches/series
index e6446d1..5a85917 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -19,7 +19,6 @@
 126_ubuntu_xi22.patch
 128_disable_three_click_action.patch
 129_disable_three_touch_tap.patch
-130_dont_enable_rightbutton_area.patch
 
 # in synaptics-1.6-branch, scheduled for 1.6.2 release
 201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch

commit 4f2482fa2c073e1248100d1eaf93460b1792e7b4
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Thu Jun 7 10:01:29 2012 -0700

    Sync with 1.6.1-1ubuntu1 upload

diff --git a/debian/changelog b/debian/changelog
index a2d032e..22b9efc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-synaptics (1.6.1-1ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-input-synaptics (1.6.1-1ubuntu1) quantal; urgency=low
 
   * Merged from Debian unstable
   * Refreshed patches for indentation changes

commit 2e518a6209cdb97fc955558b2877910da67e8996
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Mon May 21 14:21:29 2012 +0200

    Add temporary patches, for upstream git commits on synaptics-1.6-branch
    
    * Add temporary patches, for upstream git commits on synaptics-1.6-branch
    * Fix memory corruption by driver (LP: #941953) FDo #49439
     - 201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
     - 202-Ignore-pre-existing-touches.patch
    * Fix FDo #49966
     - 203-Fix-coasting-for-negative-ScrollDelta.patch
    * Fix jumpy cursor after suspend/resume
     - 204-Reset-open-slots-array-on-device-disable.patch
    * Fix another resume bug
     - 205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
    * Fix division by 0 or infinite loop with zero scroll distance FDo #49965
     - 206-Don-t-allow-for-scroll-distances-of-0-49965.patch

diff --git a/debian/changelog b/debian/changelog
index 3e27367..a2d032e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,8 +6,20 @@ xserver-xorg-input-synaptics (1.6.1-1ubuntu1) UNRELEASED; urgency=low
     - 118_quell_error_msg.patch
     - 124_syndaemon_events.patch
     - 125_option_rec_revert.patch
-
- -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Mon, 21 May 2012 13:50:48 +0200
+  * Add temporary patches, for upstream git commits on synaptics-1.6-branch
+  * Fix memory corruption by driver (LP: #941953) FDo #49439
+   - 201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
+   - 202-Ignore-pre-existing-touches.patch
+  * Fix FDo #49966
+   - 203-Fix-coasting-for-negative-ScrollDelta.patch
+  * Fix jumpy cursor after suspend/resume
+   - 204-Reset-open-slots-array-on-device-disable.patch
+  * Fix another resume bug
+   - 205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
+  * Fix division by 0 or infinite loop with zero scroll distance FDo #49965
+   - 206-Don-t-allow-for-scroll-distances-of-0-49965.patch
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Mon, 21 May 2012 14:14:49 +0200
 
 xserver-xorg-input-synaptics (1.6.1-1) unstable; urgency=low
 
diff --git a/debian/patches/201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch b/debian/patches/201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
new file mode 100644
index 0000000..2aac35f
--- /dev/null
+++ b/debian/patches/201-Avoid-out-of-bounds-access-by-running-num_active_tou.patch
@@ -0,0 +1,37 @@
+From 23065a974e5dcdf0d6a436a0547bb7887d306a6f Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri, 11 May 2012 12:27:39 +1000
+Subject: [PATCH 1/6] Avoid out-of-bounds access by running num_active_touches
+ < 0 (#49439)
+
+If a touch is active during driver init, the slot will be set to
+SLOTSTATE_CLOSE when it finishes. That could decrease num_active_touches to
+less than 0, causing out-of-bounds access.
+
+X.Org Bug 49439 <http://bugs.freedesktop.org/show_bug.cgi?id=49439>
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+(cherry picked from commit 77d766b1d535dff9a27c7db343ede85d9f44850b)
+---
+ src/synaptics.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/synaptics.c b/src/synaptics.c
+index 30d79c5..1d32093 100644
+--- a/src/synaptics.c
++++ b/src/synaptics.c
+@@ -3128,7 +3128,9 @@ UpdateTouchState(InputInfoPtr pInfo, struct SynapticsHwState *hw)
+                     priv->open_slots[j] = priv->open_slots[j + 1];
+             }
+ 
+-            priv->num_active_touches--;
++            BUG_WARN(priv->num_active_touches == 0);
++            if (priv->num_active_touches > 0)
++                priv->num_active_touches--;
+         }
+     }
+ 
+-- 
+1.7.9.5
+
diff --git a/debian/patches/202-Ignore-pre-existing-touches.patch b/debian/patches/202-Ignore-pre-existing-touches.patch
new file mode 100644
index 0000000..cd36103
--- /dev/null
+++ b/debian/patches/202-Ignore-pre-existing-touches.patch
@@ -0,0 +1,47 @@
+From 23e87b57bb874326c88a7ad7292bec51959fb876 Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Mon, 14 May 2012 10:20:01 -0700
+Subject: [PATCH 2/6] Ignore pre-existing touches
+
+If a touch is physically active when the device is enabled, then all
+events for that touch must be ignored. In particular, we cannot close
+the touch or we will decrement touch count counters below zero. If these
+counters go below zero memory corruption can occur.
+
+Note that a device is disabled and enabled every time the user types on
+the keyboard if synclient is used to disable the trackpad while typing.
+This is a very common option.
+
+Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+(cherry picked from commit 55fc42e7c9b4948cadd4f98ef7b6a3b12e268e3e)
+---
+ src/eventcomm.c |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/eventcomm.c b/src/eventcomm.c
+index 89a8a3a..280ef9b 100644
+--- a/src/eventcomm.c
++++ b/src/eventcomm.c
+@@ -564,8 +564,7 @@ EventProcessTouchEvent(InputInfoPtr pInfo, struct SynapticsHwState *hw,
+         if (slot_index < 0)
+             return;
+ 
+-        if (hw->slot_state[slot_index] == SLOTSTATE_EMPTY ||
+-            hw->slot_state[slot_index] == SLOTSTATE_OPEN_EMPTY)
++        if (hw->slot_state[slot_index] == SLOTSTATE_OPEN_EMPTY)
+             hw->slot_state[slot_index] = SLOTSTATE_UPDATE;
+         if (ev->code == ABS_MT_TRACKING_ID) {
+             if (ev->value >= 0) {
+@@ -580,7 +579,7 @@ EventProcessTouchEvent(InputInfoPtr pInfo, struct SynapticsHwState *hw,
+                                 "Attempted to copy values from out-of-range "
+                                 "slot, touch events may be incorrect.\n");
+             }
+-            else {
++            else if (hw->slot_state[slot_index] != SLOTSTATE_EMPTY) {
+                 hw->slot_state[slot_index] = SLOTSTATE_CLOSE;
+                 proto_data->num_touches--;
+             }
+-- 
+1.7.9.5
+
diff --git a/debian/patches/203-Fix-coasting-for-negative-ScrollDelta.patch b/debian/patches/203-Fix-coasting-for-negative-ScrollDelta.patch
new file mode 100644
index 0000000..b492d8c
--- /dev/null
+++ b/debian/patches/203-Fix-coasting-for-negative-ScrollDelta.patch
@@ -0,0 +1,44 @@
+From 67a02d676c96d5b3d4729290cd96af0201eb76bb Mon Sep 17 00:00:00 2001
+From: Chun Yang <Chuck.Yang@gmail.com>
+Date: Tue, 15 May 2012 14:51:42 -0500
+Subject: [PATCH 3/6] Fix coasting for negative ScrollDelta
+
+Fix the coasting direction for when VertScrollDelta or HorizScrollDelta is
+negative.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=49966
+
+Regression introduced in 0de4445ff8e75aab208faf6383e76045934c6720
+
+Signed-off-by: Chun Yang <Chuck.Yang@gmail.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+(cherry picked from commit 53557a5cab1e253dc8f4393207954ae0fe76068f)
+---
+ src/synaptics.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/synaptics.c b/src/synaptics.c
+index 1d32093..074bcb8 100644
+--- a/src/synaptics.c
++++ b/src/synaptics.c
+@@ -2740,7 +2740,7 @@ HandleScrolling(SynapticsPrivate * priv, struct SynapticsHwState *hw,
+         double dtime = (hw->millis - priv->scroll.last_millis) / 1000.0;
+         double ddy = para->coasting_friction * dtime;
+ 
+-        priv->scroll.delta_y += priv->scroll.coast_speed_y * dtime * para->scroll_dist_vert;
++        priv->scroll.delta_y += priv->scroll.coast_speed_y * dtime * abs(para->scroll_dist_vert);
+         delay = MIN(delay, POLL_MS);
+         if (abs(priv->scroll.coast_speed_y) < ddy) {
+             priv->scroll.coast_speed_y = 0;
+@@ -2755,7 +2755,7 @@ HandleScrolling(SynapticsPrivate * priv, struct SynapticsHwState *hw,
+     if (priv->scroll.coast_speed_x) {
+         double dtime = (hw->millis - priv->scroll.last_millis) / 1000.0;
+         double ddx = para->coasting_friction * dtime;
+-        priv->scroll.delta_x += priv->scroll.coast_speed_x * dtime * para->scroll_dist_vert;
++        priv->scroll.delta_x += priv->scroll.coast_speed_x * dtime * abs(para->scroll_dist_horiz);
+         delay = MIN(delay, POLL_MS);
+         if (abs(priv->scroll.coast_speed_x) < ddx) {
+             priv->scroll.coast_speed_x = 0;
+-- 
+1.7.9.5
+
diff --git a/debian/patches/204-Reset-open-slots-array-on-device-disable.patch b/debian/patches/204-Reset-open-slots-array-on-device-disable.patch
new file mode 100644
index 0000000..b9baee8
--- /dev/null
+++ b/debian/patches/204-Reset-open-slots-array-on-device-disable.patch
@@ -0,0 +1,34 @@
+From 739175d198372a3226ce061b118d8fe5bbc8f6bf Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Wed, 16 May 2012 07:49:25 -0700
+Subject: [PATCH 4/6] 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@canonical.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+(cherry picked from commit 0054b144f3daf00e46a35b2f165befb209df94fc)
+---
+ src/synaptics.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/synaptics.c b/src/synaptics.c
+index 074bcb8..78660f4 100644
+--- a/src/synaptics.c
++++ b/src/synaptics.c
+@@ -1153,6 +1153,9 @@ SynapticsReset(SynapticsPrivate * priv)
+     priv->lastButtons = 0;
+     priv->prev_z = 0;
+     priv->prevFingers = 0;
++#ifdef HAVE_MULTITOUCH
++    memset(priv->open_slots, 0, priv->num_slots * sizeof(int));
++#endif
+ }
+ 
+ static Bool
+-- 
+1.7.9.5
+
diff --git a/debian/patches/205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch b/debian/patches/205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
new file mode 100644
index 0000000..da104cd
--- /dev/null
+++ b/debian/patches/205-Reset-hw-x-y-to-INT_MIN-and-skip-HandleState-until-w.patch
@@ -0,0 +1,78 @@


Reply to: