commit c29dbba29eb6e8ab1494339c29483b0e1068d894
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Dec 20 17:21:29 2012 -0800

    Properly map 2nd abswheel of Cintiq 24HD touch
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 654fdcb188e272f4122ea128612e899b397b0709
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Dec 19 11:15:21 2012 -0800

    wacom 0.18.99.1
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit d4aad5dd0c0d010701e2d3f46d9cd98daf6883e4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 19 13:43:09 2012 +1000

    If ds.device_type is 0, set it to the one we guessed earlier
    
    priv->wcmDeviceType contains the guessed device type, after querying the key
    state from the kernel. If that found our device type, use it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit 7e86e9871459c980a95bcea98dd0a2890b0b584a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 19 13:43:08 2012 +1000

    Fix missing braces around condition in refreshDeviceType
    
    Causing this function to always return 0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit 5209f14707c7d1446c0987adba74cb46028dbf3c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 19 13:43:07 2012 +1000

    Handle BTN_TOOL_MOUSE/LENS in toolTypeToDeviceType
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit 37734d52cc1ce84ba5153bb45587892b5070c9c5
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Dec 18 14:48:20 2012 -0800

    Filter out DOUBLETAP and TRIPLETAP events for true MT data
    
    DOUBLETAP and TRIPLETAP are duplicated events in type-B MT format.
    We do not use them in this driver. Plus, they could be confused
    by fake MT events on older kernels.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 1f9bf45bdf2eb58491fa578aa6b9ce55a9c13366
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Dec 18 14:47:53 2012 -0800

    Assign PAD_CHANNEL to BTNChannel for all PAD tools
    
    BTNChannel is static for all devices, not just geneic devices.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 62e5222c14cb4d282a3a285e7dd84f0ea1d00e36
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Dec 13 12:19:23 2012 -0800

    BTN_TOOL_FINGER is not for PAD if MT is supported
    
    BTN_TOOL_FINGER indicates single touch/first finger if MT is enabled
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit b5bcd03d12773e3147b4eb5d6a2a39b4c06bb9f4
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Dec 13 12:18:37 2012 -0800

    Send generic PAD events before other events
    
    If we wait until we finish other verifications, we could miss
    PAD events since they will be filtered out when there are no
    motion events sent simultaneously.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 6bd777a7d15c071dc2079fb8bcb4a7f13685aeba
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Dec 13 12:18:02 2012 -0800

    Initialize wcmBTNChannel in usbWcmInitPadState()
    
    wcmBTNChannel is only used by generic PAD device.
    And it is statically assigned to PAD_CHANNEL. No
    need to reassign it for every packet.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f310e20f6a3dc519f7d318ee53c1024f28892991
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Dec 13 12:16:52 2012 -0800

    Remove channel duplication code for generic devices
    
    We use true MT protocol for MT devices in kernel now. This code
    was introduced to deal with ABS_TOOL_*TAP events loss issue. It
    is uncessary any more. And its existence makes it hard to support
    generic PAD cleanly.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 5d0f8c1abea4b1a791d169ffb15a0b2aee50a7d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 10 15:35:38 2012 +1000

    man: CursorProx affects absolute mode as well
    
    Update man-page for driver behavior.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f3ede09dd504e2ca054bbac7413bd9a3416ec31f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Dec 4 14:51:32 2012 -0800

    Convert resolution from points/inch to points/m
    
    Somehow we forgot Lenovo W700 last round.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2b285d01e1c03b51a8526516acda208edbeeac89
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Dec 4 14:51:05 2012 -0800

    Update resoltuion for old kernels
    
    We upscaled resolutions in WacomModelDesc and reported from
    absinfos. But we forgot to update them for older kernels
    that do not support resolution in absinfo.
    
    Resolution received from kernel is in hundredths of a mm.
    The scale we use here is in meter.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a82f0251e400b98b0044f2c8ab89c4b61ec99d4f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Dec 4 14:50:42 2012 -0800

    Post maximum number of contacts to clients
    
    Clients should know the maximum number of contacts a touch device
    support before they get touch events.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 26a6a42fd0a726518f62b8da6926b111a01b33cf
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Nov 14 09:54:34 2012 -0800

    Properly clear action properties
    
    What we want to do is clear all 256 steps of an individual action. What
    we were doing was clearing just the first step.
    
    As mentioned on the ArchWiki, this cuases the following behavior:
      $ xsetwacom --set <id> Button 1 "key a b c" # press button 1 -> abc
      $ xsetwacom --set <id> Button 1 "key d"     # press button 1 -> dbc  WRONG!
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5899942e84d4ae7498ea0cc764aa05b609738d7f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Nov 21 12:14:10 2012 -0800

    Add support for MT ISDv4 device 0x4001
    
    It supports up to 10 fingers
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 38018e941ff197d00867feff4fe7fb501f584826
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Nov 21 12:13:44 2012 -0800

    Support up to 16 touch points
    
    Bamboo3 and Intuos5 both support 16 fingers
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4ba50c66d65d11232e169d3202ea4a34e06362de
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 21 16:12:48 2012 +1000

    Bring back AM_MAINTAINER_MODE, default to enabled
    
    See Ron's comments discussion on:
    http://old.nabble.com/-PATCH-libwacom--Drop-AM_MAINTAINER_MODE-td34561358.html
    
    Summary:
    In this workflow all generated files are committed to git to have a known
    working set. On checkout, git does not restore the original timestamps,
    so with maintainer-mode enabled, automake will regenerate the files - which
    is to be avoided since we already have the known working set.
    
    AM_MAINTAINER_MODE([enable]) gives us the same behaviour as now, but will
    allow Ron to disable the regeneration of the files.
    
    Requested-by: Ron <ron@debian.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0c417e33d5b45ce9206448fb45de9338c25c1f5d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 5 09:10:27 2012 -0800

    Don't declare touch_mask on older servers
    
    Missed necessary preprocessor guard in 0d164e66.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3474d206359cf54e991d5dfeff04ed00efa3ce4e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Oct 26 16:01:47 2012 -0700

    wacom 0.18.0
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit b3e52e3f921a8f28962ec6e369db1235f046168c
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Oct 25 17:47:24 2012 -0700

    Add three MT ISDv4 devices (E5, 100, 101)
    
    Signed-off-by: <pinglinux@gmail.com>

commit 97358d0effeb4b72af095cb67d12881286f6fb04
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Oct 23 10:20:17 2012 -0700

    Have direct-touch devices move into and out of GESTURE_DRAG_MODE
    
    Direct-touch devices (e.g. tablet PC, 24HD touch) are currently left in
    GESTURE_NONE_MODE while performing drags. This can lead to potential
    "stuck button" issues, since as soon as a second finger comes in
    contact, the driver will switch to GESTURE_LAG_MODE. This prevents the
    wcmSingleFingerPress function from being called, leaving button 1 in a
    pressed state. While any subsuquent gesture will release button 1, if
    the pen is brought into proximity before one occurs, the fingers will be
    sent out of proximity without a chance to release button 1. This causes
    the button to remain "stuck" in the pressed state until the next touch
    occurs.
    
    There are a few different ways this issue could be addressed. In the
    interest of symmetry with indirect-touch devices, this patch has
    direct-touch devices enter and exit GESTURE_DRAG_MODE as well. This
    delays the mode swith to GESTURE_LAG_MODE by one event, allowing
    wcmSingleFingerPress to be called to release button 1.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=56308
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 74396082c690800a04d20dab2c41e873836774aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 24 17:13:25 2012 +1000

    If _source is NULL, don't auto-pick the type.
    
    An xorg.conf InputDevice section that does not have Option Type set is
    invalid. Skip the type assignment and return, triggering an error about an
    invalid type lateron.
    
    Fixes crash triggered as of xf86-input-wacom-0.17.0-8-g0debde6 by having an
    InputDevice section like this:
    
    Section "InputDevice"
        Identifier "--device--"
        Driver "wacom"
        Option "CorePointer" "on"
    EndSection
    
    This would lead to the device being assigned a type and assumed to be for
    hotplugging. Later, when the device attributes are duplicated during
    QueueHotplug, asprintf() tries to duplicate attr->product, which is always
    NULL for xorg.conf devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 9f896f4800593c7fa232e40fd934b7f51d0dde6d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Oct 19 17:15:58 2012 -0700

    wacom 0.17.99.1
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 8b412136a4bd032534bd0eb970a4a06c942fcf59
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Oct 19 17:13:13 2012 -0700

    Limit use of touch class to touch devices only
    
    Applying the touch class to all devices shouldn't really affect
    anything, but just to be sure we surround it in a IsTouch() check.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 637651338015563c6847028870aaa08b293f1ef1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 18 13:06:36 2012 -0700

    Correct number of actions reported by sendWheelStripEvent to sendAction
    
    Commit 477a261e has sendWheelStripEvent use the ARRAY_SIZE macro on a
    pointer. This will not return a proper value, causing the wrong array
    length to be provided to sendAction. This can lead to only the first few
    actions assigned to a wheel or strip actually being performed.
    
    This patch changes the signature of sendWheelStripEvent to accept an
    explicit length.
    
    https://sourceforge.net/tracker/?func=detail&aid=3577713&group_id=69596&atid=52$
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit e81c1400b023be49afc3f62066d21281a1c2bb95
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 18 12:52:15 2012 -0700

    Have getWheelButton deal with array indices instead of pointers
    
    This patch modifies the function signature of getWheelButton so that it
    accepts and returns array indices rather than pointers. This is in
    preparation of the next commit, which would be needlessly unreadable
    otherwise.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit cc855c1c4f1815c691fbef2293d04b78f28ffc42
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Oct 17 18:02:56 2012 -0700

    Restore pad button functionality
    
    Commit b0083492 broke pad buttons by no longer setting the wcmBTNChannel.
    With this variable left uninitialized, pad button data would be stored
    in another channel (e.g. 0) without any other data like proximity set.
    
    This commit sets wcmBTNChannel to point to the channel used for
    storing pad data whenever a pad packet is detected.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7c91665c86c93b9668a1649d20b32550fbdc544b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 2 09:23:55 2012 -0700

    Add support for Cintiq 24HD touch
    
    Adds support for the EMR and touch digitizers on the Cintiq 24HD
    touch. The digitizers are on separate USB devices, which can lead to
    the cursor jumping back and forth between the stylus and finger.
    Performing arbitration between the two (disabling finger while pen is in
    proximity) is expected to be handled by the kernel driver.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8c17d224a5df855ccdb1bb15862156782532074c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Oct 8 11:03:18 2012 -0700

    Add recently-referenced functions to fake-symbols
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c85ecf117d4937b6943b5a1215711c99389e5c46
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 17 08:25:19 2012 +1000

    Drop AM_MAINTAINER_MODE
    
    We want xf86-input-wacom to react to changes in Makefile.am's
    
    Long writeup:
    http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72508ebe5533501758aad073f120b50f04ac0060
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Oct 2 14:29:24 2012 -0700

    Fix prerequisite check in wcmUpdateSerial
    
    The prerequisite check in wcmUpdateSerial is incorrect. If the tool ID
    changes, the property reflecting it will not be updated unless/until the
    serial number also changes. The check is updated to reflect this.
    
    Additionally, the prerequesite check at one of its callsites is removed
    since the function performs the same check internally.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=45237
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 3e9be03fe19db693f600844b24ce66cefcf6267a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 21 19:57:00 2012 -0700

    Move check for enabled gestures to the functions that execute them
    
    At the moment, disabling gestures disables *all* gestures. That includes
    the core "tap to click" gesture (and slightly-less-core "tap and hold to
    drag"). This patch allows these two gestures to not be considered such
    by moving wcmGesture check into the functions that execute the gesture.
    All two-finger functions (right click, scroll, and zoom) are disabled by
    wcmGesture, but all single-finger functions remain operational.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit 0d164e66cbb7119d68d2008242f0ec2cca2202a7
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 26 10:57:27 2012 -0700

    Use new multitouch protocol in XI2 if possible
    
    Adds a new MULTITOUCH gesture mode that will redirect all in-contact
    touches through the new multitouch code available in XI2.2 (ABI >= 16).
    
    MULTITOUCH mode will only be entered when in-driver gestures have been
    disabled and at least two fingers are present. The driver will remain
    in this mode until *all* fingers have left the tablet.
    
    For the moment, all touches are sent as XIDependentTouch. Direct touch
    devices such as tablet PCs and Cintiqs are not an exception. This may
    be changed in the future once frameworks are better equipped to handle
    direct input touches.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit a6f1e4b10524cba3272147537cef036e860cac4c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Sep 18 16:06:55 2012 -0700

    Dynamically choose channel for ABS_MT data
    
    Now that the touch code doesn't look in statically-defined
    channels and usbChooseChannel is capable of locating channel
    numbers for arbitrary tool type/serial combinations, we can
    use the latter to track an aribrary number of touches without
    fear of stepping on the toes of another channel.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit f85f025b4ad08295222a1264b4d2cfb20ccdb918
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 21 13:56:21 2012 -0700

    Have usbChooseChannel take explicit device type and serial args
    
    Instead of divining this information from the stored private data,
    take them as arguments. This gives us more flexibility in finding
    channels for sub-tools (e.g. individual fingers).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit b00834928e81ca2ddaaf00c78a2ea1a4ac50b19c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 25 17:32:43 2012 -0700

    Simplify usbChooseChannel logic
    
    Instead of having different per-protocol cases, just obtain serial
    numbers equivelent to those you'd get from Protocol 5 and then
    use that serial to find a channel dynamically.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit afb25836e6350b5aaea76ccc68b2e16d382e1398
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Aug 1 17:10:27 2012 -0700

    Make usbInitToolType more generic, and always use
    
    Tweaks the usbInitToolType function to be always useful. This is
    needed so that we can use it to get the tool type for all event
    frames, allowing us to properly fill in the tool type for devices
    that we otherwise don't figure out until later on (which causes
    problems with the proper operation of usbChooseChannel).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit 63cf3c5a2a04559838ec6fd6b9e7e808818072b1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 21 19:07:57 2012 -0700

    Dynamically find touch channels, instead of hard-coding
    
    Right now the driver assumes that the first touch will always
    be in channel 0, and the second touch (if present) is in
    channel 1. This patch adds a new function to scan the channel
    list for appropriate contacts, and uses it instead of the
    hard-coded index accesses.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit 709e0aa23f34003d4526cbf9435a295ee83e0ee0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 21 19:13:45 2012 -0700

    Use serial number instead of channel number to identify contacts
    
    Code that deals with touch points shouldn't care which channel an
    event is occuring in; it should be more concerned with the finger
    that caused it. At the moment these are the same things (first
    finger is always in channel zero), but this will soon change.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit 67822ebb90a89f5d95ed45a316d905a10c87fc53
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Sep 18 16:24:22 2012 -0700

    Add and use a 'dirty' bit for WacomChannel
    
    Instead of keeping around 'channel_changed', 'mt_channel_changed',
    and 'btn_channel_changed', just add a flag to the WacomChannel
    itself that can be set whenever something changes.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>

commit 0debde6b14a1765e1dd5a483faafe6b90e0e62ba
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 24 16:30:05 2012 -0700

    Properly handle nulls in wcmIsHotpluggedDevice
    
    Commit def7b5fd changed how wcmIsHotpluggedDevice handles null values,
    with the result that a device with no "_source" specified would be
    interpreted as having been hotplugged. This restores the original
    behavior.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b4da8527d2719cc9ab1f5ed1390ffac44772230
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 24 16:12:29 2012 -0700

    Properly handle nulls in wcmCheckSource
    
    Commit cff344b1 modified the null-handling of wcmCheckSource, such
    that the wrong result will be returned if either/both  fsource and
    psource are null. This patch restores the original behavior.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0a27c707eafe57a85266452a395f89c8237efdbf
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 24 17:53:49 2012 -0700

    Fix double-free in wcmPreInitParseOptions
    
    The 'tool' function here is set equal to 'priv->tool' earlier in
    this function. If an error condition occurs, the tool can be freed
    both here and in wcmFree (via wcmUninit).
    
    It should be safe to postpone this free() until wcmFree to be
    freed along with the rest of the memory allocated in wcmAllocate.
    There should be no leak (wcmUninit will be called on failure) and
    any code relying on priv->tool being a valid pointer after the
    failure of wcmPreInitParseOptions is already broken.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=55200
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 59941213fb8972abc1cd3bf3762444ab73ae1329
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jun 27 10:28:53 2012 -0700

    Device grab should be optional
    
    Like in recent versions of xf86-input-evdev, grabbing the input device
    with EVIOCGRAB should be optional. This would enable for example
    indicator applets, and would improve dynamic handling of different input
    devices.
    
    Proposed patch extended to document new GrabDevice driver option.
    
    https://sourceforge.net/tracker/?func=detail&aid=3509828&group_id=69596&atid=525124
    
    Reported-by: henris42

commit 0fe7f800295a4b5bf074bca798cf8024fcb174ec
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 13 16:59:01 2012 -0700

    Ignore out-of-prox events from unknown devices already out-of-prox
    
    Fixes an issue with the Intuos5, which sends extra out-of-prox
    notifications when the ExpressKeys are touched. This causes the driver
    to ask the kernel for the tool currently in prox and post an empty event
    for it. The result is a cursor that (only while the pen is in prox)
    sometimes jumps to the top left when touching the buttons.
    
    We fix this by ignoring events that claim to be leaving prox when the
    tool is already supposedly out of prox.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=54250
    
    Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit e604e4e6c69898920e27aeed5a772484d796562b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 7 12:24:23 2012 -0700

    Have keysym_to_keycode handle unused keycodes
    
    The current implementation of keysym_to_keycode does not
    properly handle unused keycodes. The functions XkbKeySymsPtr
    and XkbKeyGroupWidth mislead it into believing it is reading
    a keysym associated with the unused keycode when in reality
    it is reading a keysym associated with the *next used*
    keycode.
    
    This impacts different keys depending on the keyboard layout
    in use. On mine for instance, the left Super key is unusable
    because its keycode is preceeded by an unused keycode.
    
    To resolve this issue, we take a page from XKeysymToKeycode
    and use the function XKeycodeToKeysym instead of manually
    accessing the keysyms.
    
    https://sourceforge.net/tracker/?func=detail&aid=3555424&group_id=69596&atid=525124
    
    Reported-by: alexmaret
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit cea5cc1f25c3a1d9f1feec88b0c4d8af59b47a74
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 6 09:41:26 2012 -0700

    Add LogMessageVerbSigSafe to fake-symbols
    
    Somehow overlooked this while adding 'xf86MsgVerb' to fake-symbols.
    Oops.
    
    Reported-by: Timo Aaltonen <tjaalton@ubuntu.com>
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 2f2acecb97e1ac941e85ddbb704e3ce7f37d0261
Author: Nikolai Kondrashov <spbnick@gmail.com>
Date:   Tue Aug 28 23:17:28 2012 +0300

    Use kernel-reported tilt range and resolution
    
    Use tilt range and, optionally, resolution reported by the kernel for event
    devices.
    
    Add a constant for resolution currently expected by applications: TILT_RES,
    1 point per degree in kernel units (points/radian). Scale values to this
    resolution for compatibility and specify it for corresponding valuators
    (instead of 1) for future use by applications.
    
    Add constants for currently reported value limits: TILT_MIN and TILT_MAX,
    -64 and 63 respectively. Continue clamping values to [TILT_MIN, TILT_MAX]
    for compatibility.
    
    Values and ranges reported by currently supported tablets should remain
    unchanged.
    
    Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit c246b7e4f756856d0d32501f86c7d655efe97106
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 5 09:22:26 2012 -0700

    wacom 0.17.0
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit e918c957f1c77fda3dec3fb9cb38ded6ffed9ca4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 27 09:42:37 2012 -0700

    wacom 0.16.99.1
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 03583c5a54292cd484d41656e141e3c65ed961da
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 27 10:28:54 2012 -0700

    Add xf86MsgVerb to fake-symbols to let 'make distcheck' complete
    
    The switch from 'xf86Msg' to 'xf86MsgVerb' introduced in commit
    e4c1af41 requires that we define the latter in our fake-symbols
    so that the test suite can compile correctly.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 625a43c040fd71393be94fdfad6cf7faa49db775
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Aug 22 15:05:48 2012 -0700

    Make test_get_wheel_button happy
    
    Apparently there is some subtle difference here between returning
    a pointer and using a double-pointer as an output parameter.
    Tracing through the function shows the former *should* be working,
    but for an unknown reason fails "assert(action == &action_dn)"...
    
    This patch shouldn't change any functionality -- it just shuts up
    `make distcheck`.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit d8613ffc961be4c957ed30d4ac03e83411f835b6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Aug 22 11:30:14 2012 -0700

    Update test to match new function signature
    
    The getWheelButton function's signature was changed in commit 40ecdcb5
    but the tests were not updated to reflect this.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit ac17300d842f2842eff3a2b2aa3dbac7ebf88a2b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 23 09:03:34 2012 +1000

    Pre-allocate the tap timer
    
    wcmSingleFingerTap() is called during SIGIO, calling TimerSet(NULL, ...)
    will malloc inside the signal handler and hang the box.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit b5a6983c62d233cfc7174f8f48e3abf3064c04ce
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 20 12:14:28 2012 +1000

    Log debug messages in signal-safe manner
    
    This is a rather broad brush, logging all messages in DBG() through the
    signal-safe interface instead of just the ones that really need it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 90cdf85ca3a3d08f79bf6928cd11edaf08b81786
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 29 16:51:00 2012 +1000

    Use signal-safe logging patches where necessary
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 58d2a675b616af9e575f0bc0dcec7950a5498c9d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jul 10 09:29:01 2012 -0700

    Set WCM_LCD on the Cintiq 24HD
    
    This flag was apparently forgotten when the 24HD was originally
    added.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 8dcf5ee466cfb14490fa52c8af8a4cbac92036f7
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jul 25 17:39:49 2012 -0700

    Add missing newline to error message
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit b620267a709cb399338641fcc4c671aad2c7986c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jul 25 12:18:17 2012 -0700

    Internally use physical button numbering for actions
    
    One should not have to keep in mind the historic quirk that
    mouse buttons 4-7 have when dealing with buttons events generated
    by the tablet. This patch isolates conversion between physical
    and X11 numbering to the single place it has historically
    mattered: the button property getters/setters.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 40ecdcb59952cea69a2b520c34e21922fbaa2c62
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Feb 27 10:38:52 2012 -0800

    Remove raw button fallback codepaths from wcmCommon
    
    With actions now defined on initialization and reset to default
    when given a 'None' action, we can remove the raw button codepaths
    without a noticible change in driver behavior.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 089a397e5a32aa2e8e212a2c908c7ac782f2b398
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Apr 2 17:05:43 2012 -0700

    Reset-on-None for Actions property
    
    This patch adds the ability to reset an individual Action by
    setting the corresponding element of an Actions property to
    the 'None' atom (i.e. 0). When encountered, the None will be
    replaced with an atom representing the default Action. This
    will let the driver behave as it currently does once raw
    button support is removed.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 8c1f585446f56303058840fc40c133c0bab9cc7c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 3 10:10:59 2012 -0700

    Initialize action properties from defaults
    
    This patch adds functions capable of resetting the action
    properties (button/stip/wheel) to their default, and calls
    them on initialization.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 8c6711b14b105770e792e6de08cd1e05ddd07ba5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 3 10:09:32 2012 -0700

    Cleanup call chain for action properties
    
    This patch rewrites the call chains used for setting the three
    action properties by introducing a single function to handle
    the 'Actions' properties, and a single function for 'Action'
    properties. Functions which were merely helper functions have
    been inlined if appropriate.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 29be2391f3f07b04103a2146bece728421aa41e3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Feb 6 12:42:04 2012 -0800

    Remove support for 8-bit (raw button) strip/ring properties
    
    This patch removes the ability to set up the touchstrips or
    touchrings with raw 8-bit button numbers. Buttons have been
    without this ability for quite some time, and this brings
    these two properties in line.
    
    This patch will break applications which rely on the use
    of raw buttons in the properties, but the actual fallout is
    expected to be minimal. Applications which don't understand
    Actions are already broken (since they can't work with buttons)
    and those that do understand Actions but don't use them can
    be easily modified.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 0512c1add914e090feaaa55586b32be84a0cdd8c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Feb 10 12:06:47 2012 -0800

    Replace multiple default variables with arrays
    
    Storing the defaults for strips and wheels in individual
    variables makes updating and scanning through them very
    tedious. This patch replaces the variables with arrays
    and introduces new #define statements to keep the level
    of semantic meaning we had.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 0233668825401bda5473945ad7277c0bf9f89958
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Feb 10 11:29:45 2012 -0800

    Directly index into the various *keys arrays
    
    The 'keys' array is indexed into by reference to the X11 button
    number stored in the 'buttons' array. While this may have been
    useful at some point in time, the benefits have since gone and
    left behind nothing but headaches.
    
    Note that because the association with X11 buttons has been
    removed, action mapping (via xsetwacom) no longer depends on
    on the raw mapping (via xorg.conf). For instance, on a system
    which has 'Option "Button3" "1"' set, use of the command
    'xsetwacom set <id> button 1 10' will no longer cause *both*
    button 1 and button 3 to emit button 10. Its unlikely anyone
    relies on this quirk, but can be easily worked around if
    necessary.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 9f32b03930802040ba1001258d824aefafd003d0
Merge: 1a8db01 7a87594
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 13 16:17:39 2012 +1000

    Merge branch 'release-script-fixes'

commit 1a8db01e896514d06f7a69c647aac05832d54ea7
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Jul 12 17:23:00 2012 -0700

    Add Cintiq 22HD
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7a875941c326db3ff257b6debd79279c62285c9f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 10 09:59:03 2012 +1000

    release.sh: support other modules (i.e. libwacom and input-wacom)
    
    Add a --module switch to the release script so we can use the same script
    for all three linuxwacom projects.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 28ddd9285d8dc3273a3ef6bf0a4fc34af97c6546
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 3 08:52:52 2012 +1000

    release.sh: complain if tags are missing
    
    Previously we only checked the previous tag, not the current one. Move the
    check up a bit, make it more explicit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 9d42bcf72b9a0a4699deb29e3781859a1e68017f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 10 09:37:55 2012 +1000

    release.sh: remove gz tarball handling
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
