commit 51575b60b14d414490d31ff23f07c30431525667
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 7 09:23:09 2013 +1100

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

commit f285567d372514d31096cc25a467d5d2e182885a
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>
    (cherry picked from commit 27926b3763e525470ec8e4ac9a97aa0e02f1dd95)

commit af1d0858775dd130c59de921210a114580fef719
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>
    (cherry picked from commit 54a3120e339e55fc4721543abb15692c3e9ede09)

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.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0075da20d691e451f32bdf3c8ba0f270a6c8b0e1
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 19:46:08 2011 +0100

    configure.ac: Fix udev/libudev dependency.
    
    In 683a55e504f4fc2d1c847c54986439a0c61b2f20, a dependency on libudev was
    added, but documented in configure.ac as a dependency on udev (which
    also happens to ship a pkg-config file).
    
    Signed-off-by: Cyril Brulebois <kibi@debian.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 009ac94a8e6d084c13f15ed8b2e1b22f86530c9f
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Sat Dec 31 21:28:53 2011 -0500

    Remove redundant redeclaration of Evdev3BEmuPreInit
    
    Found-by: Tinderbox
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>

commit 4b76d80e934f5503c712289ce73d4e10cc79bba6
Author: Cyril Brulebois <kibi@debian.org>
Date:   Sat Dec 31 18:38:30 2011 +0100

    evdev 2.6.99.901
    
    Signed-off-by: Cyril Brulebois <kibi@debian.org>

commit 6dd6f2d3c6b2fee5f78b01618643c7f3ed0819c3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 29 10:37:38 2011 +1000

    Require xserver 1.12 RC1
    
    Remove the ABI check hack, just check for the server version directly now
    that we have one that definitely has the multitouch APIs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0c7c087f77132657dd8ee342963bb1b51d659571
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 29 10:19:48 2011 +1000

    Test for mtdev before assuming multitouch
    
    If the XI2.2 headers are present but mtdev isn't, build without MULTITOUCH
    defined.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ba9377c6d9e6d0d2813e471b516bb36902dae2ce
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Dec 24 12:19:40 2011 +1000

    Remove need for --enable-multitouch
    
    If we spot inputproto 2.1.99.3, we assume we have a capable X server. This
    should really be a server version check, but the server version hasn't been
    bumped yet.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7f7606fc461dca1f087a756c85e22f2cc773d008
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Dec 24 12:31:34 2011 +1000

    Include config.h from evdev.h
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0ba58f483e564bd815bae36f6272029693c1fd5c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Dec 24 12:18:16 2011 +1000

    Always include mt_mask in the evdev struct
    
    Even if MT support isn't available, include it in the build. The checks in
    the code check whether mt_mask is non-NULL but they would all need ifdef
    escaping otherwise.
    
    Leave the mtdev part inside the ifdef however, so that we don't need the
    mtdev header if we don't build with multitouch.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5fb48757477b2effd69c8fe8722ad95b21dbf7f5
Merge: 7909975 e99ab23
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 23 08:16:54 2011 +1000

    Merge branch 'multitouch'

commit e99ab2314f712df8dd705b16008755f8b3095707
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 20 15:08:06 2011 +1000

    Don't count legacy and MT axes twice
    
    The kernel exports both ABS_X and ABS_MT_POSITION_X (and a couple others)
    for a multi-touch capable device. For such devices, only count the axis once
    since we submit ABS_MT_POSITION_X through ABS_X.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 191660189a01b9c96bb4c0fa1a2e5008ae666238
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 20 14:14:16 2011 +1000

    Add is_blacklisted_axis() helper
    
    The kernel exports a bunch of information as axis that shouldn't be an axis
    and we don't treat it as axis in the server. Add this helper instead of
    checking for the axis codes manually.
    
    No function change.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a1c3f8efbbff7f93e216ccdb32bd176a8ba33b09
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 20 13:32:06 2011 +1000

    Drop now-unnecessary XI 2.1 and XI 2.2 error suppression defines
    
    Gone since inputproto 2.1.99.3
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f3c628acc4f7399325756590cdc72e769341243c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 20 10:56:22 2011 +1000

    Map ABS_MT_POSITION_X/Y into ABS_X/Y
    
    MT axes are the same as traditional axes, so one into the other so we get
    x/y coordinates regardless wich axes it comes from.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7909975b0b965fbf0935bf012987a5368ea0e67a
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Thu Dec 15 12:26:37 2011 -0200

    Fix relative events with swapped axes
    
    After we swap the axes, we only call valuator_mask_set for axes that are
    not zero, so we need to unset the axes that became zero when swapped.
    
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8d6dfd13b0c4177305555294218e366a6cddc83f
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Wed Dec 14 15:23:36 2011 -0200

    Fix absolute events with swapped axes
    
    We were correctly swapping the valuator values, but we were not
    calling valuator_mask_unset() when needed, so the cursor kept jumping
    to the edges.
    
    This patch does the swapping before the main "for", so we don't need to
    store unswapped_{x,y} and unswapped_isset_{x,y} even when we don't need
    to swap.
    
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fed454192ddc4ad94226040c657deb6abea3df88
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 15 08:55:32 2011 +1000

    Use xf86InitValuatorAxisStruct, the touch-specific version was dropped
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cf93a21df1dd66118d3a1f5a0769d48f317de749
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Tue Nov 29 18:02:58 2011 -0800

    Don't send pointer events for multitouch touchscreen devices
    
    Pointer events will be emulated by the server.
    
    Signed-off-by: Chase Douglas <chase.douglas@canonical.com>

commit fac1a41c75a7c4bfabff34dc8ed1dff2587c6011
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 11 15:57:26 2011 +1000

    Add the required defines to compile against the inputproto
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3175a2a96d448a0b2584a58ab3d05fbebb11fab1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 2 09:53:34 2011 +1000

    Print to the log if we find multitouch axes.
    
    No real effect on the code, but it helps to have that line in the log when
    searching for driver issues.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5e9b027807cc205dc9c4efbb8360ac4b20317682
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 31 08:58:18 2011 +1000

    Replace 0/1 button values with enums
    
    BUTTON_PRESS is much harder to confuse with a button number than a simple 1.
    
[--snip--]
