commit 7c1971d9e7b73b861874633a33f97487abf1d45d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 1 11:41:03 2016 +1000

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

commit 9a6952dafe7241d4987eedd4637e5a9785d7ec23
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 12 15:22:19 2016 +1000

    Restore non-xy axes updates
    
    This broke in d24431a1863c49aa Restore wheel emulation for absolute devices,
    last hunk when the valuator update was moved to before any early exit
    condition. But that new update only applies to valuator maps < 2, i.e. x/y
    only. Other valuators are now ignored and remain on 0 forever.
    
    Restore the valuator update.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95315
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f12eca9f8392934031cb250e7a2a5ed1d5ca11cf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 29 09:13:35 2016 +1000

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

commit 33dc3d7128456d51b1fe6228096e6b714a3e900b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Apr 27 09:01:16 2016 +1000

    Prevent buffer overrun accessing btn_labels
    
    We go up to BTN_JOYSTICK, hence group can have a value of up to including 15.
    The actual btn_labels only has 6 elements though.
    
    Found by coverity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7b0a65d989117d1b071101221ff1b97c1b4d1946
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 15 14:01:02 2016 +1000

    Don't reset the other axis on wheel emulation scroll buildup
    
    The idea was that of a direction lock: as we move vertically we should not
    build up any horizontal scroll motion even if we move slightly diagonally.
    
    The effect was though that the axis would be reset completely as soon as an
    event from the other axis occured. With the default threshold of 10, if one in
    ten events was a REL_X, we'd never get a wheel event.
    
    Drop this code, it's not needed. By default wheel emulation doesn't do
    horizontal scrolling, if a config snippet sets XAxisMapping the user wants
    horizontal scrolling. And since we just add the value anyway, as long as the
    user does a roughly vertical motion we won't get over the threshold anyway.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=93617
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d24431a1863c49aa9edcabf535ffa64bfa87053c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 14 10:41:46 2016 +1000

    Restore wheel emulation for absolute devices
    
    Wheel emulation relies on oldVals, which stopped updating in 3dcf6f123c5.
    
    Since wheel emulation may filter the abs event, store the event before we do
    anything with it. If we really want the abs_event, abs_queued will be set to
    1, otherwise the value will be ignored.
    
    And now that we know abs_value is always valied, we can copy its value into
    old_vals, so that wheel emulation can calculate the delta correctly.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=93617
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ce7d8fdebc0123227be91ba5d89126a36f089ff5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 14 11:18:56 2016 +1000

    man: add a warning that wheel emu inertia must be set and it isn't inertia
    
    First, it's not actually inertia, it's simply the scroll distance, yay for the
    misnomer.
    
    And it needs to be set for any device that is more fine-grained than a
    mouse, especially absolute devices. For example the VirtualBox device has an
    abs max of 32767, so a simple motion may have a delta of to 2000 units and
    that results in 200 scroll events. That's a bit excessive.
    
    Related to: https://bugs.freedesktop.org/show_bug.cgi?id=93617
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6a3beab6137b262fc847093ed5fa51ff70df6a21
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 8 15:11:59 2016 +1000

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

commit d7e61a7074b802b49f57549530b289bbaa0a4855
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 10 14:35:51 2015 +1000

    Only map x and y to axes 0 and 1
    
    The Logitech G600 has one device with all axes north of ABS_MISC. The current
    code assigns ABS_MISC as first axis to map to axis 0, i.e. x. On button press,
    one node sends the BTN_LEFT but the other node sends an ABS_MISC with a 1 0
    value. ABS_MISC is mapped to axis 0, this moves the pointer to (0, y) on
    every button click.
    
    Avoid this by simply mapping any axis other than x/y to at least axis 3, and
    make sure we only override the MT 0/1 axes when we actually have MT axes.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=92856
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

commit 01e7ac48546d4534fa420ea1873214e738ea125d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 14:28:20 2015 +1000

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

commit 034be31159f22ce28d84994d541a45ee44963fd8
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Tue Jan 20 00:44:40 2015 +0100

    Add "Resolution" option for mice to the evdev driver
    
    It can be used to scale the resolution of a mouse to that of a 1000 DPI
    mouse. This can be useful to make high resolution mice less sensitive
    without turning off acceleration. The target of 1000 DPI is used as the
    same default is used in libinput. If the option is not set no scaling
    will be done.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=88134
    Signed-off-by: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 66c997886424a20e92ce30fcfda46cbb5c7352ab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 5 15:34:07 2015 +1000

    Add the default evdev config
    
    This used to be part of the server but now that we have two drivers doing the
    same thing (libinput, evdev) shift the configuration defaults to the driver.
    This way you get what you install.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=89023
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 0d3494eadfde7e8d30e1bae97cfa6b36e5128a11
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 27 11:41:50 2015 +1000

    Bump to 2.9.99
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 56a5e6716204916691a67082e3e6a1698df2061b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 16 07:55:34 2015 +1000

    Unconditionally require mtdev
    
    Missing from 2c9f4f0380d
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 74433f788acf41a43da54269eb1b73c407f3ceba
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 13 11:05:03 2015 +1000

    Always check for a return value on creating a property
    
    Mostly to make static analyzers happy
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fdc33809de2751c164183df2310a71732be579f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 13 10:58:01 2015 +1000

    Invert a condition to reduce nesting
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 38e107a39fb4a0b630ee5adb5870c91dbc27abde
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 14:58:04 2015 +1000

    Disable axis faking and MT event processing on fake MT devices
    
    This effectively disables all axes >= ABS_MT_SLOT on those devices. But at
    least the device comes up without an error and it didn't work correctly
    beforehand anyway.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=89473
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit b6176cff5a3fbccc3708721958e9fb346518f57e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 13:44:28 2015 +1000

    Invert two conditions to reduce nesting
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 37afebfb67609f04f9c1cdea983e7006ee2d59e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 13:47:32 2015 +1000

    Factor out MT axis counting into a separate function
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 5b5ae1786cb4b2ea35720bacf18f252223b2b2ec
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 13:29:19 2015 +1000

    Split android axis simulation into a helper function
    
    No functional changes
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 2c9f4f0380dd5bb5966a6eee34c8e0ec0c98ed17
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 13:22:19 2015 +1000

    Require multitouch/smooth scrolling dependencies
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 39ef4444a231d3b0296ba421b78f0417f18955f9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 13 08:12:38 2015 +1000

    Drop evdev-specific XKB defaults
    
    Just use the server defaults instead. This has very little effect, on most
    systems there was some sort of default configuration applied anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit abc4a8b60387c3c9ae8b0199bf61acede4f6dba2
Author: Tobias Himmer <provisorisch@online.de>
Date:   Fri Jan 23 02:13:17 2015 +0100

    Check for incoming MT slot indices exceeding the allocated number of slots.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=88715
    
    Signed-off-by: Tobias Himmer <provisorisch@online.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b370ccdff8f721de75d3d91486cc4807668d040c
Author: Colin B. Macdonald <macdonald@maths.ox.ac.uk>
Date:   Thu Jun 26 12:17:59 2014 +0100

    Workaround lack of ABS_X on MT devices (#80470)
    
    Often on Android, we have ABS_MT_POSITION_X without ABS_X (which is contrary
    to spec). We add fake ABS_X axis in that case.
    
    X.Org Bug 80470 <http://bugs.freedesktop.org/show_bug.cgi?id=80470>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 511498478b49aa39629615c110c9d0129fa6bbef
Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
Date:   Tue Sep 30 23:04:55 2014 +0200

    Move EVDEV_RELATIVE_MODE logic earlier
    
    When in EVDEV_RELATIVE_MODE, after converting the absolute valuators, the
    code unsets pEvdev->abs_queued. This is wrong if there are some absolute
    valuators which are not positions, such as a pressure valuators, because
    events on these valuators would be lost.
    
    This patch fixes the problem by doing the absolute->relative translation
    early. This way, abs_queued is not set and then unset when receiving
    absolute valuators representing positions. Other absolute events now set abs_queued
    and will be processed.
    
    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3dcf6f123c54fd3104bcb79677cd347972abea4c
Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
Date:   Tue Sep 30 22:32:51 2014 +0200

    Don't update old_vals when not in EVDEV_RELATIVE_MODE
    
    When not in EVDEV_RELATIVE_MODE, absolute position is stored in old_vals. This serves
    no purpose except that old_vals is ready when the device is switched to
    EVDEV_RELATIVE_MODE. It is however better to make the copy between old_vals
    and abs_vals at the time of the switch rather than all the time.
    
    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f59585b36709c8a529da6e08662ed6c62b73ebd5
Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
Date:   Tue Sep 30 22:15:45 2014 +0200

    Change the logic concerning EVDEV_RELATIVE_MODE and in_proximity
    
    When not in_proximity, we don't really trust data, even though a valuator
    sent just before a in_proximity event might actually be important. The
    present code for EVDEV_RELATIVE_MODE throws away all data if not
    in_proximity, which is a little bit too much. This patch allows for
    relative values to be calculated and old_vals to be updated even if not
    in_proximity, but will prevent evdev to sending (presumably) wrong
    information to the X server. But at least, old_vals will be correctly
    filled when the device comes into proximity again.
    
    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 593bbc6390aa6f9feec0e2b081e1bfe6ab03595a
Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
Date:   Tue Sep 30 20:49:46 2014 +0200

    drop the pEvdev->delta array
    
    Now that relative events have their own valuator mask, use it instead of
    delta
    
    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e0e2587a95afaeb25ad73bb8b27488e79d1fe02e
Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
Date:   Tue Sep 30 14:27:20 2014 +0200

    Split pEvdev->vals into pEvdev->abs_vals and pEvdev->rel_vals
    
    This should hopefully fix bug 84445.
    
    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cb3b023783fe73d9bbb7c9c6ba6c73048b8303ef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 26 09:23:39 2014 +1000

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

commit 124eff9ba20c5ae777a6a5aa36f32112ad31b931
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 7 13:41:06 2014 +1000

    Remove three unused #defines
    
    Obsolete since 768c25a99b2f4ec07993eb15a0f05a5e22b5c695
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 605047613c534babf723f25597e8cc4be6758db0
Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
Date:   Sat Sep 27 22:06:36 2014 +0200

    Don't pass superfluous arguments to EvdevPost*Events
    
    The functions EvdevPostProximityEvents, EvdevPostRelativeMotionEvents,
    EvdevPostAbsoluteMotionEvents and EvdevPostQueuedEvents are only called
    by EvdevProcessSyncEvent. These functions take as arguments an array of
    valuators which is set by EvdevProcessSyncEvent to contain ... nothing.
    This patch changes the prototype of the four functions, their definitions
    and the way they are called  to remove the useless array of valuators.
    
    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3ee98d0b7f7c266b8c7954b7710f9724a9c9cddd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 29 13:14:56 2014 +1000

    Drop some unused #defines
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 977588d24a6bc511454c7bd616e8b24a8bc3f58e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 14 11:56:03 2014 +1000

    If only IgnoreRelativeAxes is set, init like a normal relative device
    
    In the current code, if only IgnoreRelativeAxes is set, the code would go on
    and force absolute axes to initialize even if the relative axes were
    successfully initialized.
    
    Evdev gives precedence to relative axes anyway, initializing absolute axes if
    the relative axes failed. Thus, if we explicitely want relative axes but leave
    the abs axes as-is, proceed as normal.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 291b60172d25446d2cabe61ed93e56db6570baa3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 14 10:48:52 2014 +1000

    Fix axis initialization for devices with abs x/y and rel scrollwheels
    
    The Xen Virtual Pointer device has ABS_X, ABS_Y and REL_WHEEL. If smooth
    scrolling is detected, the current code would first initialize relative axes
    for scrolling and immediately overwrite those axes when the abs valuators are
    written out.
    
    This patch fixes the default case only, in the case of a device setting the
    two Ignore*Axis options both to "off", the axes are still overwritten. The
    wheels will work, other axes only if the same number of abs axes exists. And
    it keeps the current memory leak too, but it's marked with a FIXME now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8ce06c96e469139bb12065d80fe4abb6173e2855
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 5 15:59:17 2014 +1000

    Make the slot-state per slot
    
    The previous approach only had the slot state for the current slot. If we
    changed slots, that means we lost the information if the slot was ever
    initialized. If the ABS_MT_TRACKING_ID was never received, the slot would
    still update and try to send events (which the server refused with a warning).
    
    Avoid this by having a per-slot state and a dirty bit that tells us if the
    current slot updated at all. If we don't get the tracking ID, leave the slot
    empty and refuse any further events from that touch.
    
    This quashes the various "unable to find touch point 0" warnings caused if a
    touchpoint starts before the device is enabled.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Walter Harms <wharms@bfs.de>

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>
[--snip--]
