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

xserver-xorg-input-evdev: Changes to 'ubuntu'



 ChangeLog                               |  729 ++++++++++++++++-
 autogen.sh                              |    4 
 configure.ac                            |    4 
 debian/changelog                        |   58 +
 debian/control                          |    7 
 debian/patches/series                   |    2 
 debian/patches/use-sigsafe-logging.diff |   73 -
 debian/rules                            |    3 
 include/evdev-properties.h              |    4 
 man/evdev.man                           |   21 
 src/Makefile.am                         |    7 
 src/apple.c                             |    3 
 src/axis_labels.h                       |  198 ++++
 src/emuMB.c                             |    4 
 src/emuWheel.c                          |   16 
 src/evdev.c                             | 1298 ++++++++++++++++----------------
 src/evdev.h                             |   31 
 17 files changed, 1648 insertions(+), 814 deletions(-)

New commits:
commit cecd2bf51162a97cc4095340c318e9f15856fc76
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jun 25 13:18:39 2014 +0200

    Merge from debian-experimental.

diff --git a/debian/changelog b/debian/changelog
index cf6091f..ed14f5a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.9.0-1ubuntu1) UNRELEASED; urgency=low
+
+  * Merge from debian-experimental.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 25 Jun 2014 13:17:16 +0200
+
 xserver-xorg-input-evdev (1:2.9.0-1) experimental; urgency=medium
 
   * New upstream release

commit 5420644f18cc82d6210cdf900ec9fcb1dca1d4e7
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jun 25 13:15:22 2014 +0200

    Rebuild for xorg 1.15 abi.

diff --git a/debian/changelog b/debian/changelog
index 177d927..f5f6e4c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.8.2-1ubuntu2) trusty; urgency=medium
+
+  * Rebuild for xorg 1.15 abi.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 05 Feb 2014 09:36:37 +0000
+
 xserver-xorg-input-evdev (1:2.8.2-1ubuntu1) trusty; urgency=low
 
   * Merge from unreleased debian git, remaining changes:

commit d9a5284b1afa79464c2c60458edcebd0042c0b88
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Jun 6 09:16:34 2014 +0200

    Upload to experimental

diff --git a/debian/changelog b/debian/changelog
index 507cc7d..e51c6b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-evdev (1:2.9.0-1) UNRELEASED; urgency=medium
+xserver-xorg-input-evdev (1:2.9.0-1) experimental; urgency=medium
 
   * New upstream release
     - smooth scrolling improvements (closes: #702739)
@@ -6,7 +6,7 @@ xserver-xorg-input-evdev (1:2.9.0-1) UNRELEASED; urgency=medium
   * Remove Cyril from Uploaders.
   * Build against xserver 1.16 RC.
 
- -- Julien Cristau <jcristau@debian.org>  Thu, 05 Jun 2014 22:17:26 +0200
+ -- Julien Cristau <jcristau@debian.org>  Fri, 06 Jun 2014 09:16:30 +0200
 
 xserver-xorg-input-evdev (1:2.8.2-1) unstable; urgency=low
 

commit a9fa37763847b741ac18c86f573a7879a95f4630
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Jun 6 09:16:22 2014 +0200

    Build against xserver 1.16 RC.

diff --git a/debian/changelog b/debian/changelog
index b53815e..507cc7d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ xserver-xorg-input-evdev (1:2.9.0-1) UNRELEASED; urgency=medium
     - smooth scrolling improvements (closes: #702739)
   * Add build-dep on libevdev-dev.
   * Remove Cyril from Uploaders.
+  * Build against xserver 1.16 RC.
 
  -- Julien Cristau <jcristau@debian.org>  Thu, 05 Jun 2014 22:17:26 +0200
 
diff --git a/debian/control b/debian/control
index 3bddcb7..8e25605 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Build-Depends:
  dh-autoreconf,
  pkg-config,
  quilt,
- xserver-xorg-dev (>= 2:1.11.99.901),
+ xserver-xorg-dev (>= 2:1.15.99),
  x11proto-core-dev,
  x11proto-randr-dev,
  x11proto-input-dev (>= 2.1.99.3),

commit f0fbd4743bac70ec674b01fee66d7542b923e72f
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Jun 5 22:47:33 2014 +0200

    Remove Cyril from Uploaders.

diff --git a/debian/changelog b/debian/changelog
index d714cdb..b53815e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ xserver-xorg-input-evdev (1:2.9.0-1) UNRELEASED; urgency=medium
   * New upstream release
     - smooth scrolling improvements (closes: #702739)
   * Add build-dep on libevdev-dev.
+  * Remove Cyril from Uploaders.
 
  -- Julien Cristau <jcristau@debian.org>  Thu, 05 Jun 2014 22:17:26 +0200
 
diff --git a/debian/control b/debian/control
index c4964f4..3bddcb7 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: xserver-xorg-input-evdev
 Section: x11
 Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
-Uploaders: Drew Parsons <dparsons@debian.org>, Cyril Brulebois <kibi@debian.org>
+Uploaders: Drew Parsons <dparsons@debian.org>,
 Build-Depends:
  debhelper (>= 8),
  dh-autoreconf,

commit d83d42c341230177ad048444622a87195ce512f8
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Jun 5 22:21:55 2014 +0200

    Add build-dep on libevdev-dev.

diff --git a/debian/changelog b/debian/changelog
index 1e7c8fa..d714cdb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ xserver-xorg-input-evdev (1:2.9.0-1) UNRELEASED; urgency=medium
 
   * New upstream release
     - smooth scrolling improvements (closes: #702739)
+  * Add build-dep on libevdev-dev.
 
  -- Julien Cristau <jcristau@debian.org>  Thu, 05 Jun 2014 22:17:26 +0200
 
diff --git a/debian/control b/debian/control
index 719859d..c4964f4 100644
--- a/debian/control
+++ b/debian/control
@@ -17,6 +17,7 @@ Build-Depends:
  xutils-dev (>= 1:7.5+4),
  libudev-dev,
  libmtdev-dev,
+ libevdev-dev (>= 0.4),
 Standards-Version: 3.9.4
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-input-evdev
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-input-evdev.git

commit c49c361b981dd0ab0d4db0c3afbcba110dfed36d
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Jun 5 22:19:04 2014 +0200

    Bump changelogs

diff --git a/ChangeLog b/ChangeLog
index 903d473..033aa02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,27 +1,171 @@
-commit 51575b60b14d414490d31ff23f07c30431525667
+commit 5d239ceb260cd554245e8f0dc3627990726ea9b9
 Author: Peter Hutterer <peter.hutterer@who-t.net>
-Date:   Mon Oct 7 09:23:09 2013 +1100
+Date:   Thu May 15 08:41:06 2014 +1000
 
-    evdev 2.8.2
+    evdev 2.9.0
     
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
 
-commit f285567d372514d31096cc25a467d5d2e182885a
+commit 13dea90bc8ef2a2e6f55fb5ff5f54afe41d22f95
 Author: Peter Hutterer <peter.hutterer@who-t.net>
-Date:   Tue Aug 13 14:44:26 2013 +1000
+Date:   Tue May 6 09:20:05 2014 +1000
 
-    Write a SYN_REPORT after the last LED
+    Use the server's device list for duplicate detection (#78309)
     
-    When writing LED values to the device, append a SYN_REPORT to the list to
-    ensure other clients are updated immediately. Otherwise, the LED events
-    will be queued and not sent to other clients until the next input event
-    arrives.
+    EvdevAddDevice/EvdevRemoveDevice keep a reference to the device to detect
+    duplicate devices based on the dev_t.
+    
+    EvdevAddDevices was called during PreInit, EvdevRemoveDevice was called during
+    DEVICE_CLOSE. That makes it imbalanced if the device succeeds PreInit but the
+    server skips everything else because MAX_DEVICES is exceeded. So for all
+    devices after MAX_DEVICES, we'd add a reference but never remove it,
+    eventually reading/writing past evdev_devices.
+    
+    The server keeps the list of devices for us anyway, so remove the copy of all
+    the pointers and instead run through the device list the server gives us.
+    
+    X.Org Bug 78309 <http://bugs.freedesktop.org/show_bug.cgi?id=78309>
     
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
-    (cherry picked from commit 27926b3763e525470ec8e4ac9a97aa0e02f1dd95)
+    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+
+commit b25d71616557b0f3fc5e1ca65ba9e62809d14139
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Apr 29 10:20:42 2014 +1000
 
-commit af1d0858775dd130c59de921210a114580fef719
+    evdev 2.8.99.1
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 41cf9212d02c1d2adca0e85702a1f0faba9e6b37
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Apr 28 12:23:18 2014 +1000
+
+    Map REL_DIAL to horizontal scrolling (#73105)
+    
+    This was the original behavior introduced in
+    f77410e1f97d394e98c854fd174f712666b0544c and stayed that way until smooth
+    scrolling erroneously added it as vertical axis in
+    b450efdf95999cad08de23ce069f04a66bdae24b. Revert to horizontal scrolling to
+    restore the previous behaviour - which unbreaks scrolling on Microsoft mice.
+    
+    This effectively reverts 54a3120e339e55fc4721543abb15692c3e9ede09 too.
+    
+    X.Org Bug 73105 <http://bugs.freedesktop.org/show_bug.cgi?id=73105>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 75368052b57aa07252e26642315bcf9a0b2e78eb
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Apr 29 09:50:21 2014 +1000
+
+    Revert "Map REL_DIAL to horizontal scrolling (#73105)"
+    
+    Whoops, the vertical axis is swapped, so when changing the axis we also need
+    to change the direction.
+    
+    This reverts commit 16c85cbeacb721ed365c6240aabaad921b811fe0.
+
+commit 16c85cbeacb721ed365c6240aabaad921b811fe0
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Apr 28 12:23:18 2014 +1000
+
+    Map REL_DIAL to horizontal scrolling (#73105)
+    
+    This was the original behavior introduced in
+    f77410e1f97d394e98c854fd174f712666b0544c and stayed that way until smooth
+    scrolling erroneously added it as vertical axis in
+    b450efdf95999cad08de23ce069f04a66bdae24b. Revert to horizontal scrolling to
+    restore the previous behaviour - which unbreaks scrolling on Microsoft mice.
+    
+    This effectively reverts 54a3120e339e55fc4721543abb15692c3e9ede09 too.
+    
+    X.Org Bug 73105 <http://bugs.freedesktop.org/show_bug.cgi?id=73105>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+
+commit ae67f64f02434171e1828b00fbf4277c8166966e
+Author: Hans de Goede <hdegoede@redhat.com>
+Date:   Sat Mar 8 10:28:00 2014 +0100
+
+    evdev: Add support for server managed fds
+    
+    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit f6fcad8b107e834e26fb3da2c89e05294ff0a74c
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Aug 26 14:56:07 2013 +1000
+
+    Fix wheel emulation for absolute device (#68415)
+    
+    wheel emulation, for some reasons beyond time, got the value from
+    pEvdev->vals, then set the value back into pEvdev->vals. Alas, that value is
+    always 0, hence oldValue is zero and the delta is nil.
+    
+    If we're not in relative (touchpad) mode, store the current value in
+    old_vals, so they're retrievable for the next event.
+    
+    X.Org Bug 68415 <http://bugs.freedesktop.org/show_bug.cgi?id=68415>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit d171b3d9194581cb6ed59dbe45d6cbf009dc0eaa
+Author: Peter De Wachter <pdewacht@gmail.com>
+Date:   Wed Oct 3 22:08:12 2012 +0200
+
+    Export smooth scroll settings as an XInput property.
+    
+    A new property "Evdev Scrolling Distance" is created that holds three values
+    (vertical, horizontal and dial).
+    
+    Signed-off-by: Peter De Wachter <pdewacht@gmail.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit c3251deb4b988610c3766081345e49f538fca865
+Author: Peter De Wachter <pdewacht@gmail.com>
+Date:   Wed Oct 3 20:48:24 2012 +0200
+
+    Add configuration options for smooth scrolling.
+    
+    This patch creates three new xorg.conf options, VertScrollDelta,
+    HorizScrollDelta and DialDelta, which adjust the sensitivity of
+    smooth scrolling. These options take a positive integer, default
+    value is 1.
+    
+    Signed-off-by: Peter De Wachter <pdewacht@gmail.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit cabed4bbb6757e55f067126965f26bb0f716fb55
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 14 11:48:30 2013 +1000
+
+    Use num_slots where appropriate
+    
+    This was supposed to be added in 43e270fb7a10da20ab89dd699839c1cb6df119b4, but
+    got lost somehow.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit a75c43830ef2f1b9ba0e265baf614cdfea617beb
+Merge: d9aadfd 164c62a
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 7 09:22:09 2013 +1100
+
+    Merge branch 'libevdev'
+
+commit d9aadfd5f05abd9a65977d9d36cbe159d6e05386
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Oct 7 09:21:57 2013 +1100
+
+    bump to 2.8.99
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 54a3120e339e55fc4721543abb15692c3e9ede09
 Author: Peter De Wachter <pdewacht@gmail.com>
 Date:   Wed Mar 20 00:35:45 2013 +0100
 
@@ -33,7 +177,81 @@ Date:   Wed Mar 20 00:35:45 2013 +0100
     Signed-off-by: Peter De Wachter <pdewacht@gmail.com>
     Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
     Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-    (cherry picked from commit 54a3120e339e55fc4721543abb15692c3e9ede09)
+
+commit 164c62a97591d4c9b649460e7442977ea82ac02b
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed May 29 07:17:41 2013 +1000
+
+    Use libevdev as backend
+    
+    Removes the need to ioctl manually and check bits, with all the dangers that
+    come with that. libevdev is much better prepared for invalid values, OOB
+    checks, etc.
+    
+    Plus, we get almost free SYN_DROPPED handling as well which we didn't have
+    before.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+
+commit 43e270fb7a10da20ab89dd699839c1cb6df119b4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Sep 10 15:05:58 2013 +1000
+
+    Use helper function for counting slots
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+
+commit 4ca57716ca4d0bea7bcd9a52e88e5cf7064a9ad9
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Sep 10 15:04:40 2013 +1000
+
+    Drop ABS_MT_SLOT minimum - the kernel guarantees a minimum of 0
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+
+commit 0f16065b00436c5df48af6e1d6a18e2ed27a12fd
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Aug 28 14:23:49 2013 +1000
+
+    Remove a comment
+    
+    This comment is now in the wrong place. It was moved when abs support for
+    wheel emulation was added but is now only confusing. Remove it altogether,
+    the code is quite obvious what it does.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit cae14787815c452a618c8bd684e2df4892dc93cb
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Aug 1 10:43:32 2013 +1000
+
+    Don't use mtdev for protocol B devices
+    
+    If a device has ABS_MT_SLOT, mtdev merely reads the events and returns them
+    to the caller as-is. For this we don't need mtdev, we can just handle those
+    events ourselves.
+    
+    This patch switches to the mtdev plumbing layer that takes events and
+    converts them instead of reading them off the fd.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 27926b3763e525470ec8e4ac9a97aa0e02f1dd95
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Aug 13 14:44:26 2013 +1000
+
+    Write a SYN_REPORT after the last LED
+    
+    When writing LED values to the device, append a SYN_REPORT to the list to
+    ensure other clients are updated immediately. Otherwise, the LED events
+    will be queued and not sent to other clients until the next input event
+    arrives.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
 
 commit 8a9b1ec6b58a36910a03f3e8b1f9bc8d91f87204
 Author: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/debian/changelog b/debian/changelog
index bc31cb4..1e7c8fa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-input-evdev (1:2.9.0-1) UNRELEASED; urgency=medium
+
+  * New upstream release
+    - smooth scrolling improvements (closes: #702739)
+
+ -- Julien Cristau <jcristau@debian.org>  Thu, 05 Jun 2014 22:17:26 +0200
+
 xserver-xorg-input-evdev (1:2.8.2-1) unstable; urgency=low
 
   [ Michele Cane ]

commit 5d239ceb260cd554245e8f0dc3627990726ea9b9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 15 08:41:06 2014 +1000

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

diff --git a/configure.ac b/configure.ac
index 7bc0ed3..1325424 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.8.99.1],
+        [2.9.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 13dea90bc8ef2a2e6f55fb5ff5f54afe41d22f95
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 6 09:20:05 2014 +1000

    Use the server's device list for duplicate detection (#78309)
    
    EvdevAddDevice/EvdevRemoveDevice keep a reference to the device to detect
    duplicate devices based on the dev_t.
    
    EvdevAddDevices was called during PreInit, EvdevRemoveDevice was called during
    DEVICE_CLOSE. That makes it imbalanced if the device succeeds PreInit but the
    server skips everything else because MAX_DEVICES is exceeded. So for all
    devices after MAX_DEVICES, we'd add a reference but never remove it,
    eventually reading/writing past evdev_devices.
    
    The server keeps the list of devices for us anyway, so remove the copy of all
    the pointers and instead run through the device list the server gives us.
    
    X.Org Bug 78309 <http://bugs.freedesktop.org/show_bug.cgi?id=78309>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/evdev.c b/src/evdev.c
index 6175015..30f809b 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -68,11 +68,6 @@
 /* removed from server, purge when dropping support for server 1.10 */
 #define XI86_SEND_DRAG_EVENTS   0x08
 
-#ifndef MAXDEVICES
-#include <inputstr.h> /* for MAX_DEVICES */
-#define MAXDEVICES MAX_DEVICES
-#endif
-
 #define ArrayLength(a) (sizeof(a) / (sizeof((a)[0])))
 
 #define MIN_KEYCODE 8
@@ -146,11 +141,6 @@ static Atom prop_device;
 static Atom prop_virtual;
 static Atom prop_scroll_dist;
 
-/* All devices the evdev driver has allocated and knows about.
- * MAXDEVICES is safe as null-terminated array, as two devices (VCP and VCK)
- * cannot be used by evdev, leaving us with a space of 2 at the end. */
-static EvdevPtr evdev_devices[MAXDEVICES] = {NULL};
-
 static int EvdevSwitchMode(ClientPtr client, DeviceIntPtr device, int mode)
 {
     InputInfoPtr pInfo;
@@ -216,58 +206,23 @@ static BOOL
 EvdevIsDuplicate(InputInfoPtr pInfo)
 {
     EvdevPtr pEvdev = pInfo->private;
-    EvdevPtr* dev   = evdev_devices;
+    InputInfoPtr d;
 
-    if (pEvdev->min_maj)
+    nt_list_for_each_entry(d, xf86FirstLocalDevice(), next)
     {
-        while(*dev)
-        {
-            if ((*dev) != pEvdev &&
-                (*dev)->min_maj &&
-                (*dev)->min_maj == pEvdev->min_maj)
-                return TRUE;
-            dev++;
-        }
-    }
-    return FALSE;
-}
+        EvdevPtr e;
 
-/**
- * Add to internal device list.
- */
-static void
-EvdevAddDevice(InputInfoPtr pInfo)
-{
-    EvdevPtr pEvdev = pInfo->private;
-    EvdevPtr* dev = evdev_devices;
-
-    while(*dev)
-        dev++;
-
-    *dev = pEvdev;
-}
-
-/**
- * Remove from internal device list.
- */
-static void
-EvdevRemoveDevice(InputInfoPtr pInfo)
-{
-    EvdevPtr pEvdev = pInfo->private;
-    EvdevPtr *dev   = evdev_devices;
-    int count       = 0;
+        if (strcmp(d->drv->driverName, "evdev") != 0)
+            continue;
 
-    while(*dev)
-    {
-        count++;
-        if (*dev == pEvdev)
-        {
-            memmove(dev, dev + 1,
-                    sizeof(evdev_devices) - (count * sizeof(EvdevPtr)));
-            break;
-        }
-        dev++;
+        e = (EvdevPtr)d->private;
+        if (e != pEvdev &&
+            e->min_maj &&
+            e->min_maj == pEvdev->min_maj)
+            return TRUE;
     }
+
+    return FALSE;
 }
 
 static BOOL
@@ -2026,7 +1981,6 @@ EvdevProc(DeviceIntPtr device, int what)
 	xf86IDrvMsg(pInfo, X_INFO, "Close\n");
         EvdevCloseDevice(pInfo);
         EvdevFreeMasks(pEvdev);
-        EvdevRemoveDevice(pInfo);
         pEvdev->min_maj = 0;
 	break;
 
@@ -2659,8 +2613,6 @@ EvdevPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
                                          pInfo->type_name);
     pInfo->type_name = pEvdev->type_name;
 
-    EvdevAddDevice(pInfo);
-
     if (pEvdev->flags & EVDEV_BUTTON_EVENTS)
     {
         EvdevMBEmuPreInit(pInfo);

commit b25d71616557b0f3fc5e1ca65ba9e62809d14139
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 29 10:20:42 2014 +1000

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

diff --git a/configure.ac b/configure.ac
index 2504ec3..7bc0ed3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.8.99],
+        [2.8.99.1],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 41cf9212d02c1d2adca0e85702a1f0faba9e6b37
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 28 12:23:18 2014 +1000

    Map REL_DIAL to horizontal scrolling (#73105)
    
    This was the original behavior introduced in
    f77410e1f97d394e98c854fd174f712666b0544c and stayed that way until smooth
    scrolling erroneously added it as vertical axis in
    b450efdf95999cad08de23ce069f04a66bdae24b. Revert to horizontal scrolling to
    restore the previous behaviour - which unbreaks scrolling on Microsoft mice.
    
    This effectively reverts 54a3120e339e55fc4721543abb15692c3e9ede09 too.
    
    X.Org Bug 73105 <http://bugs.freedesktop.org/show_bug.cgi?id=73105>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/evdev.c b/src/evdev.c
index ed84f0f..6175015 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1574,8 +1574,8 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int want_scroll_axes)
                                        NO_AXIS_LIMITS, NO_AXIS_LIMITS,
                                        0, 0, 0, Relative);
             SetScrollValuator(device, pEvdev->rel_axis_map[idx],
-                              SCROLL_TYPE_VERTICAL,
-                              -pEvdev->smoothScroll.dial_delta,
+                              SCROLL_TYPE_HORIZONTAL,
+                              pEvdev->smoothScroll.dial_delta,
                               SCROLL_FLAG_NONE);
         }
     }
@@ -1652,8 +1652,8 @@ EvdevSetScrollValuators(DeviceIntPtr device)
 
     axnum = pEvdev->rel_axis_map[REL_DIAL];
     if (axnum != -1) {
-        SetScrollValuator(device, axnum, SCROLL_TYPE_VERTICAL,
-                          -pEvdev->smoothScroll.dial_delta,
+        SetScrollValuator(device, axnum, SCROLL_TYPE_HORIZONTAL,
+                          pEvdev->smoothScroll.dial_delta,
                           SCROLL_FLAG_NONE);
     }
 

commit 75368052b57aa07252e26642315bcf9a0b2e78eb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 29 09:50:21 2014 +1000

    Revert "Map REL_DIAL to horizontal scrolling (#73105)"
    
    Whoops, the vertical axis is swapped, so when changing the axis we also need
    to change the direction.
    
    This reverts commit 16c85cbeacb721ed365c6240aabaad921b811fe0.

diff --git a/src/evdev.c b/src/evdev.c
index 6d02bdd..ed84f0f 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1574,7 +1574,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int want_scroll_axes)
                                        NO_AXIS_LIMITS, NO_AXIS_LIMITS,
                                        0, 0, 0, Relative);
             SetScrollValuator(device, pEvdev->rel_axis_map[idx],
-                              SCROLL_TYPE_HORIZONTAL,
+                              SCROLL_TYPE_VERTICAL,
                               -pEvdev->smoothScroll.dial_delta,
                               SCROLL_FLAG_NONE);
         }
@@ -1652,7 +1652,7 @@ EvdevSetScrollValuators(DeviceIntPtr device)
 
     axnum = pEvdev->rel_axis_map[REL_DIAL];
     if (axnum != -1) {
-        SetScrollValuator(device, axnum, SCROLL_TYPE_HORIZONTAL,
+        SetScrollValuator(device, axnum, SCROLL_TYPE_VERTICAL,
                           -pEvdev->smoothScroll.dial_delta,
                           SCROLL_FLAG_NONE);
     }

commit 16c85cbeacb721ed365c6240aabaad921b811fe0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 28 12:23:18 2014 +1000

    Map REL_DIAL to horizontal scrolling (#73105)
    
    This was the original behavior introduced in
    f77410e1f97d394e98c854fd174f712666b0544c and stayed that way until smooth
    scrolling erroneously added it as vertical axis in
    b450efdf95999cad08de23ce069f04a66bdae24b. Revert to horizontal scrolling to
    restore the previous behaviour - which unbreaks scrolling on Microsoft mice.
    
    This effectively reverts 54a3120e339e55fc4721543abb15692c3e9ede09 too.
    
    X.Org Bug 73105 <http://bugs.freedesktop.org/show_bug.cgi?id=73105>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/src/evdev.c b/src/evdev.c
index ed84f0f..6d02bdd 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1574,7 +1574,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int want_scroll_axes)
                                        NO_AXIS_LIMITS, NO_AXIS_LIMITS,
                                        0, 0, 0, Relative);
             SetScrollValuator(device, pEvdev->rel_axis_map[idx],
-                              SCROLL_TYPE_VERTICAL,
+                              SCROLL_TYPE_HORIZONTAL,
                               -pEvdev->smoothScroll.dial_delta,
                               SCROLL_FLAG_NONE);
         }
@@ -1652,7 +1652,7 @@ EvdevSetScrollValuators(DeviceIntPtr device)
 
     axnum = pEvdev->rel_axis_map[REL_DIAL];
     if (axnum != -1) {
-        SetScrollValuator(device, axnum, SCROLL_TYPE_VERTICAL,
+        SetScrollValuator(device, axnum, SCROLL_TYPE_HORIZONTAL,
                           -pEvdev->smoothScroll.dial_delta,
                           SCROLL_FLAG_NONE);
     }

commit ae67f64f02434171e1828b00fbf4277c8166966e
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Mar 8 10:28:00 2014 +0100

    evdev: Add support for server managed fds
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/evdev.c b/src/evdev.c
index d1ed9ee..ed84f0f 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -97,6 +97,10 @@
 #define ABS_MT_TRACKING_ID 0x39
 #endif
 
+#ifndef XI86_SERVER_FD
+#define XI86_SERVER_FD 0x20
+#endif
+
 static const char *evdevDefaults[] = {
     "XkbRules",     "evdev",
     "XkbModel",     "pc104", /* the right model for 'us' */
@@ -2478,32 +2482,32 @@ EvdevOpenDevice(InputInfoPtr pInfo)
         xf86IDrvMsg(pInfo, X_CONFIG, "Device: \"%s\"\n", device);
     }
 
-    if (pInfo->fd < 0)
+    if (!(pInfo->flags & XI86_SERVER_FD) && pInfo->fd < 0)
     {
         do {
             pInfo->fd = open(device, O_RDWR | O_NONBLOCK, 0);
         } while (pInfo->fd < 0 && errno == EINTR);
+    }
 
-        if (pInfo->fd < 0) {
-            xf86IDrvMsg(pInfo, X_ERROR, "Unable to open evdev device \"%s\".\n", device);
-            return BadValue;
-        }
+    if (pInfo->fd < 0) {
+        xf86IDrvMsg(pInfo, X_ERROR, "Unable to open evdev device \"%s\".\n", device);
+        return BadValue;
+    }
 
-        if (libevdev_get_fd(pEvdev->dev) != -1) {
-            struct input_event ev;
+    if (libevdev_get_fd(pEvdev->dev) != -1) {
+        struct input_event ev;
 
-            libevdev_change_fd(pEvdev->dev, pInfo->fd);
-            /* re-sync libevdev's view of the device, but
-               we don't care about the actual events here */
-            libevdev_next_event(pEvdev->dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
-            while (libevdev_next_event(pEvdev->dev, LIBEVDEV_READ_FLAG_SYNC, &ev) == LIBEVDEV_READ_STATUS_SYNC)
-                ;
-        } else {
-            int rc = libevdev_set_fd(pEvdev->dev, pInfo->fd);
-            if (rc < 0) {
-                xf86IDrvMsg(pInfo, X_ERROR, "Unable to query fd: %s\n", strerror(-rc));
-                return BadValue;
-            }
+        libevdev_change_fd(pEvdev->dev, pInfo->fd);
+        /* re-sync libevdev's view of the device, but
+           we don't care about the actual events here */
+        libevdev_next_event(pEvdev->dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev);
+        while (libevdev_next_event(pEvdev->dev, LIBEVDEV_READ_FLAG_SYNC, &ev) == LIBEVDEV_READ_STATUS_SYNC)
+            ;
+    } else {
+        int rc = libevdev_set_fd(pEvdev->dev, pInfo->fd);
+        if (rc < 0) {
+            xf86IDrvMsg(pInfo, X_ERROR, "Unable to query fd: %s\n", strerror(-rc));
+            return BadValue;
         }
     }
 
@@ -2531,7 +2535,7 @@ static void
 EvdevCloseDevice(InputInfoPtr pInfo)
 {
     EvdevPtr pEvdev = pInfo->private;
-    if (pInfo->fd >= 0)
+    if (!(pInfo->flags & XI86_SERVER_FD) && pInfo->fd >= 0)
     {
         close(pInfo->fd);
         pInfo->fd = -1;
@@ -2679,7 +2683,10 @@ _X_EXPORT InputDriverRec EVDEV = {
     EvdevPreInit,
     EvdevUnInit,
     NULL,
-    evdevDefaults
+    evdevDefaults,
+#ifdef XI86_DRV_CAP_SERVER_FD
+    XI86_DRV_CAP_SERVER_FD
+#endif
 };
 
 static void

commit 76a10e1ca25387dc3570e6e905b9c5b95447ce9d
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Mon Dec 2 13:17:57 2013 +0100

    release to trusty

diff --git a/debian/changelog b/debian/changelog
index fdcf1b1..177d927 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xserver-xorg-input-evdev (1:2.8.2-1ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-input-evdev (1:2.8.2-1ubuntu1) trusty; urgency=low
 
   * Merge from unreleased debian git, remaining changes:
     - local/11-evdev-trackpoint.conf: Add a config snippet for enabling wheel
       emulation for trackpoint devices
     - local/11-evdev-quirks.conf: Added quirks for various devices.
 
- -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Mon, 02 Dec 2013 13:15:27 +0100
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Mon, 02 Dec 2013 13:17:48 +0100
 
 xserver-xorg-input-evdev (1:2.8.2-1) unstable; urgency=low
 

commit ee881a3ef25723d84abd43929e63c027f61d7d8b
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Mon Dec 2 13:17:35 2013 +0100

    drop upstream patch, merge debian-unstable

diff --git a/debian/changelog b/debian/changelog
index 160811d..fdcf1b1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+xserver-xorg-input-evdev (1:2.8.2-1ubuntu1) UNRELEASED; urgency=low
+
+  * Merge from unreleased debian git, remaining changes:
+    - local/11-evdev-trackpoint.conf: Add a config snippet for enabling wheel
+      emulation for trackpoint devices
+    - local/11-evdev-quirks.conf: Added quirks for various devices.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Mon, 02 Dec 2013 13:15:27 +0100
+
 xserver-xorg-input-evdev (1:2.8.2-1) unstable; urgency=low
 
   [ Michele Cane ]
diff --git a/debian/patches/series b/debian/patches/series
index 5829c36..fdffa2a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1 @@
-use-sigsafe-logging.diff
+# placeholder
diff --git a/debian/patches/use-sigsafe-logging.diff b/debian/patches/use-sigsafe-logging.diff
deleted file mode 100644
index ed022fe..0000000
--- a/debian/patches/use-sigsafe-logging.diff
+++ /dev/null
@@ -1,73 +0,0 @@
-commit 5af11b675242b2971f47c42a57b892dc24eb1917
-Author: Peter Hutterer <peter.hutterer@who-t.net>
-Date:   Fri May 25 13:39:32 2012 +1000
-
-    Use LogMessageVerbSigSafe if available
-    
-    Messages logged during the signal handler should use LogMessageVerbSigSafe
-    as of ABI 18.
-    
-    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-
---- a/src/evdev.c
-+++ b/src/evdev.c
-@@ -339,7 +339,7 @@
- 
-     if (pEvdev->num_queue >= EVDEV_MAXQUEUE)
-     {
--        xf86IDrvMsg(pInfo, X_NONE, "dropping event due to full queue!\n");
-+        LogMessageVerbSigSafe(X_WARNING, 0, "dropping event due to full queue!\n");
-         return NULL;
-     }
- 
-@@ -788,9 +788,10 @@
-                     valuator_mask_copy(pEvdev->mt_mask,
-                                        pEvdev->last_mt_vals[slot_index]);
-                 else
--                    xf86IDrvMsg(pInfo, X_WARNING,
--                                "Attempted to copy values from out-of-range "
--                                "slot, touch events may be incorrect.\n");
-+                    LogMessageVerbSigSafe(X_WARNING, 0,
-+                                "%s: Attempted to copy values from out-of-range "
-+                                "slot, touch events may be incorrect.\n",
-+                                pInfo->name);
-             } else
-                 pEvdev->slot_state = SLOTSTATE_CLOSE;
-         } else {
-@@ -1109,19 +1110,15 @@
-             if (errno == ENODEV) /* May happen after resume */
-                 xf86RemoveEnabledDevice(pInfo);
-             else if (errno != EAGAIN)
--            {
--                /* We use X_NONE here because it doesn't alloc */
--                xf86MsgVerb(X_NONE, 0, "%s: Read error: %s\n", pInfo->name,
--                        strerror(errno));
--            }
-+                LogMessageVerbSigSafe(X_ERROR, 0, "%s: Read error: %s\n", pInfo->name,
-+                                       strerror(errno));
-             break;
-         }
- 
-         /* The kernel promises that we always only read a complete
-          * event, so len != sizeof ev is an error. */
-         if (len % sizeof(ev[0])) {
--            /* We use X_NONE here because it doesn't alloc */
--            xf86MsgVerb(X_NONE, 0, "%s: Read error: %s\n", pInfo->name, strerror(errno));
-+            LogMessageVerbSigSafe(X_ERROR, 0, "%s: Read error: %s\n", pInfo->name, strerror(errno));
-             break;
-         }


Reply to: