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>

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>

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>

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

    Map REL_DIAL to vertical scrolling
    
    This makes the absolute axis codepath behave the same as the relative axis
    path.
    
    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 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>
Date:   Thu Jul 11 11:09:24 2013 +1000

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

commit 356565111a6bb98f15fbaaf4f527aed8c87b477b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 27 05:47:38 2013 +1000

    Don't allow a wheel emulation inertia of 0 (#66125)
    
    Inertia of 0 results in an infinite loop of events being sent to the server.
    
    X.Org Bug 66125 <http://bugs.freedesktop.org/show_bug.cgi?id=66125>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fff3a60fbf5c81b337ae4eaf160feacdfc8c2465
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed May 29 13:26:57 2013 +1000

    Use EvdevBitIsSet, not the server's BitIsOn
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f209ac60d10ba61aa6ea2bec02dbfa54ebe8f17
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed May 29 07:18:19 2013 +1000

    Drop cached name and led_bitmask - nothing reads this
    
    Both fields are write-only as of xf86-input-evdev-2.5.99.902-1-g1ced7ec
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a0d41af8969b91ec51ebdfb966ccc47e5c40329a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 27 10:19:15 2013 +1000

    Switch default model to pc104.
    
    As of xkeyboard-config 1.9, the evdev model is hidden (c887d2876)
    The server switched to pc105 with version 1.8 (1df4bd601).
    
    The evdev model resolves to pc104 anyway, so this commit has no real effect
    other than to switch from a catch-all rule to explicit.
    Use pc104 so this is easy to find for those investigating the code and
    wondering why. pc104 is the 'correct' geometry for the us layout, which is
    the default after all. Switching to pc105 would show keys missing if no
    model is set (e.g. on uk/de layouts) but it would be the wrong layout for
    the default.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Daniel Stone <daniel@fooishbar.org>

commit dea1d1a3906b98b491e9760b3304f881c6afec5e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 29 11:48:12 2013 +1000

    Fail to set up axes for devices that only have MT axes but no ABS_X/Y equivalents (#64029)
    
    The kernel should give us ABS_X/Y for backwards compat but some devices
    don't. For now, ignore these devices as evdev is not suited to handle this
    yet and will crash if a device is set up without axes (i.e.
    pEvdev->vals == NULL) and later receives an event from an MT axis.
    
    X.Org Bug 64029 <http://bugs.freedesktop.org/show_bug.cgi?id=64029>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

commit b59a1a25dad4437e013ce8d3d65d4591c6f4ee4a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 2 14:12:26 2013 +1000

    Add option TypeName (#62831)
    
    evdev tries to assign the right XI 1.x type-name based on various device
    capabilities. In some cases, that fails. e.g. the Mionix Naos 5000 mouse
    looks like a keyboard. And we assign a keyboard type in that case since
    there are plenty of keyboards that also advertise some axes or others.
    
    Add a new option TypeName to allow for system-wide configuration of such
    devices in a quirks file.
    
    This can also be used to address #55867
    
    X.Org Bug 62831 <http://bugs.freedesktop.org/show_bug.cgi?id=62831>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5138cd2ff47a1a28db82688b932cb1ecd618778f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 26 16:01:39 2013 +1000

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

commit c085c8b6c1f8e95f6f4d91bc65268fe57154018c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 12 12:58:08 2013 +1000

    Return BadValue if EvdevOpenMTDev fails
    
    FALSE == Success, so if we fail during EvdevOpenMTDev, the caller thinks
    that everything worked fine, proceeds to set up the fd, etc.
    
    This may later cause a crash, when a device comes back later as different
    device and posts axis events where we didn't configure axes in the first
    place.
    
    Note: Unclear why there was no udev event received for the device being
    removed and coming back as different device though.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2b675f85aef6df3bb3fb5e68648982e11b752764
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 12 12:48:38 2013 +1000

    Make errors on EVIOCGBIT more obvious
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2b8b0df62ec554952784f2820fb4143c495232b0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 24 16:18:48 2013 +1000

    Always init axis mapping for the first two rel axes (#59784)
    
    Fixes regression introduced in 2f67509b53b27dd7f51ca2aadd19605aee613a61.
    
    If evdev is used for touchpads, the abs axis movement is converted to a rel
    movement. Without the two relative axes initialized, the events are
    discarded.
    
    Axes 0 and 1 are always x/y anyway unless specifically configured otherwise.
    
    X.Org Bug 59784 <http://bugs.freedesktop.org/show_bug.cgi?id=59784>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bb9b4146cb828bd366675e8736fc145e92c9269a
Merge: f5fe533 67e5376
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 25 11:12:05 2013 +1000

    Merge branch 'touch-axis-swap'

commit f5fe533f1bef0c636b98658aaf40748c219c9879
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 27 12:18:46 2012 +1000

    Allow relative scroll valuators on absolute devices (#54387)
    
    Special-case RHEL_WHEEL, RHEL_HWHEEL and REL_DIAL to add scroll valuators
    for those axes in addition to the absolute axes.
    
    X.Org Bug 54387 <http://bugs.freedesktop.org/show_bug.cgi?id=54387>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2f67509b53b27dd7f51ca2aadd19605aee613a61
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 16 08:38:52 2013 +1000

    Split rel and abs axis mapping into two separate arrays
    
    This will enable a device to have relative scrolling axes in addition to
    absolute axes (required by the QEMU tablet).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ffc0a34642d5ab573c2ae63c873a5befd8688493
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 15 16:15:47 2013 +1000

    Move some stuff into the new alloc function
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 93de7b0b73d4c5f6f68e3a2ffe8f76b5212ee016
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 15 16:11:16 2013 +1000

    Move allocation of EvdevRec into a helper function
    
    Makes it easier to initialise everything to the right values.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9ec9d214d072ef4aaffb65b5575eff58edcb62ed
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jan 4 17:37:06 2012 -0500

    autogen.sh: Implement GNOME Build API
    
    http://people.gnome.org/~walters/docs/build-api.txt
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

commit 94e6df8f5f6048b8d0c7aa34efe1c0dc70b997d1
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Jan 16 13:11:11 2013 -0500

    configure: Drop AM_MAINTAINER_MODE
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

commit 67e5376aaa62a1586fee37d610b3ad7e3b8bbcab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 14 14:45:58 2013 +1000

    Handle axis swap, calibration, and inversion for touch events (#59340)
    
    X.Org Bug 59340 <http://bugs.freedesktop.org/show_bug.cgi?id=59340>
    
    Reported-by: Bastien Nocera <hadess@hadess.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2432626b70b7f55a337bcfdc9ba415811634c062
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 14 14:10:14 2013 +1000

    Move calibration adjustments to helper function
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 069c035ab0787e6841159929199ae58502d89c4b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 14 14:07:26 2013 +1000

    Move valuator swapping into a helper function
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3b7ba39fcaf261f800205fd6cf45fea9998529e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 14 14:03:54 2013 +1000

    Localise tmp variable
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 454194f4b530af5d7f92a3b28c28495b4faac547
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Tue Jan 8 15:04:07 2013 +1000

    Force a button if MT axes are present and it is not a gamepad
    
    We expect at least BTN_TOUCH for anything with MT axes, but devices that
    don't have that need a button class regardless. Some gamepads define
    MT axes but no buttons, causing a bug in the server when they post a
    TouchBegin.
    
    [ 97436.293] (EE) BUG: triggered 'if (!b || !v)'
    [ 97436.293] (EE) BUG: exevents.c:929 in UpdateDeviceState()
    
    So, ignore it, if it is a joystick (e. g. if it have BTN_JOYSTICK defined).
    Otherwise, fake a button.
    
    This patch basically merges two patches written by Peter Hutterer
    <peter.hutterer@who-t.net>.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 00341e632c89e14a83a55e3578b8bb2684ce4ae2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 7 10:20:52 2013 +1000

    Drop special XKB option handling
    
    This isn't actually needed at all.
    
    xf86nameCompare() will skip over underscores and is case-independent. So
    xf86SetStrOption("foo_bar") will return an Option "FooBar" and vice versa.
    
    The server won't return a zero-length string either, it'll return
    NULL and spit a warning to the log.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f2d2b65343a902c5eedaf50b6f6bcb5ba1ef9c4a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 7 09:14:42 2013 +1000

    Localise XKB initialization
    
    No need to store this in the evdev struct.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0d6c6b59c153cb53b53d6860387b4fe40d245628
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 30 10:32:47 2012 +1000

    If stat fails, pretend it's not a virtual device
    
    If stat fails while checking if the device is virtual, just say "no, it's
    not virtual" and continue. If the device really went away, it'll be removed
    through other means.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c263d6e46d76b3e54570da637b1e7352437bb59d
Author: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Date:   Fri Oct 26 16:27:35 2012 +0200

    Add missing mt axis labels
    
    update evdev according to latest changes in input.h
    
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

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>

commit 33e7831b5fabc5c9dcc0224800a04761086952a7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 7 14:32:17 2012 +1000

    Fix broken ButtonMapping option (#53168)
    
    Regression introduced in 8af0e6f1ebaf327f735bca507134b34bb24b26c6.
    s is now initialized to NULL, so we never entered the loop.
    
    X.Org Bug 53168 <http://bugs.freedesktop.org/show_bug.cgi?id=53168>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bc8997e8120cc8d4f33f44e0734fa488f9fef3b0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Aug 5 12:26:38 2012 +1000

    Link against libudev
    
    Fixes /usr/bin/Xorg: symbol lookup error:
    /usr/lib64/xorg/modules/input/evdev_drv.so: undefined symbol: udev_new
    
    This doesn't appear in the default configuration as Xorg links against
    libudev and the symbol is defined when evdev is loaded. It can be reproduced
    with a HAL-enabled server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 1cb8f074df8d16879ec80d778d26fb5b9af05a3b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 31 16:39:00 2012 +1000

    Don't delete the device on ENODEV
    
    This is signal handler code and we cannot clean up properly while in the
    signal handler. So reduce the code to removing the signal handler and let
    the device be cleaned up later.
    
    If hotplugging is on, the server will remove it when the config backend says
    so and if it is off, the server will remove it on shutdown.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 4eacb581fb71eaf515ec67af0f206126d8328043
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 4 10:12:10 2012 +1000

    Only use mtdev for multitouch devices
    
    mtdev uses a chunk of memory per device (~41kB), mainly for for its
    internal event buffers. The average box these days can easily have 10
    devices, but only few of those are multitouch. So check if we have
    ABS_MT_POSITION axes and only create an mtdev instance if we do.
    
    If a device has multitouch axes but not x/y, we will ignore events from this
    device now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 98af2003d48530b2e102cf667a9d40dcb94cb0fe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 4 09:14:41 2012 +1000

    Don't re-open mtdev after PreInit
    
    ==16557== 388,240 (3,520 direct, 384,720 indirect) bytes in 10 blocks are definitely lost in loss record 1,669 of 1,671
    ==16557==    at 0x4A06F18: calloc (vg_replace_malloc.c:566)
    ==16557==    by 0xC3EAD4D: mtdev_new (core.c:345)
    ==16557==    by 0xC3EAE6B: mtdev_new_open (core.c:383)
    ==16557==    by 0xC1E0452: EvdevOpenDevice (evdev.c:2365)
    ==16557==    by 0xC1E068C: EvdevPreInit (evdev.c:2431)
    ==16557==    by 0x4B8304: xf86NewInputDevice (xf86Xinput.c:846)
    ==16557==    by 0x4B8857: NewInputDeviceRequest (xf86Xinput.c:989)
    ==16557==    by 0x4CCB4C: device_added (udev.c:211)
    ==16557==    by 0x4CCFA6: config_udev_init (udev.c:342)
    ==16557==    by 0x4CBE81: config_init (config.c:48)
    ==16557==    by 0x4A8A9A: InitInput (xf86Init.c:918)
    ==16557==    by 0x4921EE: main (main.c:258)
    
    After PreInit, the fd and mtdev pointer are still valid. We check for the
    fd, but unconditionally allocated another mtdev struct for each device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit f5ede98085688b59dc56a9cc6592f75552a4e7ed
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Tue Jul 10 00:34:56 2012 +0100

    Fix compilation warnings for non-multitouch builds
    
    Signed-off-by: Daniel Stone <daniel@fooishbar.org>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ff926d15b8176c5e90fced23bb1aa041c3dca20e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 30 11:21:23 2012 +1000

    Move axis labels into a separate header file
    
    Just to unclutter the code
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b0e3c8f97809c8e323783ded0d308c6f0b7729ff
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 29 09:25:43 2012 +1000

    Split initializing one axis label out into a helper function
    
    We need this for mixed axis devices. No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 9624f4e2ba7d1973813de066806eed108748a53a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 28 10:08:23 2012 +1000

    Constify InputDriverRec->default_options
    
    Removes a warning, and with the input ABI 18 this is forced to const in the
    server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 047955f51e013c190bb09ba0c03ca2c160f34997
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 28 09:50:57 2012 +1000

    Move duplicate check up before mtdev allocation
    
    No need to alloc mtdev if we then find out the fd is a duplicate one anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 8251d7a8ec00b4160b6601a6f2f4f0f5d461cbee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 28 09:50:15 2012 +1000

    Close the fd when mtdev open fails
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit ac5173163d7d1e18d47630a397ece0f26b2568c8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 28 09:08:43 2012 +1000

    Release mtdev data whenever we close the fd
    
    Add a new EvdevCloseDevice() function to unify this.
    We used to leak data
    - PreInit allocates mtdev, but nothing except one error path released it.
    - each DEVICE_ON re-allocates mtdev but it is never released
    
    Reported-by: Zdenek Kabelac <zdenek.kabelac@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 61faf2e6e70a4c9ecffe638d46829738dc2e3452
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 25 14:04:22 2012 +1000

    strtol doesn't need a empty string, NULL is good enough.
    
    Fixes:
    evdev.c: In function 'EvdevInitButtonMapping':
    evdev.c:1659:25: warning: initialization discards 'const' qualifier from
    pointer target type [enabled by default]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 7f3f98be7f6585de3051ade6d5447acd378b572f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 25 13:42:05 2012 +1000

    Use xf86IDrvMsg in emuMB.c instead of ErrorF
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 4145fe1c087708bf5d6608e328342282ecb93ab0
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Wed Jun 6 12:07:12 2012 -0700

    Fix buffer overrun when populating axis label property array
    
    The axis label property array currently only has enough elements for the
    non-multitouch axes. This change allocates enough space for all axes,
    which prevents an array overrun write. This may manifest as stack
    corruption on some platforms.
    
    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9ce068e760e1282183c7aa1b4cc6b0fcb6b494dd
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Thu May 24 10:48:38 2012 -0700

    Report the correct number of touches for MT protocol B devices
    
    Protocol B devices report the number of touches by giving a maximum and
    minimum slot value. The current code ignores the minimum value, which is
    usually 0, and underreports the number of touches by 1.
    
    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2c8da280b3ab635d049784345d025d289348687b
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date:   Mon May 21 01:22:33 2012 +0200

    Fix some obvious constness-related compile warnings.
    
    Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f28507e8ce2bd45b51c28f024baebd9711c28fc3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 27 15:42:17 2012 +1000

    Devices configured as mice need REL_X/Y
    
    Some keyboards export scroll axes and any absolute axis possible in 11
    dimensions. All these axes are mute, except possibly for the scroll wheels.
    
    So if a device has a scroll axis, and we're configuring it as mouse, force
    the x/y axes into existence. This stops the logspam complaining about not
    enough axes on pointer movement after a xrandr change.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 99340147b9092a5aaec997eca407282a51e1f063
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 15 15:46:32 2012 +1000

    Fix inverted horizontal scroll (#46205)
    
    REL_HWHEEL has a positive increment, not a negative one like REL_WHEEL.
    
    X.Org Bug 46205 <http://bugs.freedesktop.org/show_bug.cgi?id=46205>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 76b1d58a9791257fa8b4e6d3322fcb082c86b18a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 7 20:39:09 2012 +1000

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

commit 224a28de25fda654040a9fd4e5c4d748c9e29809
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 25 16:03:34 2012 +1000

    Only force REL_X/Y if no ABS_X/Y exists
    
    5c5b2c8db851df7921cedd888222a6630a007fd8 added forced x/y axes if a device
    has any axes of the same mode. This was too broad a brush, some devices have
    a relative wheel but absolute x/y axes and would now get misdetected as
    purely relative device.
    
    Only force relative axes if a device no rel x/y _and_ no abs x/y.
    
    Reproducible: virtual machine with QEMU USB Tablet will stop working
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit bc2f01ab838119a962f5e5eabb36e33d4c084f2c
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Thu Jan 19 14:17:34 2012 -0800

    Copy last valuator values into new touch valuator masks
    
    Evdev is a 100% stateful protocol. The following represents three
    touches. Two touches begin and end at the same time at (500, 500) and
    (1000, 1000). The third touch begins after the first two end, and is at
    (500, 500).
    
    ABS_MT_SLOT		0	/* Set touch slot */
    ABS_MT_TRACKING_ID	0	/* New touch with ID 0 in slot 0 */
    ABS_MT_POSITION_X	500	/* Initial X position */
    ABS_MT_POSITION_Y	500	/* Initial Y position */
    ABS_MT_SLOT		1	/* Set touch slot */
    ABS_MT_TRACKING_ID	1	/* New touch with ID 1 in slot 1 */
    ABS_MT_POSITION_X	1000	/* Initial X position */
    ABS_MT_POSITION_Y	1000	/* Initial Y position */
    SYNC				/* End of frame */
    ABS_MT_SLOT		0	/* Go back to slot 0 */
    ABS_MT_TRACKING_ID	-1	/* Touch in slot 0 ended */
    ABS_MT_SLOT		1	/* Go to slot 1 */
    ABS_MT_TRACKING_ID	-1	/* Touch in slot 1 ended */
    SYNC				/* End of frame */
    ABS_MT_SLOT		0	/* Go back to slot 0 */
    ABS_MT_TRACKING_ID	2	/* New touch in slot 0 with ID 2 */
    SYNC				/* End of frame */
    ABS_MT_TRACKING_ID	-1	/* Touch in last slot (0) ended */
    SYNC				/* End of frame */
    
    Note that touch 2 has the same X and Y position as touch 0. This is
    implied because no new value was emitted for slot 0. In fact, Linux will
    not emit an event in the same slot with the same event type and code
    unless the value has changed. Thus, we can only assume that all the MT
    valuators have the same values as they were when they were last sent for
    the given slot.
    
    This change adds an array of valuator mask to hold all the last valuator
    values that came from evdev for each slot. When a new touch begins, all
    the last values are copied into it.
    
    This patch assumes initial axis values of 0 in each slot. Linux and
    mtdev do not provide a facility to query the current values of axes in
    each slot yet. This may cause spurious incorrect touch valuator values
    at the beginning of an X session, but there's nothing we can do about it
    right now.
    
    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9d9c9870c88f2c636799a68cde8efcab59a4a2a5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 13 09:51:36 2012 +1000

    Prefere relative axis labelling over absolute axis labelling
    
    If a device has both relative and absolute axes, we'd initialise the
    relative axes but label them with the absolute labels.
    
    The current code is broken for mixed mode devices. Most of these devices
    operate primarily in relative mode, but have some absolute axes available
    for secondary functionality. For now, label the relative axes properly. We
    can fix the absolute axes later.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>

commit 5c5b2c8db851df7921cedd888222a6630a007fd8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 12 11:03:30 2012 +1000

    Force x/y axes to exist on devices with any other axes (#44655)
    
    Too much in the server relies on x/y to exist and to be axes 0 and 1. So if
    any relative axes exist, initialize REL_X/Y or ABS_X/Y as well.
    
    For servers up to 1.11: a scrollwheel-only device now has relative axes
    where it only had buttons before.
    
    For servers 1.12 or later: the device now has x/y in addition to the scroll
    axes.
    
    X.Org Bug 44655 <http://bugs.freedesktop.org/show_bug.cgi?id=44655>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>

commit 854df75f4908bee66e1057f6f04817a1c47124bc
Author: Pete Beardmore <pete.beardmore@msn.com>
Date:   Mon Jan 9 23:47:45 2012 +0000

    missing multitouch related define tests
    
    addition of two missing define tests required when no multitouch related
    symbols are available in user-space
    
    Fixes X.Org Bug 44578 <https://bugs.freedesktop.org/show_bug.cgi?id=44578>
    
    Signed-off-by: Pete Beardmore <pete.beardmore@msn.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8c55e94a6ac91fa856d37206c8a7eda1adcc6b9d
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Jan 3 15:31:43 2012 -0800

    Set the default resolution to 0
    
    If we don't know the resolution, set it to 0. This is invalid, and tells
    the X client that we don't know the resolution, rather than reporting an
    incorrect value.
    
    This value was originally from commit
    6271494faa4c45f4fa10509f72e0515f2cef36c6, which is the initial commit
    from Adam Jackson adding absolute axis support.
    
    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 965338e9d0ee5e2a6135a930347e9dab4b8db0dd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 3 08:44:27 2012 +1000

    Remove unused udev.c
    
    Added in 683a55e504f4fc2d1c847c54986439a0c61b2f20 due to a botched up
    rebase -i. The contents of udev.c and EvdevIsVirtual are identical, there is
    no need for an extra file for this one function.
