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: