dwww Home | Show directory contents | Find package

commit f2df07587e5ff89a6c5b2246bc468211c31cf43a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 14 13:45:32 2022 +1000

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

commit e71404e3d500762ea25e40ec7d0c4a34d3978762
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 14 13:57:37 2022 +1000

    meson.build: fixate the GIR namespace version to 1.0
    
    This is more like a soname version than a project version - keeping it
    in step with the driver version means we also have to update each
    callsite. But it looks like we'll be stable for this for a while, so
    let's just fixate it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f53fbcafc277bb750e0584584bf58d1d3d8353df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 11:19:36 2022 +1000

    gitignore: add __pycache__
    
    Might as well not accidentally commit this one
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0dc0b101bf49731cdb7946835bd3bd2045d036d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 10 21:00:26 2022 +1000

    test: add a test for the artpen/airbrush wheel updates
    
    This was slightly too complicated to add to the existing
    test_axis_updates test, so that test is duplicated here, only testing
    what we see as "wheel" axis in the driver.
    
    The test is run for all three pens
    
    Because the X driver unconditionally sets ds->abswheel from the kernel
    events, we must take care only to send the kernel axis that matters for
    our current tool - otherwise we overwrite ds->abswheel with whichever
    one of ABS_Z or ABS_WHEEL is sent last in the evdev frame.
    In other words, we cannot test that artpen ignores ABS_WHEEL and
    airbrush ignores ABS_Z because ... they don't.
    
    For the generic pen that doesn't matter since we're supposed to ignore
    both axes anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
    Tested-by: Ping Cheng <ping.cheng@wacom.com>

commit be3471293363b518eb07a1eb041fb3e548de1bef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 10:08:08 2022 +1000

    meson: default to pytest-3 first, then pytest
    
    At least Ubuntu 20.04 has pytest point at the Python 2.x compatible
    version, resulting in syntax errors when trying to parse our Python 3
    code files. So let's check pytest-3 first since that is the compatible
    version and fall back to normal pytest only where it's missing.
    
    Fixes #272
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15802a3871d15fcbd1a510b85715e633b11e078a
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sat Jun 11 14:58:55 2022 +0200

    Added vim modelines to python files.

commit d5b61195553094f316015facb0d7a7ac2954d1b2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 8 14:44:05 2022 +1000

    test: raise an InputError with better info if modules are missing
    
    The tests need to run as root (for uinput/evdev) so pip-installing a
    package as user gets past the build check but then fails at runtime.
    Let's make this bit easier to debug.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c44522c1f2c4487e1629435aa45b545c1d0279e9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 8 14:43:30 2022 +1000

    meson.build: default to verbose pytest logging
    
    Might as well collect as much data as we can get
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 073556d13e3937735983fb32e2704a5aaa51e435
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 24 11:07:37 2022 -0700

    test: Ensure standard pen does not report the "wheel" axis
    
    The event data has a mask field that specifies which fields are actually
    present (zero may be a valid value for an axis after all). Let's check
    that mask for each event and ensure that if the pen supports the axis,
    the axis is also present in the event.
    
    We still send kernel events for all axes to ensure the unsupported ones
    are correctly ignored by the driver.
    
    This allows us to parametrize the test with different stylus types and
    re-use the rest. Here we add a standard Cintiq pen and make sure the
    wheel axis is never set.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 817e77f5a7502cc9258d1e41e5f2863a498d104f
Author: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
Date:   Tue May 24 11:20:38 2022 -0700

    Don't report "wheel" valuator unless it exists on tool
    
    Fixes #199
    
    Prior to this commit we operated as if all non Art Pens needed
    this valuator normalized.
    
    Signed-off-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 6fd9efcd269e7bd879c62044d176007df8d659d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 23 13:43:30 2022 +1000

    test: ignore test devices, or real devices during test suite runs
    
    Set an option on all our created uinput devices, and an environment
    variable when we're running the test suite. If both of these are set we
    process the device, otherwise ignore the device during PreInit.
    
    This stops the driver picking up events from test suite runs
    (potentially clicking around on the desktop) and it stops the test suite
    from false positives by locally connected devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 00473a30a0c5a6558a3c0491fc5808baaf711702
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 23 13:24:13 2022 +1000

    test: fix a typo
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fd10a749f93e9bf7458c3f039fae61802234b8d4
Author: Joshua <Joshua@Joshua-Dickens.com>
Date:   Sun May 22 18:35:21 2022 -0700

    Fix xsetwacom returning 0 even when there's an error (#266)
    
    xsetwacom was only able to return a failure on a few scenarios but
    would return a success even when the command would encounter failures.
    
    List, set, get, and some other functions within those all had the potential
    to fail and would print an error message when said failures occurred
    but would improperly return a success.
    
    This commit adds the ability to properly report a success(0) or a failure(-1)
    to the relevant functions including all get and set methods that can be
    called by get_func and set_func.
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/issues/126
    Signed-off-by: Joshua Dickens <joshua.dickens@wacom.com>

commit bcd984bdc353f2b4524debe36a11f58d0e81f346
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:45:47 2022 +1000

    test: add a test for the artpen rotation
    
    The artpen has a physical rotation property, sent by the kernel driver
    as ABS_Z (historical reasons). In the driver this is mapped to the
    ds->abswheel state because this axis is shared with the airbrush wheel -
    both are sent through the same XI valuator (historical reasons, as
    usual).
    
    We can rather easily test this by ensuring we have an artpen device id
    and then send something through ABS_Z, that should update the wheel
    axis.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 1f21c8c7fca37c15e0d8a6f7c7f89519c5947829
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:49:51 2022 +1000

    test: ensure a device prox out after our events
    
    This avoids a potential stuck button by leaving the tablet in proximity.
    Shouldn't happen since removing the device should release all buttons
    but...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 2f1a7ae905886fb1441d45b97c8e9952a1c3a878
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:45:32 2022 +1000

    test: swap the axis checks for an iterator-based approach
    
    This ensures we get a StopIteration exception if we don't have the
    events we expect - previously we'd get a false positive on this test if
    we had no motion events after the first one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 4d3bbc84e026ad4f7513d54432c26ae49b2fdd4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:52:49 2022 +1000

    test: increase the count of events for axis update tests
    
    Make it 30% of the axis in 2% step increments, this gets past the issue
    of tilt not updating significantly and getting filtered.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 5d4ef8ac9088427dabbe5b6d5e367bb44c1d59bc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:41:03 2022 +1000

    test: fix the ID assignment when parsing a device file
    
    Because InputId didn't have the same field order as the recording (to
    allow for default bustype, vid and version), we ended up with an
    erroneous vendor ID, causing some code paths in the driver to go the
    non-wacom path.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 1b7d64565cda276dbd20e0b67a9bb88ef538a7f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:22:04 2022 +1000

    test: add a helper script to set up the environment
    
      $ sudo ./test/wacom-test-env.sh
      $ pytest
    
    A lot easier this way than having to manually set the environment
    variables.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 09567517939109cbaf9928a36e43e86bd1d71082
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:11:04 2022 +1000

    Document the rotation/wheel axes, they're not what you'd expect
    
    For historical reasons, the rotation axis is actually the cursor
    rotation only, the artpen rotation is mixed in with the airbrush wheel
    (which is scaled in to the rotation range).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit a94a845af196f49fdcece8958dc1320c0296b518
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:06:58 2022 +1000

    Add a few missing breaks for the default case
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit a6828caa94f5fd9c81880eb11da294eed9cc48af
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:25:44 2022 +1000

    Make a debug message easier to understand
    
    We printed the device type as "tool id", let's print both but with the
    right naming.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 742c3e4494bf89301031ba6a627a7f5d5f49556f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Apr 7 09:56:00 2022 -0700

    Allow negative panscroll threshold for inverted scrolling
    
    The driver's "pan" feature allows you to send scroll events by holding down
    a defined stylus button and dragging the pen. Dragging the pen from top
    to bottom will cause the driver to send scroll-up events, and vice-versa.
    This simulates physically dragging the page under the cursor and works
    particularly well with display tablets.
    
    The rate at which scroll events are sent is controlled by comparing the
    distance the pen has moved "down" to a defined threshold value. If the
    distance exceeds the threshold a scroll-up event is sent; if it exceeds
    the the threshold * -1 a scroll-down event is sent.
    
    This commit allows the driver to accept negative threshold values to
    produce an inverted scrolling behavior (i.e. dragging the pen from top
    to bottom causes scroll-down events instead of scroll-up). To do this
    we just relax the checks performed at device configuration and property
    setting (affecting the "PanScrollThreshold" driver option and "Wacom
    Panscroll Threshold" Xinput property, respectively).
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/issues/257
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 1ca6fca7932d540ea7765bb9f66be050f61592aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 24 10:54:20 2022 +1000

    meson.build: comment out -Wall -Wextra
    
    These are handled as part of meson's warning_level project option
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c0f77b600122a3d8bdefa7a20a84f4049681d1e7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 22 09:30:41 2022 +1000

    meson: use gnu_symbol_visibility - sort-of
    
    meson has gnu_symbol_visibility which is set correctly depending on the
    compiler. Except - where the X server was built with a
    symbol-visibility-supporting compiler it will always force
    -fvisibility=hidden into the cflags, see
    https://gitlab.freedesktop.org/xorg/xserver/-/issues/1316
    
    Meson sorts pkgconf cflags after the gnu_symbol_visibility flag so the
    pkgconf cflag overrides our gnu_symbol_visibility flag.
    Make a note on this so no-one else has to spend time wondering about and
    debugging this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b534f8fba8dbf3dc373db27c1b2b6e3103923e28
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 22 09:00:11 2022 +1000

    meson.build: only build libgwacom.so, not the static one
    
    We don't need the static one
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5390ebb2f55f40a3d41f4352447fb603ab4e2fd2
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 12:16:55 2022 -0800

    Enable additional compiler warnings by default
    
    Removes the two `-Wno-xxxx` directives from out default set of build flags
    enables several new warnings as well.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit e217fe67690ff8d00af6ccc2bbe65720af21a979
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Feb 18 13:51:20 2022 -0800

    Move -Wall and -Wextra from Github-only to default CFLAGS
    
    These two options were previously only being used by the Github runner.
    Lets move them to configure.ac / meson.build so that we encounter these
    warnings on our build system **before** pushing things to Github. The
    only thing Github should have is `-Werror` and friends.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b708574c48b5e57dc5fc7efa4ec7d102c062071f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Feb 18 13:44:54 2022 -0800

    autotools: Use the same set of CFLAGS as Meson builds
    
    When building with Meson, a number of CFLAGS are automatically used
    if supported by the compiler. Lets copy them over so that the same
    behavior will occur for autotools users. While we're at it, update
    the other target-specific flags to also better match Meson.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b998b68107b4a9b6116b271c858dfbcb29435789
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 16:11:23 2022 -0800

    Remove superflous 'invalid' label in wcmSetFlags
    
    This label is only taken in a single error case. We should handle the
    error at the point we detect it, not after jumping to yet another label.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 18ac7bc40be89ccc49ec9f17583503989944069d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 15:44:40 2022 -0800

    Avoid truncated output warning in wcmAxisDump
    
    GCC seems to be confused by our code pattern and insists that our
    buffer isn't large enough (no matter how large we might make it)
    and may result in truncated snprintf output. Modify the structure
    to achieve the same effect in a different way that GCC doesn't
    mind.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 571fbced64a51259ea7825c737f1703a0eb6bdf5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 15:12:45 2022 -0800

    Correct buffer size passed to wcmAxisValue
    
    Thankfully the incorrect `sizeof(data)` is less than the actual
    `sizeof(value)`, so there's no chance of some kind of buffer
    overflow in the existing code.
    
    Fixes: e8015b67000b ("Revamp debug printing of axis data")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a5a0b5bf0f855ac0a5501147de5147a520b8b9d2
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Feb 16 16:34:50 2022 -0800

    Fix sign-compare warnings caused by clang's integer abs()
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d9e92778ccc89bec74e361f8d4fcc7c24002d2bc
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Sat Feb 19 12:10:18 2022 -0800

    wacom-record: Change syntax for null struct initalization
    
    Avoid a -Wmissing-field-initializers warning from Clang, which apparently
    recognizes `{ 0 }` and `{ }` as valid patterns, but not `{ NULL }`.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit df632685d02939957bebc61c4df5617652ce608e
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Feb 16 16:24:16 2022 -0800

    wacom-record: Print unsigned values with %u rather than %d
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 19a2ac80507aca77c9e30f445c9e245c474c7865
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 17:13:24 2022 -0800

    Explicitly check for WTYPE_INVALID in switch statements
    
    Avoid a Wswitch-enum warning.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ef372acece43c5cce16e61795a15050a5bcb1726
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 13:54:46 2022 -0800

    Misc. unsigned warning fixes
    
    Address a few more unsigned changes that don't fit in elsewhere.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit cd02945a778132bcb63db5afec9747a15ade0033
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 15:43:34 2022 -0800

    Treat value of proxout property as signed
    
    While negative / extremely large values are both invalid, migrating the
    code to handle surface distances in an unsigned way is much more trouble
    than its worth (due in part to some tablets reporting distance in an
    opposite sense than others). It is more straightforward to leave them
    signed for now and just treat the proxout property as also signed.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3287bf8dd89f7d57dcbab61090f92880e01e2e77
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 15:39:43 2022 -0800

    Store serial numbers as unsigned values
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 23f2c7fcf77dc7f4a42864bc66ef91162137577a
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 13:54:22 2022 -0800

    Change signature of Parse function to take unsigned packet length
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ce2ec765c2fa57d3f4a1b833f424ced2cf8ba53c
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 11:28:09 2022 -0800

    Make devicestate sample and time variables unsigned
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 52803bf0a87772bb6ca837c68e68911909a6cd53
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 13:48:59 2022 -0800

    xsetwacom: Make prop_offset unsigned
    
    Note that in one instance we actually end up re-assigning the value of
    prop_offset to a signed variable to avoid additional warnings.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 846c6f51f7c959f984e60064306610f2408a5ffa
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:54:43 2022 -0800

    gesture: Make gesture distances and counts unsigned
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit e981a1c1c70b4ed6a34cfac2cde872905e89f4ed
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:40:06 2022 -0800

    gesture: Use unsigned integers for finger indicies
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit fe50ba4c0048d58f09489ad85f11c0ae4838b5b9
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:33:43 2022 -0800

    Make wcmEventCnt an unsigned int
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ca19d531ab888e9ff80d5beb26af366061a2edd5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 11:24:16 2022 -0800

    Store button state as unsigned int
    
    The WacomDeviceState structure uses an unsigned int to store keys and
    some functions that operate on keys and buttons are already set up to
    work with unsigned values. Make buttons unsigned for consistency with
    keys and to reduce warnings.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 0962f67b2c7660fdbdf80a189b90b0e37e61314d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jan 4 10:29:54 2022 -0800

    tools: Report when the entire buffer is garbage
    
    Most callers silently ignore the case where `skip_garbage` returns a
    negative result. This function changes the function signature to let us
    return an unsigned count and then has the caller make some noise when
    this would have happened. Correct various unsigned issues along the way.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 869f32c7b98632974f23606d2d706a69e7cc0b69
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jan 26 12:58:20 2022 -0800

    Use locally-declared unsigned loop variables to eliminate warnings
    
    We often use the prototypical `int i` loop variable but sometimes we're
    iterating over a loop with an unsigned bound. This is low-hanging fruit
    for cleaning up some of the "Wsign-compare" warnings that exist in the
    driver. While we're at it, take the opportunity to make many of these
    loops use local declarations -- a feature standardized way back in
    1999 alongside other blockbusters like The Matrix.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 465412be96b8e1967bd21209af54a11f0c7b0cc3
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 16:05:05 2022 -0800

    Fix -Wformat-signedness warnings
    
    Fix the various warnings about us printing an unsigned value as signed
    (or vice-versa).
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit f1c9d9a118cc14057fcf859c9f71de0ae0ad2e18
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 16:23:11 2022 -0800

    Avoid Wformat-overflow warning
    
    Increase the size of buffer we write our string into to silence a warning
    from stricter levels of Wformat-overflow.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 7d6d15d5c6d7e2cd6dbb54b20fdadc2e5b658564
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Feb 15 10:07:10 2022 -0800

    cppcheck: Avoid uninitalized variable warning
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b1555a21c801c2eaab320c57291c95034dc45468
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Feb 15 08:28:52 2022 -0800

    scan-build: Silence dead-store warning from intentionally-ignored value
    
    We don't care about the result from `read`, but it seems that Coverity
    was complaining that we didn't use its result. We hacked around this
    by simply storing it into `rc`, but now scan-build complains that this
    value is also never used. This commit further-refines the hack to
    silence both Coverity and scan-build.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b3741a1687a53edc4e7115b886dc4796f3096f1e
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Feb 15 08:06:52 2022 -0800

    scan-build: Remove dead-store to subproperty variable
    
    This dead-store was introduced in commit 59925bd45b71 ("NONE is not a
    valid action, and NULL a bad value"). The code which previously relied
    on subproperty being non-zero was moved into a seperate `else` block
    that is no longer executed in the case where subproperty is zero.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ad8b081fab7c5e0889f0102fb41e2458d98c4164
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 11:58:06 2022 -0800

    scan-build: Silence spurious null pointer warning when initializing tools
    
    The scan-build tool notices that we can trigger a null dereference if
    the value of `common->wcmTool` is NULL. This pointer is allocated and
    assigned at initialization, however, so we should be able to avoid the
    warning by simply asserting that it is non-null.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 1f18309d63cf979afdeba6e8f5b67253b7d36a21
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 11:55:53 2022 -0800

    scan-build: xsetwacom: Avoid dead-store when parsing actions
    
    The scan-build utility detects that the expression `j = parsed = 0`
    was causing a dead store to the value of `parsed`. Rather than simply
    removing the store to parsed, re-format the code to avoid making its
    value visible outside of the `if` block alltogether.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 65a1fd43e3bf73e0d47a17da3b019f81ba3b680b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 09:35:21 2022 +1000

    test: add a test for the single-axis updates
    
    Just a test that if we change x, only x changes in the events.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8a01c35b4cb8f86c996ab63baa589a3841449a11
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 10:25:07 2022 +1000

    test: add a test for the relative motion issue

commit 858bb568716f19fd3973088a2af237904584fea9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 22:09:46 2022 +1000

    test: add a pytest test suite
    
    This test suite makes use of the gwacom library and its GObject
    bindings, allowing us to write the actual tests in python.
    
    Real devices can be specified as a YAML file in test/devices.
    In the tests we can either create custom device or load the correct
    Pen/Finger/Pad component from the real device. Devices are then created
    as uinput devices [1], with a Monitor class set up to capture any
    events.
    
    The test needs to initialize that device and monitor, then play events
    through the device and analyze the output.
    
    [1] This unfortunately won't work in containers, like the github CI...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dbe4f9e687a481020ad27b495b6f16c2767f0814
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Feb 16 15:04:56 2022 -0800

    meson: Fix fuzzinterface build option
    
    Trying to enable this option results in the following configuration
    error:
    
        meson.build:117:10: ERROR: Configuration set requires 2 arguments.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 1534ca8778ca62dda988929422bfa11217071ec8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 15 11:19:37 2022 +1000

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

commit 5eb768c3a6eb0f6543e68d0cc0a6fc8cbc1060c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 15 09:58:31 2022 +1000

    configure.ac: fix the check for unittests
    
    Leftover from ad8de30. Because we now only have one thing to check,
    let's always check for dl and handle the special "auto" case based on
    the outcome of the dl check.
    
    Fixes #248
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15bb122bc2474e9eefe681bfbbadbaeb848061c1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 15 09:01:43 2022 +1000

    test: skip the wacom tests if we can't open the .so file
    
    Distribution package builds that use -Wl,-z,relro -Wl,-z,now will
    attempt to resolve all symbols on dlopen(). This is explicitly what we
    do not want because we don't link in the whole X server.
    
    It's a bit hard to override this for a single executable (my attempts
    didn't go far so there may be some other flag that influences this too)
    so for now just skip the whole test - this is better than failing the
    test suite.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c215f1e6b085e80b265c6e998afa057ba74d5e01
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 15 08:51:46 2022 +1000

    wacom-record: silence a compiler warning
    
    /usr/include/glib-2.0/glib/glib-autocleanups.h:28:3: warning: ‘syspath’
    may be used uninitialized in this function [-Wmaybe-uninitialized]
       28 |   g_free (*pp);
    
    Can't actually happen but it's an easy fix to get rid of this warning.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit db3df50ab1aa4b83de74100f705e608b66b13a2a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 15 08:15:51 2022 +1000

    meson.build: install the SDK headers
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 34315942e5801a636745d6a9b682ef2fad432eda
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 15 08:14:49 2022 +1000

    meson.build: use datadir, not sysconfdir, for the xorg.conf files
    
    Mixup of the two, sysconfdir is /etc which is not what we want for a
    normal install of the driver
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 985392cf38b337164d6d957eb4599dcbca519763
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Feb 14 13:49:31 2022 -0800

    Correct typo in calculation of relative-mode non-pad RING2 values
    
    The current value needs to be read from the RING2 axis, not the plain
    RING axis.
    
    Fixes: 58a931bc21d1 ("Abstract the event interface to pass a struct with axis data around")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit c8e597aa5436835cab9eb9819cda402e03264104
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 09:24:30 2022 +1000

    CI: add a job to build with the exact meson version we require
    
    Just to catch any inadvertent reliance on features that came after our
    minimum version. Meson *should* warn about this but let's be sure.
    
    Fixes #233
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d2876b666b487598622b7c656cd7a1b25da03404
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 11 14:41:13 2022 +1000

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

commit 364b8ffb8f22c0b0889c68cd4cdad2bac3f0de86
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 10:26:16 2022 +1000

    Print the device id, device type and serial number as hex
    
    This is how we tend to use it most of the time (e.g. in libwacom
    definitions)
    
    Note that we're using 0x%x here instead of the easier %#x because the
    X server's old sigsafe printf implementation doesn't support the
    alternative format.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e8015b67000b555347412e955c6e9ed1556225c4
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Feb 4 14:34:31 2022 -0800

    Revamp debug printing of axis data
    
    The `wcmSendEvents` function is a bit of a mess when it comes to printing
    out debug information. It maintains and dumps temporary data that may not
    reflect what will actually be passed to e.g. `wcmSendNonPadEvents` and
    does so at two different log levels for little reason after the recent
    refactor.
    
    This commit takes a page from wacom-record and introduces a function to
    dynamically dump axis data to a string. This lets us remove all the old
    temporaries and print out the values that actually matter.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d83afd252819fa31bb0934328acce758fbec2c39
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 15:23:43 2022 +1000

    CI: use the Ubuntu python version
    
    This makes CI issues easier to reproduce in a podman container (despite
    GitHub's ubuntu image having preinstalled a bunch of stuff).
    
    We're about to use a lot more python-specific stuff so let's not rely on
    whatever github installs with the magic python action.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 49f642f1667ea03451553e334044b85d3d6bd0d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 19:16:38 2022 +1000

    CI: add a job to check for missing files in the tarball
    
    Anything in git should be in the tarball. Better to have a job for this
    explicitly rather than finding it out later, because debugging this is
    extremely frustrating.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d10d763d6c335b3c97fd9e7ddd71099e4f4d274e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 16:43:57 2022 +1000

    CI: capture meson testlogs from the tarball build too
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f79793516d1f6c37107e09d5869f7f7347ad0268
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 20:29:19 2022 +1000

    autotools: add autogen and README to EXTRA_DIST
    
    Doesn't hurt to have those in the tarball
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f170f7f0903d9e23562e872566795e4dc0ae65e6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 20:25:37 2022 +1000

    Consolidate .gitignore files
    
    And update them with missing entries in the process
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f89be195fce53bcc284a6e99eb1d0dd550218329
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 19:07:52 2022 +1000

    test: remove a superfluous file
    
    Accidentally added during development, renamed later to
    wacom-tests.c but not removed correctly
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 131de22dd9ec63b4727bf5f320eee62294654d35
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 12:43:03 2022 +1000

    Don't crash wcmAllocate if name is NULL
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b67016849c8a01e9281ffd0dc5a7f0633e319fe4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 12:39:58 2022 +1000

    wacom-record: fix printing for multiple devices
    
    wacom-record takes multiple event nodes but the device info printing was
    broken. Fix this by moving the device info printing into the
    device-added callback (which is emitted as soon as we call
    wacom_device_new). The new event output is thus:
    
        - source: 2
          event: new-device
          name: "Wacom Intuos Pro M Pen"
          options:
          - _source: "server/udev"
          - device: "/dev/input/event4"
          ...
    
    This now has the advantage of subdevices printing the correct options as
    well (i.e. type eraser as this is added by the hotplugging code).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2c9e352c3529a58a12035f0d3ad0a36bbd707188
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 12:38:41 2022 +1000

    gwacom: add function to get the device options from the device
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f28c881a8a752d7c75164f53ba8c471df5cd08a3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 11:55:31 2022 +1000

    gwacom: allow for listing of WacomOptions keys
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d70066a5eb4ed43984b19b3644dd16fbfe01b8a2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 11:22:27 2022 +1000

    wacom-record: assert if device allocation fails
    
    Unlike what the error message suggested, wacom_device_new() doesn't fail
    except for memory allocation failures. Which we don't need to care about
    here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fa9b1eb4e5c78c6eed8cc2626d67e39b4dea95af
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 10:34:40 2022 +1000

    gwacom: fix crash if the first device fails to initialize
    
    If the very first device fails (not a wacom device) then the debug
    message when freeing the common pointer would cause a NULL-pointer
    dereference. That's a gwacom-only issue caused by the shortcut of
    logging all common messages through the first device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4c95a4651638ae265c96bb6a8416c760df8a2506
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 08:27:38 2022 +1000

    A few whitespace fixes

commit e940da8001cc5c5d5669eac1b7359401d2f5d946
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Feb 4 13:30:27 2022 -0800

    Rotate / scale coordinates before storing them in axes
    
    The WacomAxisData calculated by `wcmSendEvents` is expected to contain
    the X,Y coordinates which have been adjusted for device rotation and
    scale. Prior to the refactoring, the values of X and Y (along with
    everything else) were only packaged up for relaying at the very end
    of the function. Now this packaging occurs much earlier which requires
    our call to `wcmRotateAndScaleCoordinates` to move as well.
    
    Fixes: 58a931bc21d1 (Abstract the event interface to pass a struct with axis data around )
    Link: https://github.com/linuxwacom/xf86-input-wacom/issues/226
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 43906e0a642832fea731248fcea8fec6ce5f7ab3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 13:05:23 2022 +1000

    CI: build with all meson auto features enabled
    
    We have a number of features default to auto(). Force-enable those in
    the CI so we don't miss on testing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 794e92ddb9355db72e52abbeeaf546d4a80ce4b5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 13:33:51 2022 +1000

    CI: missing field initializers are not errors
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bb2fd9d77798cb7a9d9b52125de81a981cbc20ec
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 13:52:16 2022 +1000

    meson.build: pass -Wno-error=format to the asprintf check
    
    meson generates a little program containing "return asprintf ();"
    But that call errors out, not because asprintf is missing but because on
    clang, -Werror includes -Wformat:
            error: format string missing [-Werror,-Wformat]
    
    The result is that meson things asprintf doesn't exist and we then try
    to link to Xasprintf which is implemented in the server only (and thus
    causes a linker error in the gwacom lib).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 485bb68b90e6a0a8069c04cfb69b48629847084c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 13:23:22 2022 +1000

    autotools: add missing files to the tarball
    
    Thanks to a missing backspace, there were still some files missing from
    the tarball. And our CI didn't pick it up because it wasn't building the
    gwacom bits from the tarball.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ad8de302874ab2075928ddd4e3f762251fef0703
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 09:50:07 2022 +1000

    Drop the build system checks for -wrap
    
    No longer needed as of ff94040208c9da3411753e1ffe554e6c80b87dd7
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 291192a5e5ac329cc5d355858d6e69337c65be1d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 11:46:03 2022 +1000

    test: mark the test section entries as no_sanitize_address
    
    This works around an issue running our test suite through clang with
    asan. Specifically, the asan test fails with:
      ERROR: AddressSanitizer: global-buffer-overflow on address
      #0 0x7f31314a1b57 in wcm_run_tests [...] wacom-test-suite.c:44:3
      ...
      0x7f31314ff150 is located 48 bytes to the left of global variable '_decl_test_get_wheel_button' defined in '../src/wcmCommon.c:1802:1' (0x7f31314ff180) of size 16
      0x7f31314ff150 is located 0 bytes to the right of global variable '_decl_test_get_scroll_delta' defined in '../src/wcmCommon.c:1754:1' (0x7f31314ff140) of size 16
    
    The C standard doesn't guarantee that sections are immediately
    next to each other, so our expected behavior could break in the future.
    
    Since this is a test suite, we don't really care for now. And I rather
    suspect there's plenty of code out there that too would break if clang
    ever changed this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 988fcdd7f433eac843baf25f79f2f9ed5f4370e1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 11:34:00 2022 +1000

    meson.build: set the LD_LIBRARY_PATH explicitly for the wacom-tests
    
    This fails in the CI otherwise, for reasons not quite clear. So let's
    drop the direct dependency (since wacom-tests dlsyms it) and set the
    LD_LIBRARY_PATH in the test environment that calls it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fee367269b0679fd163c92618ca94414e53c48d6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 11:14:44 2022 +1000

    CI: name the artifacts after the job name/options
    
    Otherwise we have the results overwrite each other
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3718ed3f1a9b7d001ff2d76dbe1999b54809106d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 09:29:39 2022 +1000

    release.sh: markdown-ify the announce "email"
    
    This hasn't been an actual email for ages, the content of this is just
    uploaded as release text to github. So let's drop the subject line and
    make the rest easier to read.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ae5ac76c4f07c5487e3bcad64ef1d80e9702d336
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 22:07:41 2022 +1000

    gwacom: make the enums GIR-compatible
    
    GIR generation requires "typedef enum {} foo", with the first character
    of the enum names dropped. In the bindings, WFOO_BAR then turns into
    FOO_BAR on the enum object.
    
    This fixes an ABI issue with the WacomAxis struct - the enum (4 bytes)
    was previously exported as gpointer (8 bytes) in the bindings, causing
    garbage values to be read.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e30d23e4a1e26dd97c38d28e198cd0917f1b40e7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 21:31:36 2022 +1000

    gwacom: declare the WacomEventData as GBoxedType
    
    This allows us to pass it to the signal as proper type, making it
    available in the GIR bindings.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f536c4afbbf7561f2e2d616bc78481e26854419
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 07:25:20 2022 +1000

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

commit 3fbab38f91a15fc5a4d877c47227df50607e965a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 4 11:54:16 2022 +1000

    configure.ac: require C99
    
    Because it is... checks year... 2022 and c99 is not exactly modern
    anymore anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 16b1c0b5e5cff6ae6f81638e95b0f83d3a1a4b5f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 4 11:31:16 2022 +1000

    xsetwacom: shut up two compiler warnings
    
    There's more, but let's silence some of them at least
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ae84ebd96524524aa214ea9fa1bbc5548b4eb8f8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 4 13:33:01 2022 +1000

    meson.build: use dep.get_variable() instead of the deprecated one
    
    NOTICE: Future-deprecated features used:
     * 0.56.0: {'Dependency.get_pkgconfig_variable'}
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c68a8798c2be81686002eac34247e610f7ee8594
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Feb 3 14:14:11 2022 -0800

    Update configure.ac to point to our issue tracker if a unit test fails
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 44710a571a3399c0b894160abb7480e257a1c441
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 27 15:15:10 2022 -0800

    test: Enforce "zero minimum" workaround only for touch device
    
    The codepath for pen/eraser devices is capable of using the minimum
    values. Move the code to enforce a a minimum value of zero to the touch
    portion of the function where it applies.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d8347da16d2f13a3f0c3c047d080eaeb084fac3a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 10:54:51 2022 +1000

    tools: switch the xsetwacom tests to use the new test suite approach too
    
    Note that this removes the xsetwacom tests from the autotools build,
    this is meson only now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d1617e9fea1475e45c59e821b4ed8a24f1d749d0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 10:48:12 2022 +1000

    test: fix long-standing typo in the initial size tests
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 591d4633dc99a2ba3dd906b570fd98e95482d8de
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 2 13:56:15 2022 +1000

    test: add a test for the convertAxes helper
    
    See #222
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ff94040208c9da3411753e1ffe554e6c80b87dd7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 2 13:18:33 2022 +1000

    Replace our unit-test suite with something more magic and easier
    
    The previous approach, written 11 years ago, relied on providing all
    symbols the driver needs as stubs (see fake-symbols.c). Most of these
    symbols just needed to be there so we could compile the test, they
    didn't actually get utilized by the tests.
    
    Dropping this and instead add something roughly similar to Rust: the
    test function can be in the same file as the source function.
    
    The TEST_CASE() macro uses __attribute__((section)) to push the test
    cases in custom ELF section. This section we can iterate on and call all
    tests one-by-one. The test runner only needs to dlopen + dlsym the
    driver module and run the entry point function.
    
    The test-suite part of this is minimal: tests can assert on failure and
    everything stops. Adding things like fnmatch for test case names is
    possible when/if we ever need it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit efb8df85ca75349e1d14237bcd0085025cc44830
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:03:15 2022 +1000

    meson.build: remove udev dep from wacom-tests
    
    This was dragged in by the ISDV4 serial code which has since been
    removed, so it's no longer required here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8c6f4476d118a29298b44dbf2c0633610a8f4a45
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:42:50 2022 +1000

    autotools: remove the libudev dependency from the driver
    
    With the ISDV4 code removed, this is no longer used by the driver
    itself.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5688550f8fc0af48d252e2da4d41188af839b61e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:44:39 2022 +1000

    meson.build: remove an unused variable
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 771c43776e62d3f824753e123f936f3c0ef4c650
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 10:12:43 2022 +1000

    wacom-record: print the mask of available values
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6099e5f22b949d472f3f30282f5bdf6d84ef3073
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 09:59:08 2022 +1000

    wacom-record: print the mode for motion events
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 459a76fd91b55002052a99190d1b2b965bb7433b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 09:43:04 2022 +1000

    wacom-record: handle the extra device paths with g_autofree too
    
    As a rule of thumb, don't free anything as g_autofree, just use a new
    variable instead. Easier to read this way.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c8088649e3b3a5e34e296dd312fefd1624bc142f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 09:41:39 2022 +1000

    wacom-record: fix segfault if no argument was supplied
    
    In that case, argc is 0, so --argc is < 0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 146e8d340a09614c7b59275f48d0005a2e768767
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 2 11:52:32 2022 +1000

    x11: handle valuators with a first_valuator != 0 correctly
    
    xf86Post*EventP requires that the valuators array index 0 is whatever
    first_valuator is.
    
    Found in #222
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a529e92b1144b59111a6a16e35169db128ce216f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:18:50 2022 +1000

    Remove a declaration and some comments referring to serial devices
    
    All obsolete since ce2421a031aa0979671ce24d38c08c92b2142257
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit be159bcd06c39ee1839efa66b732c810b6afe186
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 1 17:09:28 2022 +1000

    CI: add jobs to build from tarballs

commit 1648ad6c5cdcf9cfe390e8bd46cfa84782f7ac2b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 1 17:09:39 2022 +1000

    autotools: make sure the gwacom sources are in the tarball
    
    Those aren't used by autotools but if we want to build an
    autotools-generated tarball with meson we need to provide them.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5983e8208e9aaa6f9700d217ab21944d85b08e22
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 1 08:24:13 2022 +1000

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

commit 0e10636573a56e4eabe7ccc0d9616faa7bf86896
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 25 09:34:56 2022 +1000

    meson: default to the module dir from xorg-server.pc
    
    On Ubuntu 20.04 at least, libdir is /usr/lib/x86_64-linux-gnu/ but the
    xorg modules are in /usr/lib/xorg/modules/. A default install with
    prefix /usr thus puts the modules into the wrong directory.
    
    Fix this by defaulting to the xorg module path from the xserver
    pkgconfig file. That has been exported since 2005, so it's save to rely
    on.
    
    Fixes #217
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 93b7ff5d0f57916ff28d56795f0cca9c21557528
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 12 09:11:09 2022 +1000

    Fix a compilation error when DEBUG is undefined
    
    Fixes #214
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dd50f2db86f548624dcfc2a7c9e9428abc28b4cc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 12 09:30:32 2022 +1000

    Escape an unused variable with ifdef DEBUG
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ed877d62d292e8198d496be015a024d095f20e7b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 12 09:25:23 2022 +1000

    Change the v3-v6 debug holders to an array
    
    This removes the compiler warnings when DEBUG is undefined, they're all
    only used for debug logging but we don't want to ifdef them everywhere.
    v5 is the only one "used" but only to re-calculate things.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 55b14facb4810e77157e76857d28c3bff0050953
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 12 09:21:37 2022 +1000

    Remove duplicate setting of v5/v6
    
    Both are unconditionally set a few lines south of here
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6de28b4ca980e0fc6a77dd9c7144d9da9fb03d69
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 12 09:19:08 2022 +1000

    Remove an unused variable
    
    This was always set to nbbuttons, so we don't need a separate variable
    here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c5b605d376c69daf902a3d66ebc2d7df9b028ac8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 5 09:18:09 2022 +1000

    github: skip the coverity workflow in the forks
    
    These always fail since we don't have the required secrets. Skip that
    job unless we're on the upstream repository.

commit ce2421a031aa0979671ce24d38c08c92b2142257
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 5 08:13:17 2022 +1000

    Remove support for serial devices from the driver
    
    The serial code inside the driver is effectively unused and definitely
    untested. It's been a decade since the last serial devices came out and few of
    those will be in active use, the few that are are likely supported by
    the inputattach code we keep in place for now.
    
    Fixes #197
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e4094a72fed413d43951b0dc113351c0d84516aa
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Jan 7 10:52:57 2022 -0800

    Report puck "throttle" (absolute scrollwheel) data in correct axis
    
    The "throttle" / absolute scrollwheel found on devices like the 4D Mouse
    should be reported in the v4 axis. A typo in a previous commit caused
    it to stop being reported.
    
    Fixes: 58a931bc21 ("Abstract the event interface to pass a struct with axis data around")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a78392d8d6e9aa344c7d09f5b1330fc7aeb8ef96
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 5 08:35:05 2022 +1000

    github: make the workflow names a bit smarter
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f3a5474fbb073abc5d3a5a066e285ead9a3f5dd5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Dec 13 08:05:40 2021 -0800

    Disallow initalization of unknown device axis by wcmInitAxis
    
    Addresses the following compile warning from GCC:
    
        ../src/x11/xf86Wacom.c: In function ‘wcmInitAxis’:
        ../src/x11/xf86Wacom.c:538:9: warning: ‘index’ may be used
            uninitialized in this function [-Wmaybe-uninitialized]
    
    Attempting to initialize an unknown axis will now result in a program
    abort. This copies the behavior used by the `convertAxes` function.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 30e522a75206d7438063b2883feebbc622c21b69
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 10 11:31:40 2021 +1000

    Bail out if wcmDevStar() fails
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b8905483dbdc2f3c1f578ca0fa770162907fb5e6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 10 11:27:21 2021 +1000

    Remove an outdated comment
    
    No idea what this is referring to but it's no longer accurate.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1e205eece628b9551648d915b7c4bba79eb87eda
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 10 11:25:46 2021 +1000

    Change wcmDevSwitchModeCall to take and return a Bool
    
    Let the caller handle the X11 constants and just take an "is_absolute"
    boolean and return a boolean to indicate success
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0e92df6889b8ec928603a7c11792699afa7347a2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 10 11:04:45 2021 +1000

    Remove an outdated comment
    
    Now that the driver is separated into src/x11 and the file was renamed,
    this comment is both wrong and outdated.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3e4a5243c554e9e0ee5a96763fa19c46143a89a6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 09:18:25 2021 +1000

    Add a debugging hook for evdev events
    
    Unused in the X driver interface but for libgwacom/wacom-record we can
    use this to print evdev events before driver events, making it easier to
    figure out which input causes which driver output
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ad7d8faa193e190dc0ffea92b2c077ae7328aa45
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 08:56:44 2021 +1000

    Drop include of linux/version.h
    
    No longer needed
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 71701d38acde5f235f905930ab121cf6a2619528
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 13:23:57 2021 +1000

    Add a GObject-based interface to the driver
    
    This patch adds a basic GObject-based library in lib/ that is sufficient
    to interact with the driver. The example tools/wacom-record.c is
    provided to illustrate the use of this library and to provide a
    commandline debugging tool.
    
    This library is for testing use only, it does not provide a stable API
    and should not be used. It is not installed and only available if the
    driver is built with meson.
    
    GObject IR bindings are available too to write e.g. Python programs that
    use the driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d254f902ef0452b63d39935b670814cdabe31534
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 1 12:11:56 2021 +1000

    Move the X-driver-specific files into src/x11
    
    These two files are the only ones that interact with the X server, let's
    move them so we have a visible separation between the core driver and
    the X parts.
    
    Renaming wcmXCommand.c to xf86WacomProperties.c in the process, for
    slightly better namespacing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b47fa8a0aa0b987e675222fd18195a759d40ecaa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 30 10:06:38 2021 +1000

    Split the various logging functions into several calls
    
    We have driver and device logging, and each as a normal log function, a
    sigsafe log path and a debug message log path. So 6 functions overall.
    
    This doesn't matter for the X driver which routes sigsafe to
    LogMessageVerbSigSafe but for other frontends it's useful to keep these
    apart.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3271defd328ad2c33e88de0bcf0600f1b2c8f1ec
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 30 10:36:44 2021 +1000

    Pass the context to two helper functions
    
    In both cases we'll use that context in a follow-up patch to hook into
    the logging functions.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6bd9b920a40bc22c45cfdb5318d9354a7d12a470
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 29 14:36:24 2021 +1000

    Decide on the hotplugged device's name in the driver
    
    For devices hotplugged by the driver, we use the basename and then
    append the tool type and serial (if any). No point having this in the X
    driver layer, let's make this generic.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1be51900620cb1f55262efb475fa11e5519f509d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Nov 27 10:50:38 2021 +1000

    Change return type of wcmDevInit for better readability
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 638da338ce48717721c700bed23096d7578706d2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 15:15:35 2021 +1000

    Allocate the touch valuators in the driver layer
    
    This is ugly. Ideally we'd have those valuators in a custom struct in
    the driver layer but... we don't have that struct, we're using pInfo. So
    rather than wrapping that into yet another struct, let's just allocate
    directly here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9d67f62b953eaabd35c3234d8388c4bbd4ff4fb7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 14:52:40 2021 +1000

    Wrap GetTimeInMillis()
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e8a7b5a5ac359d6a53148f61a05f7996459fa5d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 14:39:37 2021 +1000

    Move a function to the core driver layer
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 29d093bd8671a792124720281f7f1f7c4934d6b4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 13:27:19 2021 +1000

    Abstract the pInfo pointer as a generic frontend void pointer
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9caf26360367a8b28ca7c6961887052509d61fbd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 11:26:10 2021 +1000

    Allow building the driver without serial ISDV4 support
    
    If configured with -Disdv4=false, the ISDV4 serial
    bits will not be built, including the udev rules and the inputattach
    helper and service files.
    
    This is meson only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 493ccdc8f2d1e94dde7f45b2062ac7f91b9a3cf4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 11:19:03 2021 +1000

    Move model listing to the X driver layer
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3171a5cf1a597643c71eb82c85f5e5f43616deae
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 11:15:51 2021 +1000

    Store the valuator range we initialized our axes with
    
    This should really be cleaned up but: we initialize our x/y
    valuators with the current axis range based on the top/bottom values.
    These may change later when updated through device properties - but the
    server's valuator range is fixed, so we need to scale into the range
    originally provided.
    
    Instead of asking the server back for those ranges, let's just keep them
    around.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a7506f139d60934c04dab33554fba07c371ca61b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 11:06:19 2021 +1000

    Add a hook to update the device's name in the driver
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 759f919d808971fa015fd3016e15538b4301aedd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 10:21:59 2021 +1000

    Replace pInfo->fd direct access with a get/set abstraction layer
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9c12ae753fbb06ef83e79d4438941a33b8c896da
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 09:59:21 2021 +1000

    Prefer priv->name over pInfo->name
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bff714f45b48b551c0662658578c5e4080738670
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 09:55:30 2021 +1000

    Switch the type handling to an enum
    
    The init code remains largely as-is but as soon as sensible, change this
    to an enum value and keep it in the device. The X driver layer can
    convert that into the type_name as required.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6e10faec5fcd09bd1390a0d59f436f14e5555e77
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:35:36 2021 +1000

    Split type name and flag assignment
    
    These are just lumped in for convenience, let's split them and move the
    type name to the X driver layer.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7f8094933d8208b777c26e4340c65b2f1d21b652
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 09:23:28 2021 +1000

    Add the interface declaration for queuing device hotplug
    
    And move the hotplugging code into the X driver layer. This code is a
    bit special in that it needs to happen *after* the current function
    call, i.e. via a timer or a WorkProc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 03e6143c33eb416a2394ecb0dfc5595c1c3e3f0c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 09:17:09 2021 +1000

    Declare the three special property update functions
    
    These are updated from the core driver and call back into the property
    code. ATM there are no plans to make the property code X independent, so
    it's easiest to just declare the functions here and leave them to the
    frontend to implement (as stubs, usually).
    
    Because of SIGIO restrictions in older X servers, these need to be
    handled through a timer so we leave the implementation in wcmXCommand.c
    - link that file into the driver and it all comes for free.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 31dae2204d62449b2929526fc2cd3ae72e7b05a5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 08:56:44 2021 +1000

    Add an emulation of the X server's timer API
    
    Slightly different in style, but wraps the X server's OsTimerPtr
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2e53a23f8e351f7daab4c55520d94c37c83d10d1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:45:19 2021 +1000

    Use the option API we provide in the interface
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0170015204e16b47f9fd264ae119f48b734731f7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:43:20 2021 +1000

    Add an emulation of the X server's option handling
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4b055af87e2b3b9fa29c0cf3d0a20ecf6c0917c6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:19:39 2021 +1000

    Add the WacomInterface header file
    
    This header file now declares the functions required by any
    frontend implementation of this driver. The core part of the driver (all
    files but xf86Wacom.c) will eventually be independent of X altogether,
    with the X driver bit in xf86Wacom.c the layer that connects the wacom
    driver to the X server - with the APIs the server requires.
    
    This interface is currently semi-complete, we still rely on pInfo in the
    driver and we still use several X-specific interfaces but the remaining
    ones are ones that require simple 1:1 conversion but not functional
    changes (e.g. option handling, fd retrieval, etc.)
    
    Since Bool is not used anywhere but in X, switch to bool instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 98748db8508be740615dc9c12ae1da9a3650baf2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:13:01 2021 +1000

    Move wcmLog to the driver implementation
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d5ca999f35c7de7032a7e2c7df25019a636e59f6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:03:39 2021 +1000

    Add a helper function to iterate over local devices to the driver layer
    
    wcmForeachDevice() calls a callback on each device that uses the wacom
    driver. Switch our loops over to use that instead of iterating manually
    - this makes the driver code independent of the X way of iterating
    through devices (and finding those using the wacom driver).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 91cbc367947556420e546a5c48107aa62da6231f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:24:07 2021 +1000

    Move the device initialization bits into the core driver layer
    
    What remains in the X driver layer is how specifically the classes are
    initialized in the server, but *what* gets initialized is now handled by
    the driver layer.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 36392bb42a9f34e9b9b4f4045d1db7616f57c059
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 20:32:53 2021 +1000

    Add a wcmDevStop() and move it to the driver layer
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 33389874192bdc844865e086cc31a9b022906206
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 20:31:19 2021 +1000

    Move wcmDevOpen/Close/Start to the common driver layer
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 790211e8fb02e309cd71428d46aa175badadb839
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 20:27:07 2021 +1000

    Move the server FD handling to the caller of wcmDevOpen/wcmDevClose
    
    This makes both functions independent of the X server behavior now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6c9db8d5b735c599f0a2fbc31f3f70568e6183cc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 20:21:14 2021 +1000

    Remove side-effects of wcmOpen(), set pInfo->fd in the caller
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 03feaf44aa67fb6374d67ad13d853435e3ad0ba9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 20:14:38 2021 +1000

    Move starting the tablet into a separate helper function
    
    Let's separate the process of opening the fd from starting the device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 70e5c87072b76d6143b7ca7474a41b45fbb9416b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 16:38:24 2021 +1000

    Print the priv->name instead of pInfo->name
    
    Just reducing the count of pInfo usages.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 539a7bf2593e9b7f02a8224e8f0cc3088bb6bc3a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 16:36:00 2021 +1000

    Store the WacomDevicePtr in the tool
    
    Now that we use the WacomDevicePtr as function argument, use it here
    too, we don't actually need pInfo directly here anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 58a931bc21d1e78629a0873beb221252d065fdca
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 14:06:08 2021 +1000

    Abstract the event interface to pass a struct with axis data around
    
    Instead of the first_valuator/num_valuators/vararg combo, put the
    various axis values into a struct with defined names for each field and
    a mask that tells us which values are currently set.
    
    Pass that struct around and just before we get to the X server, convert
    that struct into the first_valuator/num_valuators/vararg combo. This
    is basically what we already did for the device state anyway, it just
    moves the conversion a few layers higher.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a0192e947161c69254b2e2740c60b779f436a128
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 13:04:43 2021 +1000

    Abstract initializing the device into several helpers
    
    Define an enum for the various axis types we have and initialize those
    with those names. This is largely just moving code around but it does
    make things a bit easier to read, in particular we separate setting the
    axis ranges (generic) from the assigned property name and valuator
    number (X specific).
    
    The biggest difference: we now hardcode Absolute as mode on each axis on
    the device. Functionally identical to before though.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dc7fbbaf1c77a96f77b2cc7e57cb21baf1fa6d06
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 18:22:24 2021 +1000

    Add a copy of xf86ScaleAxis for our use
    
    This is a simple helper function, easier to have this locally than rely
    on the X server API here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5bfc1940e22026410cae7fcff12594a413a8b7db
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:06:15 2021 +1000

    Switch all uses of xf86IDrvMsg and others over to our custom logger
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f77091d09bf093f6168d3bf0424121b9231232d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 14:54:18 2021 +1000

    Add a custom log handler
    
    This wraps the X-specific xf86IDrvMsg/LogMessageVerbSigSafe into a
    wcmLog() function. That then calls the X functions, depending on whether
    we have context as first argument or not.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f8e7594e5c08b35304c948701b06692b8e07eb22
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:16:49 2021 +1000

    Switch a set of functions to use priv instead of common
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d425f88be8cf1d865b9a24476fc78a1f7bddcc17
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:19:53 2021 +1000

    Move some init functions to PreInit
    
    Axis ranges should not change between PreInit and DEVICE_INIT, so let's
    just do this during preinit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5326fd126042684338dfb662f48ba2e27be7fa5a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:08:19 2021 +1000

    Move a few functions into the driver core
    
    xf86Wacom will eventually be the X interface only, move functions that
    aren't a direct interface for the X driver out of there.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e4ea35d56aec59a5de0ef3d9282fdd796d89e6ad
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 12:55:28 2021 +1000

    Move the X module bits into xf86Wacom.c
    
    Split preinit and uninit into two parts each, one for the
    driver-specific stuff, one for what is purely X specific stuff.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 50881abaef562adf53361d938b72327818989ea0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 11:48:52 2021 +1000

    Use WacomDevicePtr as primary context argument
    
    This changes all functions (wherever possible) to take a WacomDevicePtr
    instead of an InputInfoPtr as context argument, with the InputInfoPtr
    either assigned to priv->pInfo or removed where now superfluous.
    
    This should have no functional changes.
    
    Remaining functions are those required by the X server to have a certain
    signature.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4a7e86dc6b3b2b3857407ff45700f7cfb9e40d2c
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Dec 10 14:51:30 2021 -0800

    Correct contents of config-ver.h when using autotools
    
    Use of single-quotes in the argument to sed was preventing the shell
    from recognizing the subshell syntax.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 682e537631fd5fa2ce9b64c0c8ab505d3d12050e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 8 08:53:53 2021 +1000

    release.sh: re-indent with 4-spaces
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 89849af33560ea901ee258208d69cd5693536398
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 8 08:45:37 2021 +1000

    Add an editorconfig file
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6911018797651de5610db9929645c2df4bc79275
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 14:59:49 2021 +1000

    release.sh: support meson as build system
    
    If we have configure.ac use the autotools code (functionally unchanged
    here), otherwise use meson.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 46b212c78970c9566f54cf8e9c003502b3c2b16a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 14:55:34 2021 +1000

    release.sh: simplify tarball handling
    
    We either have bz2 (autotools) or xz (meson), so let's streamline this a
    bit. And remove the hardcoded bz2 handling from the gitlab code so we
    can upload xz tarballs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c0053d88276d1509e6b87b35b7468196be849fc7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 14:44:52 2021 +1000

    release.sh: ignore tar.gz, we're not doing anything with them
    
    The driver doesn't even generate them, libwacom still does but we don't
    upload those as release files. So let's just ignore them altogether.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 38a896d9f4b7a527622af505be4a4d8eb8947dd5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 14:23:04 2021 +1000

    release.sh: check for local changes before doing any hard work
    
    We don't need to search for the build directory etc if we have local
    changes and bail out anyway- so let's do this first.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2c366e9d32796845588308e1f8142090b53e7c58
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 14:17:01 2021 +1000

    release.sh: use find's printf instead of a separate dirname
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 71bd3e7d1d3f10675b5b4704f4007edcdc167d6d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 14:13:12 2021 +1000

    release.sh: compress an if condition, drop another one
    
    Let's use a logical or instead of two separate ifs. And we can drop the
    second check - if somehow the file disappears between those two find
    commands we have other problems.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 01561715839d49b73e67563100ea2a99ad30dfed
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Dec 7 08:29:46 2021 -0800

    Fix null dereference warning from Coverity
    
    Coverity warns that a null dereference of `priv` can be triggered if the
    function's call to calloc fails. Take care to verify that `priv` itself
    has been allocated before trying to free its members.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit cb7647378e0b951f36f7a334d6dc5fa404ed2ba7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 6 09:09:57 2021 +1000

    github: use the meson/pkginstall actions from libwacom directly
    
    Instead of copying it here, let's just use them directly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0e7ad96d2ecf0e1c7f4423989c06b2cee3911242
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 1 12:13:15 2021 +1000

    Enable subdir-objects to stop autotools from complaining
    
    test/../src/common.mk:3: warning: source file '$(top_srcdir)/src/wcmCommon.c' is in a subdirectory,
    test/../src/common.mk:3: but option 'subdir-objects' is disabled
    test/Makefile.am:2:   'test/../src/common.mk' included from here
    
    etc
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 33cf4bf3c06aa3a7eb5e69ccd4299d22223bc094
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 13:24:16 2021 +1000

    meson.build: link libm into the driver
    
    round() requires linking with -lm
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 52331eea588779365645a50d6f3db50dde894d5a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 12:44:02 2021 +1000

    Move resetting pInfo->private out of wcmFree()
    
    No function changes
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 51c4d40ea965d77c4a26b40bca5b639a14008128
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 21:51:45 2021 +1000

    Replace the options correctly
    
    xf86Replace*Option returns the new options list. If the key is already
    present then it'll get overwritten and the existing code works but where
    it isn't, we just drop the new list to the floor.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f16e564ca57dff5365f7ba82e3890adeaa5377a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 13:44:50 2021 +1000

    Hide the WACOM_DRIVER struct a bit better
    
    There's only one call outside wcmCommon and that just resets the
    pointer - let's make this struct static and provide a function to reset
    it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 32a712f67a3a84c957e77d5e76c543ef7f8fdde2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 11:33:37 2021 +1000

    Remove unused macro IsUSBDevice
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7579ccab4dd472483bc004145feb1079e676967f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 20:54:21 2021 +1000

    Define DBG as do while(0) loop if undefined
    
    Otherwise, we'll run into bugs where DEBUG is undefined and the
    following constructs are present:
       if (foo)
            DBG("blah");
       bar()
    
    Without this patch, if DEBUG is defined things work correctly. If
    undefined, DBG used to result in nothing, causing bar() to be
    conditional on foo.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 65b1701c930291255e6111fbe3839487487cf22e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:07:54 2021 +1000

    Drop declaration for wcmReady(), not needed
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 949dc5125e8574196e019506b01bf50c208dbee9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 15:48:55 2021 +1000

    Don't check for the X devices' proximity class
    
    The server does exactly that check for us anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 01b031e5d9364ceeb256b19d99ada0a23c89e675
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 19:35:46 2021 +1000

    Make wcmRotateAndScaleCoordinates easier to read
    
    Use temporary variables here for the min/max axis values
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a7532ef61d3636d192364b82e21eab476ec8f4cc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:23:41 2021 +1000

    tests: make sure priv->pInfo is initialized correctly
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 501c78aed9b5c380a429b61981d5c791c718fda9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:18:38 2021 +1000

    ISDV4: switch a message to sigsafe logging
    
    This is called in the signal path, at least on older servers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c6d6005ce67c72d9e2913b386b25e19bd010d78d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 12:59:53 2021 +1000

    Define XI86_DRV_CAP_SERVER_FD to get rid of an ifdef
    
    Introduced in the server in the same patch as XI86_SERVER_FD so we can
    define both and drop the ifdef. Supported since xserver 1.16.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c1425350a8fd024ef8c6c2dba595f477d98bc115
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 14:00:48 2021 +1000

    Change the WacomDeviceModel funcs to the order they're called in
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 04705cf59d5188df283598b7e436ba9ad925bed3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:59:56 2021 +1000

    Use named initializers in the ISDV4 model struct
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ae4d16798a345e89921a392bc5a23d31861f753
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:57:54 2021 +1000

    Move GetRanges into Initialize
    
    These two are called immediately after each other, let's compress them
    into one call so it's easier to keep track of which hooks we need.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5f9ac0efed0df4bdeb23f67d4a6e9e912d1ceaba
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:47:52 2021 +1000

    Remove write-only version and id assignment
    
    Both were read in one function hook and passed to the other function but
    never actually read anywhere. Let's drop this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2beae8cdeca09d87fa89e04b45ec2d82b70c55e3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:41:02 2021 +1000

    Drop the unused GetResolution hook
    
    The old serial tablets used those but support for those was removed in
    2009. ISDV4 and USB both have that hardcoded to NULL.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 429ca6e5420238659a4017bf1b8b581b4d87e619
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:28:51 2021 +1000

    Change the order of functions in the device class
    
    Let's use the order they're called in, makes things easier to look up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 955299042f6582fa91395fcf5108f2c4f4e305fa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 11:55:06 2021 +1000

    Store the input properties in the driver
    
    This requires kernel 2.6.38, released in 2011
    
    If that's too modern, #define INPUT_PROP_DIRECT and ignore the ioctl
    return value.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1e45aa3573e40715e23012de7bc67e9c7a3ced34
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:16:39 2021 +1000

    Decouple priv->name and pInfo->name
    
    Leave the server's name pointer as-is and keep our own copy around. No
    real functional change, this is just decoupling.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c81f65967894d288bfa55c3f2476ccd993d77050
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 10:08:05 2021 +1000

    Require kernel 2.6.30 or newer
    
    12 years is enough time to update the kernel...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b6aeba34be2e4c3f9de6b41f4697e80998baa00
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 09:58:39 2021 +1000

    sendWheelStripEvent should take pInfo as first arg like everything else
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 85c94a88ee1a4dd76fa6f1ccf5dc44c270bd5835
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 09:54:39 2021 +1000

    wcmIsWacomDevice can be static
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b3e7a957eb15250498162885e6bb60f9b23fe7b9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 10:55:26 2021 +1000

    Split setting the HW touch property in two
    
    Part one is the internal state update which we can move out into the
    single caller we have (and we only get here if the state has
    changed).
    
    Part two is the X property update.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d6f22a604b0c13cc24e8c0e6fd952e2242ae104f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 10:52:48 2021 +1000

    Split setting the serial property into two logical parts
    
    Part one is the driver-internal state update, part two is the X property
    update.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6996cebdb9d7efa4702274103ca2fe265e66e037
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 10:46:25 2021 +1000

    Split listing models into the core and the X-specific part
    
    Not really needed, this is prep for future work to split things up a bit
    easier. The wacom-specific part merely collates the models into a list,
    the X specific part is what converts it to the API the X server provides
    for printing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 76d60a8556eca91e5e80d25e1b1b7aecd4ffdced
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 20:04:10 2021 +1000

    Don't call wcmClose if we failed to open
    
    And remove the debug message too, wcmOpen() will log for us on failure
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2f39abedf6c034c1bdbe0352ad69ad5b090e553e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:16:39 2021 +1000

    Move the function pointer setup out of wcmAllocate
    
    And in the process make wcmAllocate return the pointer that was
    allocated rather than magically setting the right fields in the argument
    struct.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0d80957b723e763f12ea7ef292e991bec5949ffe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 10:00:34 2021 +1000

    Remove unused variable from WacomDeviceState

commit 415dc7ed7b33cdbe5da7034fc904adf649dcc8d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 11:17:49 2021 +1000

    Skip opening a device without a common path
    
    No point opening it if we then fail in the same condition anyway. This
    saves us a call to wcmClose() because we know the fd won't be open if
    wcmOpen() fails.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0ed23b61e082dbc42b5d67943e5db4e1dd66b630
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 10:54:47 2021 +1000

    Return an errno from wcmReadPacket()
    
    Return the number of bytes read or a negative errno on error, and let
    the caller deal with the errno handling.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e7772d7da3fa20298b7e4500d4c1201ab1f902c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 10:50:52 2021 +1000

    Return an errno from wcmReady()
    
    Return the number of bytes available or a negative errno on error.
    
    This also fixes an issue with the errno handling - where the debugging
    code would print there was a chance of us clobbering errno before
    printing the message. This is no longer the case.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1a11c65d417174f9eb1cfbd702ee3bec15237193
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Nov 21 12:09:54 2021 +1000

    Drop the type name from the debug message
    
    It's constant for the lifetime of the device anyway, so the device name
    we're printing should be sufficient.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1f68d091221412f2ddc1fb4fa36fe0d459335097
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Nov 20 21:30:20 2021 +1000

    Move a header to a more localized position
    
    This is only needed here where we're dealing with properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3ab054df113eba52a588ce985bac88bcf3fc1c73
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Nov 20 21:04:01 2021 +1000

    Store the boolean to check for grabs or not in the USB data
    
    This effectively collates all the option checks into wcmPreInit as
    opposed to doing the check at some random time later.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 28e1700ad2fe2cad53b38bb27fb93f71523ff14d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 12:45:50 2021 +1000

    Simplify axis resolution initialization a bit
    
    No-one really cares about min/max resolution anyway, so let's simplify
    this: if the resolution is zero, set it all to 1 (server requirement),
    otherwise set min 0 and max whatever the resolution is. This almost
    matches what we had except for tilt where we had min_res == max_res. but
    as I said, no-one cared about that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 13c848470ca4e600db4e8f6762932ec78989fe31
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 13:38:24 2021 +1000

    Move the setup of the property handlers into InitWcmProperties
    
    A more logical place to have this and it allows us to make the functions
    static.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cf03a8754e6948de623554c2bffc2c56b16099fc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 13:38:24 2021 +1000

    Initialize button actions during DEVICE_INIT
    
    Previously this was initialized as part of the property handler setup,
    but the two should be handled separately. Move the initialization of the
    properties to the driver init code and in the properties code merely
    copy the values into the property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bd8949115643114876cea0e017518d648ff0633c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 08:29:38 2021 +1000

    Rename the key/wheel/strip actions to foo_actions
    
    Makes the code easier to read
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b941a49e7a3ff30d05c1b59fc623ec70c774d856
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 08:27:26 2021 +1000

    Rename the action property arrays to foo_action_props
    
    Easier to understand if they're named after what they contain.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c3e93aef15e0dcf913161ab0df5856847167ba48
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 13:36:15 2021 +1000

    Split action and property update/init into two separate paths
    
    One to update the structs, the other one to update the X properties
    accordingly. This is a more logical split than having the property
    initialized at the same time as resetting the driver-internal
    structures.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 81013ea4f9b21e6a6cece259b98d25c050371615
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 15:37:57 2021 +1000

    Make sure action properties initialize with the right count
    
    Wheel and strip actions default to two entries but we've only ever
    copied the first of those into the property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ae63ab5c6ab587b78115fa3a43d315a2a221cb35
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 12:36:19 2021 +1000

    Add a struct for WacomActions
    
    Easier to pass structs around than arrays and their size, doubly so when
    we have a hardcoded size for those arrays
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4b0d71f3e322ffb27119684c4fdfc37ff82fa58c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 12:32:37 2021 +1000

    Remove a pointer indirection from static void wcmResetAction
    
    The resetting function itself shouldn't care about indices and how the
    caller stores the data.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0b121ecb9f544b1ae3636ee28052bec45937d898
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:20:41 2021 +1000

    Use the ABI_XINPUT_VERSION macro directly to compare major+minor
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c310f0849f0a63f288c4c9727332520b7f924d02
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:17:59 2021 +1000

    Require xserver 1.13
    
    Released 9 years ago and available in e.g. RHEL6.4 and later, this is
    plenty old an X server to support. ABI version 18.0 so we can get rid of
    most of our ifdefs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit db26b7d0417997bd6acd06e47d97888e1a10adb4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 14:09:56 2021 +1000

    Integrate the meson build into our github workflow
    
    actions copied from libwacom and we can re-use the pkginstall action for
    the normal build job too.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e6c727da7a1d332253a9193963b6d4f931b2e69f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 10:15:34 2021 +1000

    Add support for building the driver with meson
    
    In addition to autotools, the driver can now be built with meson:
    
       meson setup builddir
       ninja -C builddir
       ninja install -C builddir
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d37f9aba270b61e79178b5e0125901b2e711ffec
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:44:49 2021 +1000

    Use __attribute__((fallthrough)) to mark one of the fallthrough cases
    
    No compiler check performed here, if your compiler doesn't support it,
    define it as empty to override the default.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2fc8e2e01a8b2f4d645ff95328f07c8624b2a161
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 11:34:51 2021 +1000

    conf: use @ instead of __ for a sed replacement
    
    This makes meson integration easier
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9e45806864df2a725e303b4fdb4564c7841bc960
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 10:44:07 2021 +1000

    Explicitly include the config-ver.h header file
    
    Don't automagically append it to the bottom of config.h, let's be
    explicit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 27b0f50c02ca1329bc95aab7dfc1e2bfbdc1ba03
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 10:33:52 2021 +1000

    Simplify the git version generation
    
    Use a template file and call sed on that - it's a single-line command
    in the makefile and easier to understand.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit baf91c9402b222b3f532d1f89a79d1cd77d4d821
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 10:17:19 2021 +1000

    Unifdef HAVE_CONFIG_H
    
    There's no case where this is not defined
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6cf383ca985877b7285f856de61a4edee4f93480
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 10:14:03 2021 +1000

    Switch two #if DEBUG to #ifdef DEBUG to be consistent
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 06a44ac3074774c3eb1c59739bcc9cfa775649d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 09:13:05 2021 +1000

    man: use @PACKAGE_VERSION@ as version sub in the man page
    
    Makes use of meson easier which requires @ as pre/suffix for variables.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ef75756b7d5fe261da1cae447a56d6e79f73c88e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 09:09:17 2021 +1000

    man: replace the various suffixes with their actual numbers
    
    These don't change, iirc they exist because of some unixes having
    different man pages but at this point really on Solaris is left and that
    uses the same suffixes as everyone else.
    
    And the __xservername__ is a leftover from the Xfree86 vs Xorg days - if
    you're still running Xfree86, you're not using this driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6def5202ad013f31df237a5c37dfbd099e14b3b0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 09:04:21 2021 +1000

    Remove the doxygen bits
    
    This hasn't been maintained in years, we don't consistently document
    things and the documentation has never been published anywhere useful.
    Let's just drop this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ef209bc779176172c73e8f307e8a6ff2d0779d1c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 12:32:11 2021 +1000

    Move axis number clamping to where we assign it
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5900f0547eeb38b690ae5bdee242720c61c9d480
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Nov 21 20:34:08 2021 +1000

    Move device/type option fetching to after allocation
    
    Allocation may fail, so let's move this after the first failure path so
    we don't do unnecessary work.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0b985dfaf49373f12db7abadbaefdd32951fc47c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Nov 21 11:53:14 2021 +1000

    Use strcasecmp instead of xf86NameCmp
    
    The latter skips over '_ \t' but none of the options we parse will have
    any of those characters in it. Let's use strcasecmp() directly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 18b38bf3af8246df17220cb6185a0d1aa549bb0e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 12:18:29 2021 +1000

    Drop two unused arguments in wcmResetAction
    
    Neither of those seem to have ever been used
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9525a0a69b8631c3f9feecb47f51a6d84545b378
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 10:40:42 2021 +1000

    Hardcode the USB ids for the few non-wacom tablets we support
    
    These never change, let's just hardcode them as strings and skip the
    dynamic ID generation
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 56f7bbbc51c6e3de284ea72b3e02b75e812c6d02
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 10:01:11 2021 +1000

    Include limits.h for INT_MAX, math.h for round()
    
    No changes since those are included by other headers, but let's be
    correct here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 08dff4b378f47beb929384bc831cdcca6c892e39
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Nov 21 21:20:55 2021 +1000

    Make wcmCheckSource()'s control flow simpler
    
    Let's check for pointer equality and driver name first, because we can
    skip the rest otherwise.

commit a9fb16eff239a582368fc9d67bff846eacb99916
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 09:17:47 2021 +1000

    Change wcmOpen to return the fd or a negative errno
    
    This is a more common signature of an open call, and it also fixes the
    previous issue: the function signature was Bool but the return value was
    0 on success and nonzero on failure. Not what you'd expect.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 285b0aeac16235475082e88076eba5660b2ad5c5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Nov 20 21:16:29 2021 +1000

    Fix indentation for the WacomDeviceClass decls
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3cb35dc5673c4bfc9aab5e96f33b4866aa8f947b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Nov 20 21:31:28 2021 +1000

    Remove two obsolete includes
    
    mipointer is probably a leftover when we had our own multiscreen handling
    code. xorgVersion.h contains a few macros, none of which we seem to use.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 99a4388abb539a66cbd4886851c232e9cb61f21d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Nov 21 11:50:01 2021 +1000

    Group two include statements
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d0327670ffa5b0975fb40b2f988ac8ec72261bca
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Nov 20 21:18:43 2021 +1000

    Remove a few #defines no longer needed
    
    If you're running 2.6.33 or older (released in 2010), you're probably
    not running the latest X server + drivers.
    
    And not having inline is just no longer an option, it's not 1989
    anymore.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f22586a0861b9bad70f4ffb208526280308c0c80
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 09:35:21 2021 +1000

    Replace xf86ReadSerial and xf86WriteSerial with libc calls
    
    That's all the server does anyway for these calls. That and some
    debugging printf of the data but that would require the server to be
    build with those debugging flags enabled.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4865f088a20a568908241664dfa406b42d003f03
Merge: 32e21fe9 d0d28821
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Nov 19 14:53:28 2021 -0800

    Merge pull request #190 from whot/wip/cleanup
    
    Require xserver 1.10, use xf86IDrvMsg

commit d0d288211c8313fa99db0733ab2765375867bceb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:56:39 2021 +1000

    github: don't warn about unused parameters
    
    This is just spamming the build logs, we have too many of those.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 89265b05f13a28646696f28b9709a8d02c5cb0fb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:13:30 2021 +1000

    Drop the gWacomModule function set
    
    There's little point having a separate struct for these few setup
    fuctions.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ae0c60d5d9ada342e60ae8a4f7a4847759c84b6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:06:33 2021 +1000

    Remove a write-only variable
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 31d736334fadf9c69c01f86e1d1ca1f6540396ae
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 21:42:30 2021 +1000

    test: always build the tests
    
    They don't test much but it's still better to always build them so we
    don't have to chase down compilation errors after the fact.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 637a52ae3ab1abed05a9fce8279c7a80aa1af47d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 13:23:08 2021 +1000

    Use xf86IDrvMsg wherever possible
    
    This function was added in server 1.10, released in Feb 2011. Bump the
    requirements accordingly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a2a33b41f1ae8d918190e3f0bf14c38cc7db8549
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 15:50:11 2021 +1000

    Require xserver 1.10 as minimum version
    
    Released in 2011 and available in RHEL6.2 and later, this should be
    conservative enough. It allows us to drop a bunch of code that requires
    older ABIs (anything ABI_XINPUT_VERSION < 12).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b13a40cb9c2015093cc9e12fb1ecc1cedbe8925c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 13:28:00 2021 +1000

    Remove trailing whitespaces
    
            sed -i 's/ *$//' $(git ls-files)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 32e21fe93b7f7e2076f7dcdfea582a39c4474a12
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jul 15 12:19:36 2021 -0700

    Cleanup `wcmIsAValidType`
    
    This patch cleans up the `wcmIsAValidType` function so that it is a bit
    easier to understand. It replaces several `if` conditions with named
    variables, adds additional comments for what the code is doing, and
    reformats the flow to be easier to follow and reason about.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ae3efeede58be099d763da726b8325af57fc68c8
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Feb 16 10:39:37 2021 -0800

    Stop logging "Invalid type" error messages when auto-detecting type
    
    The `wcmIsAValidType` function is not the proper place to log an invalid
    type error since it is used to auto-detect an appropriate type for a device
    which does not have a manually-set type. This commit removes the error
    message and creates replacements to handle true error conditions. In
    particular, this means logging an error if *no* valid type is found, and
    logging an error if a serial-number tool does not actually support one
    of the expected types.
    
    Before:
    ~~~
    (II) Using input driver 'wacom' for 'Wacom Cintiq 24HD touch Finger'
    (II) systemd-logind: got fd for /dev/input/event6 13:70 fd 29 paused 0
    (**) Wacom Cintiq 24HD touch Finger: always reports core events
    (**) Option "Device" "/dev/input/event6"
    (EE) Wacom Cintiq 24HD touch Finger: Invalid type 'stylus' for this device.
    (EE) Wacom Cintiq 24HD touch Finger: Invalid type 'eraser' for this device.
    (EE) Wacom Cintiq 24HD touch Finger: Invalid type 'cursor' for this device.
    (II) Wacom Cintiq 24HD touch Finger: type not specified, assuming 'touch'.
    (II) Wacom Cintiq 24HD touch Finger: other types will be automatically added.
    (**) Wacom Cintiq 24HD touch Finger touch: panscroll is 0
    (**) Wacom Cintiq 24HD touch Finger touch: panscroll modified to 13
    (--) Wacom Cintiq 24HD touch Finger touch: maxX=5184 maxY=3240 maxZ=0 resX=10000 resY=10000
    (II) Wacom Cintiq 24HD touch Finger touch: hotplugging dependent devices.
    (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'stylus' for this device.
    (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'eraser' for this device.
    (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'cursor' for this device.
    (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'pad' for this device.
    (II) Wacom Cintiq 24HD touch Finger touch: hotplugging completed.
    ~~~
    
    After:
    ~~~
    (II) Using input driver 'wacom' for 'Wacom Cintiq 24HD touch Finger'
    (II) systemd-logind: got fd for /dev/input/event6 13:70 fd 29 paused 0
    (**) Wacom Cintiq 24HD touch Finger: always reports core events
    (**) Option "Device" "/dev/input/event6"
    (II) Wacom Cintiq 24HD touch Finger: type not specified, assuming 'touch'.
    (II) Wacom Cintiq 24HD touch Finger: other types will be automatically added.
    (**) Wacom Cintiq 24HD touch Finger touch: panscroll is 0
    (**) Wacom Cintiq 24HD touch Finger touch: panscroll modified to 13
    (--) Wacom Cintiq 24HD touch Finger touch: maxX=5184 maxY=3240 maxZ=0 resX=10000 resY=10000
    (II) Wacom Cintiq 24HD touch Finger touch: hotplugging dependent devices.
    (II) Wacom Cintiq 24HD touch Finger touch: hotplugging completed.
    ~~~
    
    Link: https://github.com/linuxwacom/input-wacom/issues/221
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 9d7e3bf42052694c799da1e16ad7f60c913a492f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Feb 3 06:46:54 2021 -0800

    wacom 0.40.0
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit abffe85e3a873c63237b96e5d3d40172805f3822
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Feb 2 14:49:29 2021 -0800

    Recognize pad devices which only have softkeys (e.g. Cintiq Pro 32)
    
    Devices like the Cintiq Pro 32 have pad devices that have no ExpressKeys.
    This prevents them from being recognized as a pad by the driver. When
    the device is connected, an `Invalid type 'pad' for this device`
    message would be logged.
    
    This has not been an issue in the past since there is nothing for the
    device to do without any ExpressKeys. Now that the driver is capable
    of forwarding the various softkeys as fixed-function keyboard events,
    however, it would be good to ensure that these kinds of devices are
    detected properly.
    
    Recognizing the device as a pad only requires us to expand on the list
    of tools that are known identifiers. Since we want softkey-only pads to
    be recognized, the two softkeys to the list. One or both of the keys
    should be present on devices like the Cintiq Pro 32, allowing the pad
    to be recognized as such.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a93666436303b89d11eff7fd0e5de93d76a1e2d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 17 15:20:45 2019 +1000

    Support the keycodes sent by the hardware buttons
    
    Forward the pad keys as keycodes KEY_PROG1-4. The evdev code has the right
    meaning, but we cannot route those keys (>255) so we just map them to
    KEY_PROG1-4 instead. This way we can in the future add a xkeyboard-config
    option to assign something to those keys.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2f5f1096ee877a72f7d9585e56c98e07e8ed00b6
Author: Russell Haley <yumpusamongus@gmail.com>
Date:   Mon Aug 24 01:17:27 2020 -0500

    Stop pointer movement when panscrolling in relative mode
    
    Always stop pointer movement when a panscroll button is pressed in
    relative mode, instead of only when the pen is down. This keeps the
    pointer from "walking" when the user lifts the pen and scrolls
    repeatedly.
    
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/139
    Signed-off-by: Russell Haley <yumpusamongus@gmail.com>

commit 252bdda1ff71d1a167adfd0246464df536805746
Author: vintagepc <53943260+vintagepc@users.noreply.github.com>
Date:   Fri Jun 5 17:36:52 2020 -0400

    Better explanation of the "ToolSerials" option
    
    For https://github.com/linuxwacom/xf86-input-wacom/issues/128

commit 120dca3ae7dbcad382e148b2edde160e2020874a
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Jan 21 13:25:10 2021 -0800

    Remove Travis integration
    
    Now that we've integrated with Github Actions, Travis is no longer
    necessary. Notably this does mean the loss of ppc64le testing, but
    it isn't a high priority target, and we will have lost that testing
    anyway once our free Travis credits run out...
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 065aec968f7a89dd74987b8eb50ab4615f0c4347
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Jan 15 11:35:30 2021 -0800

    Add workflow for automated testing via Github Actions
    
    We've been using Travis for our automated tests, but that service is
    becoming more difficult to use (open source projects have to periodically
    request free credits to keep running). Github itself can be used as a
    replacement by using its "Actions" infrastructure to execute various
    defined workflows.
    
    This commit ports the Travis script into Github syntax. Most everything
    was translated without issue, but support for the ppc64le architecture
    is notably missing. This is not a critical target for us, however, so
    we ignore it for the time being.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d56107e19a57bf3cf44e266a394da43397a8841a
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Fri Jan 15 10:24:10 2021 -0800

    gitignore: Add a few more entries
    
    Ignore the announce and sig files generated as part of the release process.
    Also ignore the version info generated as part of the compile process.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 2dc5769aaa91e8f61620a027af21b4e0b7ac1cc8
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Dec 2 13:51:44 2020 -0800

    tools: update rules to handle bind/unbind events
    
    Summary: we expect add, change or remove but kernel 4.12 added bind and
    unbind. These events were previously discarded by udevd. Our rules should
    handle any event *but* remove, so update as suggested in the announce email
    linked below.
    
    For a longer explanation, see the system 247rc2 announcement
    https://lists.freedesktop.org/archives/systemd-devel/2020-November/045570.html
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit f9cc6a1dda10c1e8cdd1c68a7873c4d90665cb06
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Nov 30 08:32:28 2020 -0800

    Increase size of event queue to 128
    
    The size of the event queue defines how many kernel events we can keep
    track of before seeing a SYN_REPORT. If we are ever asked to handle
    more than this limit, data is dropped with unpredictable consequences.
    Our previous queue size of 32 was usually sufficient but could still
    be bumped into in edge-cases. Updating 8 or more touch contacts at the
    same time could sometimes cause the queue to run out of space, for
    example.
    
    This commit bumps the queue size up to 128. This should be more than
    enough for all current devices (some of which can track up to 16 contacts).
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a7f88f9c0194c8ecaffb81b073f3620b8b90b014
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Nov 30 08:32:11 2020 -0800

    Remove duplicate MAX_USB_EVENTS definition
    
    A definition of this macro already exists in wcmUSB.c and is not used
    in any other file. There's no need for this duplicate to exist.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 9b7d679ebe1f12eb61814dcd9aba6f7cbdedbb57
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 19 16:25:05 2020 +1000

    travis CI: order ppc64le after amd64
    
    https://docs.travis-ci.com/user/multi-cpu-architectures/ says that "explicitly
    included builds inherit the first value in an array" and the example there
    matches our configuration.
    
    Moving ppc64le to after amd64 means the coverity job we have is now (again)
    run on amd64 only, fixing the current test case failures - Coverity doesn't
    support ppc64le.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9bf6954aaee05ebc32d86ca8297d8bcbe927c46f
Author: kishorkunal-raj <mr.kishorkunal@gmail.com>
Date:   Mon Sep 21 07:40:38 2020 +0000

    Adding ppc64le architecture to support on travis-ci

commit a4372a2e6083312defc9eef2806ebea98f02fa1a
Merge: 095ba9c4 304ee7ee
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Aug 3 08:26:00 2020 -0700

    Merge pull request #137 from Pinglinux/for-cintiq-16-2
    
    Support new Cintiqs for older kernels
    
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 304ee7eefc355176334518449a363e65afb341b2
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Wed Jul 29 13:29:47 2020 -0700

    Support new Cintiqs for older kernels
    
    Kernels older than 2.6.38 do not report INPUT_PROP_DIRECT
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 095ba9c48e8cf8a96970e211ed734ba5883a0025
Author: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
Date:   Tue Jan 7 11:24:15 2020 -0800

    Add new "Wacom One Pen Display 13" PID
    
    Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit 0fb1699b48a36a564ce3b928d90be27f896c220a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 20 10:42:31 2019 -0800

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

commit a3b03e8638c037132fdf0927c7e488ec80967a5c
Merge: 3b338312 a2f52bd6
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Dec 16 13:01:39 2019 -0800

    Merge pull request #96 from jigpu/add-new-msp-pid
    
    Recognize new MobileStudio Pro PID
    
    Reviewed-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit a2f52bd6b338031331fefe074d22b7ed19057341
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 6 11:26:51 2019 -0800

    Recognize new MobileStudio Pro PID
    
    A new PID is in use for repaired MobileStudio Pro devices. Add it to the
    various device properties lists.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3b338312eb275f2d9a602805931fa47d863a0209
Merge: b40122dd 5113d183
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Nov 4 09:14:40 2019 -0800

    Merge pull request #92 from jigpu/fix-74
    
    Ignore ABS_MISC as a source of device type information for AES pens

commit 5113d18300bfae2dbffc78c67aef0760d612d995
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 23 14:29:09 2019 -0700

    Ignore ABS_MISC as a source of device type information for AES pens
    
    AES sensors use protocol 5 since they send ABS_MISC events which contain
    information about the tool type in use. The tool type information sent
    by AES sensors does not match that used by EMR sensors, however. In
    particular, it is not possible to extract stylus/eraser/puck information
    from the ID.
    
    The driver would normally never try to extract this information, but the
    problem was highlighed when a bug in the kernel would cause the device ID
    to be reported twice: once in a packet alongside a BTN_TOOL_* event (fine)
    and a second time in a packet without such an event (causing the driver
    to try to figure it out from the ID instead).
    
    This commit adds detection for AES pen IDs and does not try to extract
    such information if an AES pen is in use. We assume that any protocol 5
    device which predates the use of Intuos5-era technology uses the legacy
    IDs.
    
    Ref: https://github.com/linuxwacom/input-wacom/issues/134
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/74
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit b40122dd49ca2cdd2d2608f30e5340d5c963187d
Merge: 17028f68 2a7af307
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Oct 23 13:50:18 2019 -0700

    Merge pull request #90 from jigpu/fix-86
    
    tools: Fix potential buffer overflow when reading from serial tablet
    
    Reviewed-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit 2a7af30793f9aa6e36acdc7c8b908d0965585437
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 10 12:13:39 2019 -0700

    tools: Fix potential buffer overflow when reading from serial tablet
    
    The read_data() function has a "min_len" number of bytes to read
    to ensure that a complete data structure is read, regardless of garbage
    that may be on the line. When garbage is present, however, it can
    potentially overflow the buffer.
    
    The function already has code to memmove the good data over garbage and
    perform re-reads until "min_len" bytes of good data are available. All
    we need to do to avoid the buffer overflow is ensure that the maximum
    number of bytes we read() in one call is no more than the number of
    bytes free at the end of the buffer.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/86
    Fixes: 3546d8ab1b ("tools: add isdv4-serial-debugger test program")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 17028f68f5ca41cf6c77e4166e48006e6c3fff45
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Oct 14 10:40:45 2019 -0700

    wacom 0.38.0
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 6e42a0806f61b112deee4e4fa30daf23a435e40c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Oct 9 14:25:21 2019 -0700

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

commit 76878df9a7bbcead2375a19fd1683f830e6941bb
Merge: 3a4b9613 af2fafdf
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Oct 9 14:04:22 2019 -0700

    Merge pull request #84 from jigpu/gesture-mods
    
    Gesture mode default change
    
    Reviewed-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit af2fafdff96ba4f087fcbe4ce4ddc57916614e84
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 4 10:27:08 2019 -0700

    Handle multitouch mode up at the very start wcmGestureFilter
    
    Moving the code which handles multitouch mode to the start of the function
    both makes the code more obvious and ensures that we don't accidentally
    recognize an unwanted gesture. Doing so much partial-processing before
    eventually hitting a "goto ret" and handling multitouch mode was tricky
    to understand and hard to verify.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 009f7424a21cd56404c9827d69e6920551bf43c8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 4 10:03:13 2019 -0700

    Perform a few cleanups in wcmTouchFilter.c
    
    Removes the #ifdef compile guards around the code that checks if gestures
    are disabled prior to doing multitouch processing. They aren't strictly
    necessary, and actually prevent "gesture off" from having an effect on
    older X servers.
    
    Also removes a vestigial check in wcmFingerMultitouch. The original
    version of the function would only be called once two or more fingers
    were down. This gave wcmSingleFingerPress a chance to send a left-click
    event when just a single finger came in contact with the touchscreen.
    Later it was realized that the MT protocol requires us to send even
    *single* touch events for touchscreens through its API, so the code was
    changed to *always* call wcmFingerMultitouch when a touchscreen was in
    use. This had the side-effect of never calling wcmSingleFingerPress,
    rendering this check useless.
    
    Also removes some unnecessary checks from the zoom/scroll processing
    that are either already handled by pre-conditions above or have no
    real effect.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 31a5405f7d9405bc514585709161287b0c67386e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 9 15:32:17 2019 -0700

    Change default gesture mode: touchpad=on, touchscreen=off
    
    A large number of users run the GNOME desktop which has its own gesture
    engine that performs actions on touchscreens. These gestures are much
    better than the ones we provide, so lets disable our engine by default
    for touchscreens. Note that GNOME doesn't do anything with touchpad
    gestures, so we leave them enabled by default.
    
    Note that this change will effectively cause a feature regression for
    users of other environments that do *not* have their own gesture
    engines (Cinnamon, KDE, MATE, XFCE, etc.). Users will want to add an
    xorg.conf.d snippet with `Option "Gesture" "on"` to bring back the
    functionality.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3a4b96139e27a593c869fe28999211d6c90142eb
Merge: ef943197 3eb70aeb
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Sep 12 15:07:01 2019 -0700

    Merge pull request #78 from Pinglinux/master
    
    Support new MobileStudio Pro for older kernels
    
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3eb70aeb87a2aed091cf3bd80e6236aa9c1fdbaf
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Tue Sep 10 21:40:58 2019 -0400

    Support new MobileStudio Pro for older kernels
    
    Support new MobileStudio Pro 13 and 16
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit ef943197cc912f782412dcbe02aac92a8fb4d61f
Merge: 0ac49a26 a38074dc
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Sep 9 14:43:45 2019 -0700

    Merge pull request #77 from jigpu/issue-43
    
    Improve gesture recognition and usability
    
    Reviewed-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit a38074dcfb2350c0253ae4ac3c3745c4977596e5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jul 24 13:48:08 2019 -0700

    Trigger scroll and zoom gestures immediately after they are detected
    
    The amount you have to move your fingers to start a gesture is quite a
    larger than the amount you have to move them to continue to gesture.
    This makes the smooth use of gestures difficult since it can be a little
    unpredictable exactly when they finally kick in. By triggering the zoom
    and scroll gestures at the same distance as it takes to continue them,
    the gestures feel much more smooth to execute.
    
    This commit removes the various delays that prevent gestures from being
    executed the moment the configured scroll or zoom distance is achieved.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/43
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3cf2348aa5b3cb169a0b9d5ce06a243dcd009e0c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 25 14:54:41 2018 -0700

    Revert "Reset wcmGestureState to current device state upon gesture start"
    
    This reverts commit 8f85692a19bd34dae77071a296a14c01a491cf4a.
    
    In the next commit we will be starting gestures immediately on detection,
    eliminating the need for this commit. (Indeed, its existance actually
    is an additional delay of 1 event distance to immediate execution)
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 73c0fdb41eeea00667029d5eea1129c0ad14e17e
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jul 24 13:26:34 2019 -0700

    Do not start scroll gesture if fingers are moving opposite directions
    
    The driver sometimes has difficulty distinguishing scroll and zoom
    gestures. This is caused by a combination of the zoom spread distance
    being larger than the scroll distance and the "pointsInLine" checks being
    blind to fingers moving in opposite directions. Zoom gestures that have
    fingers moving in opposite directions along the same axis are especially
    likely to be misinterpreted as a scroll.
    
    To improve recognition accuracy, this commit adds a function that verifies
    the two fingers are actually moving in the same direction. As long as the
    motion vectors for the two fingers are more than 90 degrees apart, scrolling
    will be inhibited. The allowed difference could be significantly reduced if
    necessary, but this seems to do the trick for me.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 8cc538503cdadcf6e4801c53a6ad1badc8c7e2d4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 15 11:34:12 2018 -0700

    Minor cleanups for wcmFingerScroll and wcmFingerZoom
    
    Make some especially-long lines a little easier to read.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 813391f78e3d0a10292b234fc103e60f42362c70
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 15 11:43:44 2018 -0700

    Use wcmScrollDistance as scroll threshold; recognize scrolling more consistently
    
    The wcmFingerScroll function runs a series of checks when trying to
    recognize a scroll gesture. The first check is that the fingers have
    not spread apart (or come closer together) by more than a specified
    distance (wcmMaxScrollFingerSpread). The next check is that both
    fingers are moving in the same direction. This second check is performed
    by 'pointsInLine', which returns 'TRUE' if the contact has moved in the
    expected direction by some minimum distance. This minimum distance was also
    set to wcmMaxScrollFingerSpread, despite it not really being a measure of
    finger spreading.
    
    This commit changes the minimum distance to be wcmScrollDistance: the
    distance at which a scroll event would normally be emitted. This will
    cause scrolling recognition to feel consisitent with the rest of the
    scrolling experience, eliminating the lag between starting a scroll
    gesture and the driver recognizing it. As long as you move your fingers
    one scroll distance, scrolling will begin.
    
    Users who have a very small scroll distance may find this change makes
    it harder to trigger a pinch zoom since the fingers must move apart or
    together by at least wcmMaxScrollFingerSpread before moving up/down/left/right
    by the scroll distance.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/43
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 1f52ad54c1ae66e25a28c2ca1178921118f9d9c1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 25 10:41:56 2018 -0700

    Overhaul calculation of default scroll, zoom, and spread distances
    
    The default values for zoom, scroll, and spread distances were originally
    fine-tuned for use with a 3rd-gen Bamboo small tablet (e.g. CTH-470). The
    code tries to scale these values to work with other sensors, but there are
    a couple of problems with the actual logic:
    
    1. The scaling is done based on the logical size of the tablet. This is
    problematic for some generations of tablet (including the 3rd-gen Bamboos)
    which use sensors with an identical logical size despite different physical
    size. This means that larger tablets in these generations require larger
    gestures to accomplish the same task.
    
    2. The scale factor for the scroll distance is calculated with respect to
    the X axis, even though it is far more common to scroll vertically than
    horizontally. For devices with a different resolution in the X and Y axes,
    this means that calculated default won't be consistent with devices that
    have the same resolution in both the X and Y axes.
    
    This patch makes several modifications to simultaneously address all
    three of the issues. We replace the logical Bamboo-referenced numbers
    with equivalent millimeters, calculate the logical distances based on
    the kernel-reported resolution (using the resolution of the Bamboo if
    not available), and specifically scale scroll distances with respect
    to the Y axis.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 65b7c37f0fac5cdd03ff7f977124148d0bdf4be8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 18 07:09:03 2018 -0700

    Prevent spurious right-clicks at the end of very short scroll and zoom gestures
    
    If you perform a two-finger scroll/zoom gesture that takes less than
    wcmTapTime milliseconds to complete and has the second touch going up
    before the first, the wcmFingerTapToClick function may trigger a right-
    click event as you complete the scroll/zoom. The reason for this is
    that we call wcmFingerTapToClick for any non-scroll/zoom gesture state.
    This isn't technically correct: we should really only be calling the
    function when in the LAG state (i.e., while waiting for a two-finger
    gesture to occur).
    
    The logic which moves single-finger non-DRAG states into LAG or NONE
    modes can conflict with simply checking for the LAG state before calling
    wcmFingerTapToClick because very short drags can also be less than
    WACOM_GESTURE_LAG_TIME, which will move the ZOOM and SCROLL states to
    (single-finger) LAG mode and trigger the right-click gesture anyway.
    To ensure this doesn't happen, we add a check for single-finger SCROLL
    and ZOOM states just before this block and have it move the mode to
    CANCEL which will only be reset once both fingers have gone up.
    
    Fixes: 68daad26c11d ("improve initial 2 finger behavior")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 8188891c120af14f3cea28ad72ed0cf61eaa2988
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 15 14:28:23 2018 -0700

    Do not wait wcmTapTime to enter scroll or zoom mode
    
    Commit 3005fc0 reduced the amount of time that we wait before entering
    scroll and zoom mode, mentioning that the only reason we want to wait
    at all is to process time-based two-finger gestures. The commit hints
    at a "2 finger tap" being the only gesture which this would apply to,
    but there are no signs of that gesture in the driver anymore. There is
    the right-click gesture which requires that the second finger be tapped
    for less than wcmTapTime, but removing the wcmTapTime limit on entering
    scroll and zoom modes does not affect that gesture (unless your right-
    click gesture was so sloppy that your fingers moved enough to be
    considered a scroll or zoom gesture).
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/43
    Ref: 3005fc0 ("reduce 2-finger scroll holdoff time")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 0ac49a26d25279b7777239066aff8e1f5f23bd4b
Merge: 299e830b bde3339e
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Sep 3 13:29:39 2019 -0700

    Merge pull request #73 from jigpu/fix-54
    
    Allow stylus devices to have "CursorProximity" effect in relative mode
    
    Reviewed-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit bde3339eb056d8ac237b9caacdef20dcf38d0d9f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jul 24 10:17:17 2019 -0700

    Use a proxout height of 30 for all stylus devices
    
    Styli and pucks likely have different proxout height requirements due
    to differences in how the tools are held/used. For now, lets try setting
    a height of 30. This should be close to the height previously present for
    consumer devices (before the kernel started honoring prox/range) and
    should hopefully be reasonable for professional devices too.
    
    Ref: https://github.com/linuxwacom/input-wacom/issues/54
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 4890de5f9a29e739591bed288528661f7c23f86d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Aug 1 10:49:41 2019 -0700

    Allow CursorProximity to take effect even if distance == 0 on tablet surface
    
    The CursorProximity feature allows the relative-mode puck to be lifted a
    smaller distance from the tablet surface than the full hardware prox
    distance. This makes using the puck in relative mode much easier. In order
    to simplify the code, 4893844f3f changed how the surface distance would
    be determined. Instead of tracking the minimum (or maximum) distance
    reported, the driver would use the value reported the moment a click
    occurred. This works relatively well, but does require the user to make
    at least one click before the CursorProximity feature takes effect.
    
    Because the "uninitialized" value of `common->wcmMaxCursorDist` is zero,
    this can prevent the CursorProsximity feature from taking effect if the
    tablet itself reports a distance of 0 at the tablet surface. To fix this
    we can just let the "uninitialized" value be -1 since such a distance
    is not valid.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/72
    Fixes: 4893844f3f ("Modify wcmMaxCursorDist calculation to support non-inverted protocol 4")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a13f2bfe177b9eb0f747d1eb9044840f48d762cd
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jun 19 09:25:30 2019 -0700

    Allow use of proxout feature for any relative tablet tool (stylus, eraser, cursor)
    
    The proxout feature makes it easier to use tools in relative mode by not
    requiring the user to completely remove the tool from hardware prox before
    repositioning. Traditionally only the cursor tool is used in relative
    mode, but there are also times that stylus/eraser might also be. This
    patch allows any relative tablet tool to make use of the feature.
    
    Ref: https://github.com/linuxwacom/input-wacom/issues/54
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 2cf46016810056d3fd08c6b7dec3b33089f64672
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jun 19 09:05:46 2019 -0700

    Change wcmCursorProxoutDist from a common to a private property
    
    Refactors wcmCursorProxoutDist and related variables so that the information
    is tracked on a per-tool basis rather than being considered a common property
    of the tablet. This is in preparation for a follow-up patch which will expose
    the proxout feature to tools other than the cursor/puck.
    
    Ref: https://github.com/linuxwacom/input-wacom/issues/54
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 299e830bb7fcc4d73bbad12244de90d0c4bdd9d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 19 14:47:54 2019 +1000

    travis CI: rework and simplify
    
    Does the same work, but it's a bit easier to understand now. The 'compiler'
    directive creates two jobs, gcc and clang. Those jobs use the global
    instrucitons.
    
    In addition we have the 'jobs' directive which adds the coverity job, broken
    up over multiple lines now to make live easier on our eyes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 0ce40261fb6acda37f68a4fadb39c46565e94a8e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 17 13:44:37 2019 +1000

    Remove misplaced comment
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit daafdda6e90d9c36ad8f56be1f03d0b402595f30
Merge: 4e065272 6a951297
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Mon Jul 29 11:51:45 2019 -0700

    Merge pull request #67 from skomra/master
    
    Remove and replace references to Sourceforge

commit 4e065272eaed6ab27fe17627712fdb7ecd697fa5
Merge: 2248962c 030d272d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jul 16 10:29:05 2019 -0700

    Merge pull request #66 from ShapeShifter499/master
    
    Add support for Surface Go and Nuvision Solo 10 Draw

commit 6a95129703b469b51d600f464208abe852e745e2
Author: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
Date:   Tue Jul 16 10:21:31 2019 -0700

    Remove and replace references to Sourceforge
    
    The project has moved to Github.
    
    Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit 030d272d5d605f9605ed44cdde4856737415a972
Author: ShapeShifter499 <Gero3977@gmail.com>
Date:   Mon Jul 15 01:36:27 2019 -0700

    Add support for Surface Go and Nuvision Solo 10 Draw
    
    For Surface Go and Nuvision Solo 10 Draw
    
    Signed-off-by: Lance Geroso  <gero3977@gmail.com>

commit 2248962cf15334c6f61a82ab4efedfcd2e85a741
Merge: b164be0e 5089f0c8
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Jun 20 16:06:35 2019 -0700

    Merge pull request #63 from jigpu/fix-59
    
    Fix panscroll when using non-default tablet area

commit 5089f0c886bd42511edc99080af38c9dcb205171
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jun 18 08:35:34 2019 -0700

    Fix panscroll when using non-default tablet area
    
    Attempting to perform a panscroll operation on a tablet that has a non-
    default area set can cause scrolling to occur even when the pen isn't
    moved. The direction of scrolling may change depending on the position
    of the active area (e.g. scrolling down when the area is on the top;
    scrolling up when the area is on the bottom).
    
    The cause is a result of the current and previous DeviceState structures
    (`ds` and `priv->oldState`) containing different information about the
    pen location. While the current state contains the untransformed device
    coordinates, when `wcmUpdateOldState()` is called, the XY information is
    replaced with the transformed version.
    
    To fix this issue, we modify the wcmPanscroll function to take X and Y
    as explicit parameters that are obtained from the valuators. These are
    transformed values and so will be compatible with changes to the area.
    Because the valuator data may have been transformed to a delta within
    wcmSendNonPadEvents we also need to add a check if the device is in
    relative mode and then act appropriately.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/59
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit b164be0e372ac5602b2c5b02e90b2cfb0268160c
Author: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
Date:   Mon Jun 17 14:18:09 2019 -0700

    wacom 0.37.0
    
    Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit a3e880ec34e7e9ef01098a899a4b1eb113b82b51
Merge: 5fc2d91e 36573965
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Jun 12 13:11:10 2019 -0700

    Merge pull request #62 from jigpu/issue-52
    
    Fix issues with Microsoft Surface Go tablet

commit 5fc2d91ead58c8a5ae38f5cfe92de1d214aba5d7
Merge: d0a68b87 dbb07c56
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed May 29 12:06:04 2019 -0700

    Merge pull request #58 from skomra/master
    
    Add feature flags for several missing tablets

commit 365739656df5361533a57494db327ecbc7cb4b8a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 24 14:51:32 2019 -0700

    USB: Apply WCM_PROTOCOL_GENERIC to non-Wacom hardware
    
    It seems that some non-Wacom tablets have an ABS_MISC axis that makes
    our driver try to apply special Wacom-only axis behaviors. This commit
    makes the driver use WCM_PROTOCOL_GENERIC for any device that does not
    have Wacom's VID.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/52
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3b30bb3dcd64d9467e5b5e2cbe014c11bd347317
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 24 14:38:12 2019 -0700

    USB: Don't use ABS_MISC for tool ID information with a generic tablet
    
    Generic devices don't store tool ID information in ABS_MISC, so we should
    be careful to not accidentally interpret other miscellaneous data as such.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/52

commit 33cdf63a0089bdd1e66e350cc621b80415a7c8ba
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 24 14:13:08 2019 -0700

    USB: Split handling of generic and protocol 5 ABS events
    
    Many Wacom devices use a non-standard meaning for several axes and
    we should be careful not to apply those meaning when receiving events
    from a generic device. Incorrectly using the non-standard meanings
    can cause the driver or userspace to become confused.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/52
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit dbb07c56366a7d95c0392d8207baeff8de20063d
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed May 1 09:04:12 2019 -0700

    Add feature flags for several missing tablets
    
    Feature flags are used by the driver to determine if a particular device
    needs special treatment. The devices usually work "okay" without these
    flags set, but missing flags can result in some features not working
    or not working as expected. For instance, the touch ring on the Bluetooth
    interface of the 2nd-gen Intuos Pro does not work at the moment because
    the WCM_RING feature is missing. It also gains the WCM_ROTATION flag.
    All other devices added gain the WCM_LCD flag, as well as the WCM_ROTATION
    flag if the device supports pen rotation.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

commit d0a68b873e015eb967718e60dbc3967f38a5e169
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 12 13:36:00 2019 +1000

    release.sh: pass the module name to the github release function
    
    We don't want to post libwacom releases to xf86-input-wacom
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b3604240a920e780a130ea84da67fc7483213937
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 12 13:31:57 2019 +1000

    release.sh: don't release to github in dry-run mode
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0f4e77ff632d4c5dc37e90395d6a6c44c843e06c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 5 10:44:01 2018 +1000

    release.sh: drop sourceforge release bits
    
    We're well and truly on github now
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2062126997bfe2c014533873d73a95198b335305
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 10 11:03:22 2018 +1000

    xsetwacom: error if we're running this under Wayland
    
    xsetwacom cannot work under Wayland, even with XWayland because there is no
    xf86-input-wacom driver. So let's not continue normally and not find any
    devices because that'll be confusing to the user when the tablet is clearly
    working.
    
    Print an error and exit code of 1.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 84400df38f0f9abe664de26a8d3747b10f3a05e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 24 10:35:17 2018 +1000

    Remember the event types we receive and skip events with no data
    
    On RHEL7.x kernels we get event frames with merely MSC_SERIAL -1 for some
    devices on proximity in. This is caused by the accelerometer data that is
    otherwise suppressed by those kernels.
    
    E: 123.456 0000 0000 0000       # ------------ SYN_REPORT (0) ----------
    E: 123.456 0004 0000 -001       # EV_MSC / MSC_SERIAL           -1
    
    For a MSC_SERIAL -1 we default to the PAD_ID (0x10), despite the events
    happening on the Pen device node. This triggers an error message during EV_SYN
    processing:
    
       (EE) usbDispatchEvents: Device Type mismatch - 16 -> 0. This is a BUG.
    
    Once we receive the BTN_TOOL_PEN when the actual pen comes into proximity, the
    error message goes away because our tool type matches with what we expect.
    
    Fix this issue by remembering which event types we received in the current
    frame. If all we got was EV_MSC, skip the event dispatch - we don't have any
    data to process anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 8a6f201fde45b6aef9785bdfbfd0d908ff1c4071
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 24 10:15:58 2018 +1000

    Split EV_MSC handling out of the EV_SYN handling
    
    The only thing these two had in common was the reset of the event count on
    failure. Might as well split them up to make the code more readable.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit cafb587a4eb89d906317dbe347198b523e494c76
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 24 10:21:40 2018 +1000

    Reformat a debugging message
    
    No functional changes but makes grepping for it a lot easier
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 6e2728780056614e4b2f37abde4f60f072edc95a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 24 10:10:46 2018 +1000

    Correct two comments
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 71b35110478b8fce410c017e24072b6ab588d551
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Sep 28 15:52:29 2018 -0700

    Support DTU-1141B on older kernels
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c091c9e295db9c271de60c87a1a9ce921d638159
Author: James Pearson <james-p@moving-picture.com>
Date:   Thu Aug 9 09:11:16 2018 +1000

    Running 'xsetwacom get $id Serial' gives:
    
      Unknown parameter name 'Serial'.
    
    'Serial' should be in the deprecated parameter list - also 'GetTabletID'
    is defined twice in the same list
    
    Signed-off-by: James Pearson <james-p@moving-picture.com>
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 192d67275c6621ec7debef3c6453dd2030b7cac8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jun 21 14:08:40 2018 -0700

    travis: Hotfix Coverity's Travis integration patch
    
    Coverity has been triggering build errors for quite a while now, simply
    because their server returns a different success code after uploading
    than their script demands. We've notified them about this bug, but
    nothing seems to be happening. Lets just patch the broken code and move
    on with life.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Acked-by: Ping Cheng <ping.cheng@wacom.com>

commit 567b4d71484ec67fb6432cebd4c4048da5979a2c
Author: Ping Cheng <pingc@wacom.com>
Date:   Wed May 2 14:10:15 2018 -0700

    xsetwacom: update man page for button mapping
    
    Mapping a button to 0 is to disable it in X.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 11451194e36fc3ae78d5d908310c4f7d09fc783c
Author: Aaron Armstrong Skomra <skomra@gmail.com>
Date:   Mon Mar 19 14:28:19 2018 -0700

    release.sh: bugfixes
    
    1. Use correct filename variable (tarbz2 not tarball).
    2. Insert spaces into heredoc to make links work for Gmail users.
    3. The script greps the module url to see if it contains an
       approved repository. The first update to the release script
       contained a list of many approved repositories. Subsequent updates
       during the review process had these extra repositories removed.
       (git update-index --assume-unchanged release.sh can be used to
       temporarily use a different repository.) That second change
       removed
               -e "linuxwacom/.*" (Github)
       instead of
               -e "/linuxwacom/.*" (Sourceforge).
       Remove the slash which is not found in the Github path.
    4. Remove the language about xorg, mesa, etc. from error message.
    5. Correct release.sh script documentation. The release.sh script no
       longer has a `--user` option. The username is now provided as a
       required argument of the `--github` and `--sourceforge` options.
       Note that when using `--github`, a personal access token may need
       to be appended to the username with a colon if two-factor auth is
       used.
    
    Fixes: 4c17c6a0dd ("Update release.sh script from Xorg") in the tags.
    Fixes: 32c065ae02 ("add Github to release.sh script")
    Signed-off-by: Aaron Armstrong Skomra <skomra@gmail.com>
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 9d83956c2aa72b9d8744fa57e28ba5fe7f1af0f4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 19 13:40:21 2018 -0700

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

commit 25d765a543ea21d6fa686f16f55d475ad0f2d13b
Author: Aaron Armstrong Skomra <skomra@gmail.com>
Date:   Tue Mar 13 10:27:24 2018 -0700

    Update README to reflect the move to Github.
    
    Signed-off-by: Aaron Armstrong Skomra <skomra@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a197cc5e04c778022a78c010a22c9602591b7c2b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 12 09:53:07 2018 -0700

    Fail the Coverity build if their script cannot be downloaded
    
    If curl encounters an error trying to download the Coverity build script
    (as seems to be happening at the moment due to SSL issues), we will not
    be notified since the pipe swallows the error code. This is not ideal, so
    this commit updates the Travis build steps to use a slightly more contrived
    construction which will get and then execute the script as independent steps.
    Also, to ensure curl returns an error code even in less-severe cases (e.g. a
    basic 404 "Not Found") we add the '-f' option.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 414ee8130dd8b04512f38b7d9d29ecce3e30a86e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Feb 13 09:06:38 2018 -0800

    Check both valid and working state when finding new channels
    
    The usbChooseChannel function is responsible for finding the channel
    that should be used to contain a sequence of events for a particular
    tool/contact. If a tool/contact is already using a particular channel
    (i.e., the last event in the channel has the correct device type, serial
    number, and is in proximity) then usbChooseChannel will return that
    channel. Otherwise, usbChooseChannel will try to find a free channel
    (i.e., one which is out of proximity) to be used to store the tool's
    sequence of events.
    
    The existing logic has a subtle bug that may result in a malfunction
    when a specific condition occurs. In particular, if a multitouch report
    from the kernel contains an existing contact going up followed by a
    brand new contact, then usbChooseChannel will see the channel associated
    with the former contact as free and begin using it to store data for the
    new contact. As a result, the "up" event is never sent and can lead to
    further strange touch behavior (including the effective disabling of
    touch input).
    
    To fix this, we modify usbChooseChannel to consider the "valid" state as
    well as the working state when finding a new channel. A channel should
    not be considered free if its valid state is still in prox, since this
    indicates that the channel has *just* left prox. Note that we cannot
    rely on only checking the valid state since this fails in the opposite
    way: usbChooseChannel would not notice when a channel has *just* entered
    prox and would overwrite its contents.
    
    It isn't obvious wether it is also necessary to check the valid state
    for the other two cases in this function (finding an existing channel
    and forcefully clearing channels when out of space). The existing code
    seems to work, however, so we will leave it as-is.
    
    Ref: https://sourceforge.net/p/linuxwacom/bugs/335/?limit=25&page=1#73fe
    Ref: https://sourceforge.net/p/linuxwacom/bugs/339/#f940
    Ref: https://sourceforge.net/p/linuxwacom/bugs/349/
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0c27df7057c94dea4edece3c3e1462ac2a19b7a5
Author: Daniel Ferguson <danielferguson@me.com>
Date:   Mon Mar 5 18:57:35 2018 +0000

    Fix tilt-y being overridden with tilt-x
    
    Refactoring in (527fa95c29) introduced a typo in wcmFilterCoord which
    resulted in the value of tilt x being assigned to tilt y.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/11
    Fixes: 527fa95c29 ("Refactor coordinate averaging to seperate function")
    Signed-off-by: Daniel Ferguson <danielferguson@me.com>
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 35047a3156be05b9ebc44ad4c43e0c9b62a85a03
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Jan 31 17:51:17 2018 -0800

    Support DTK-2451 and DTH-2452 on older kernels
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ffb3925cc1deb5d840ad4b2ba1ab853955d959c8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jan 22 11:58:06 2018 -0800

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

commit 32c065ae020da43dbe25ef650a9d8c496f5cbc55
Author: Aaron Armstrong Skomra <skomra@gmail.com>
Date:   Thu Jan 18 09:53:35 2018 -0800

    add Github to release.sh script
    
    Require at least 1 of Github/Sourceforge.
    
    Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/10
    
    Signed-off-by: Aaron Armstrong Skomra <skomra@gmail.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 9f05aa04124e133a74ce69c1cb7cdce267bd8b1e
Author: Aaron Armstrong Skomra <skomra@gmail.com>
Date:   Thu Jan 18 09:53:34 2018 -0800

    remove release script code from other projects
    
    Signed-off-by: Aaron Armstrong Skomra <skomra@gmail.com>
    Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 4cc67d161123774f79d5830cd87d7adddc31bf4c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jan 9 10:42:59 2018 -0800

    wacom 0.35.99.1

commit 685850060f1cef064a90e02191d4732f275c7179
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Dec 26 14:21:17 2017 -0800

    Allocate 4 buttons for stylus devices (Pro Pen 3D)
    
    The Pro Pen 3D includes a third stylus button, reported from the kernel
    as BTN_STYLUS3. Support for this event was added earlier, but the number
    of buttons allocated was not updated. This meant that although the X
    driver would properly set the button flag bit to indicate that a button
    should be sent, a userspace event wouldn't actually be sent. This commit
    increases the number of buttons allocated, causing the third button to
    emit X11 button number 8 when pressed. This button can also be configured
    through xsetwacom now that the driver allocates the correct number.
    
    Fixes: 4a96a58f26 ("Add support for kernel's new BTN_STYLUS3 event")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 4108d97fd7d0690d1d343bc0229b68b5fb48a6fc
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Dec 12 14:23:19 2017 -0800

    Add support for Cintiq 27QHDT
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6cb08771c882a22773a7b0caffff9d253ca65e70
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Oct 27 15:46:19 2017 -0700

    Add support for Cintiq Pro 24/32
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7b8e1150d599f0b4069f5c379bb162bf49b1d134
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Dec 13 08:06:09 2017 -0800

    conf: Add preprobe fdi config to workaround EV_SW issues in HAL
    
    The HAL daemon used by RHEL6/CentOS6 does not play nicely with input
    devices that advertise unsupported EV_SW events. Devices with such
    an event will fail in the middle of the probe process, preventing
    the X server from being able to hotplug the device. The SW_MUTE_DEVICE
    event used by the Cintiq Pro touchscreen is such an event.
    
    To work around this limitation, we can define an fdi configuration file
    which resets the "button.has_state" property prior to probe. Because
    HAL only runs the failing code when this property is true, the device
    is able to finish the probe process just as though it never had the
    unsupported switch in the first place. Resetting this property does
    prevent HAL from being able to monitor the switch state, but that is
    not considered a problem.
    
    Since HAL is long-since deprecated, it doesn't make sense to install
    this configuration file on systems which don't require it. This
    commit also adds logic to configure.ac so that only systems which still
    use HAL will install this file.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 6b68d40f6047e23651616403d5ff7ee563f42418
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Dec 21 10:03:19 2017 -0800

    Be more strict about linking to already-linked devices
    
    The wcmLinkTouchAndPen function is responsible for associating the pen and
    touch interfaces of a tablet. This association can be tripped up if multiple
    devices with the same name are connected, so it includes code to prevent
    linking to a device which already has been linked up. However, the condition
    also checks that the device being considered is a tablet (i.e., stylus/eraser/
    cursor; not pad/touch). This latter check seems nonsensical: it allows devices
    to link to the first touch device they find, even if that device is already
    linked up.
    
    Disallowing multiple links to the same device prevents all three pen/touch/pad
    devices from having wcmTouchDevice set up, however. Leaving the stricter
    condition as-is could cause devices to be linked up incorrectly (e.g. if the
    X server has {touch1, pen1, pad1, touch2, pen2, pad2}, then touch1 and pen1
    would get linked, but pad1 and touch2 would get linked, and pen2/pad2 left
    unlinked!). To prevent this, we disallow linking of pad interfaces, which
    should not be a problem since the pad shouldn't need to use the wcmTouchDevice
    variable.
    
    Fixes: 8bb519ef2b ("Update wcmTouchDevice for touch interface")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 21f498ef8b4ac826c6873ce9d54edcee313a0844
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Oct 24 08:44:34 2017 -0700

    Implement "pan" scrolling functionality
    
    When enabled through `xsetwacom set <id> button <n> pan`, this causes the driver
    to appear to "drag" scrollable window contents by emitting appropriate scroll
    events as the pen is dragged around.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 36ec4c098a89170f5f76d8e0ad250f9d6405a69f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Dec 19 10:09:51 2017 -0800

    Pass current WacomDeviceState through to sendAction
    
    This commit refactors the signature of the sendAction function to take a
    WacomDeviceState pointer. This change makes it easier to implement the
    following pan/scroll patch.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 28c1d6d9ed0624b7a3fb007f764e05e0e2906e24
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Nov 28 15:07:26 2017 -0800

    tools: Prevent use of invalid (negative) fd
    
    If something goes wrong when a tool attempts to open a device, we print
    an error but then continue on as though nothing happended and provide
    the fd to both the ioctl() and close() functions. This commit ensures
    we don't actually try to use the fd.
    
    Coverity-id: 208168
    Fixes: 3546d8ab1b ("tools: add isdv4-serial-debugger test program.")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4a24a94d3ae2396b297a6dab4b350bd5da26d44e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Dec 7 17:01:51 2017 -0800

    Add Coverity integration to .travis.yml
    
    Adds the ability to run a Coverity scan from Travis. Since there are a
    limited number of times per week that Coverity can be used, we only
    run it when Travis has the DO_COVERITY environment variable set to "YES".
    This can either be set manually through the Travis' interface, but will
    also be set for cron-triggered jobs.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 2c191f041d658d83aa86b72cc49540a3387bb61a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 8 13:55:33 2017 -0800

    Reset filter when tip is touched to tablet
    
    Coordinate averaging is useful for producing smooth strokes, but this
    averaging can cause button events to be sent at the wrong location.
    In particular, when making a series of quick strokes with an AES pen,
    the actual location the pen contacts the display can be some distance
    away from the first (low-quality) position report. This can result in
    "hook" artifacts if it is still influencing the averaged pointer
    position when the pen goes down. This can also be seen if the RawSample
    parameter is increased significantly.
    
    To prevent these artifacts from appearing, we reset the averaging filter
    whenever the tip is pressed. This ensures that the event event is sent
    at the pen's actual location, plus or minus some (probably smaller) noise.
    In theory these artifacts could still appear if drawing were triggered
    by a button other than the tip, but that would be a quite non-standard
    setup.
    
    https://sourceforge.net/p/linuxwacom/bugs/338/
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit ce72a0048b56089f3946f9bc90163fcad7222f86
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 15 13:12:28 2017 -0800

    Move 'suppress' variable from wcmEvent to commonDispatchDevice
    
    Resolves the following compile-time warning:
    
    ../src/wcmCommon.c: In function ‘wcmEvent’:
    ../src/wcmCommon.c:1007:23: error: ‘suppress’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
       commonDispatchDevice(pInfo, pChannel, suppress);
                           ^
    
    Fixes: 2fa4ef48c9 ("Do not overwrite raw device state with filtered coordinate values")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 2fa4ef48c98860859d48810d870567fe99b5d76f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 8 13:55:32 2017 -0800

    Do not overwrite raw device state with filtered coordinate values
    
    By performing coordinate filtering in wcmEvent and overwriting the raw
    device state stored in pChannel, we loose the ability to see the actual
    (but noisy) hardware coordinates at later points in the code. By moving
    this filtering into commonDispatchDevice we can apply the result to only
    the 'filtered' DeviceState sample that is ultimately passed along to
    wcmSendEvents.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 527fa95c29f6aee2c2d655e834ff3f45a9160c06
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 8 13:55:31 2017 -0800

    Refactor coordinate averaging to seperate function
    
    Moves the averaging code used by the driver's filter functions into a
    seperate function to make the operation of wcm_filter_coord more clear.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 7d6bded43bab93f8cc882c4e8b0fdc834e44208e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Dec 7 14:20:59 2017 -0800

    Use git-version-gen for build-time version strings
    
    Currently the driver uses macros like PACKAGE_VERSION whenever it needs
    to print out a version string. These macros are only updated whenever
    the autoconf.sh script is run, however. As a practical result, this means
    that the version information which is built into development versions of
    the driver is often inaccurate. To fix this, we define a new BUILD_VERSION
    macro which is updated whenever git reports a changed version number.
    
    In addition to having `xsetwacom -V` report the precise build, we also
    have the X log print out the build number to augment the MAJOR/MINOR/PATCH
    data that is normally printed.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 061519df07f23f96b5211ba71a851bb626881fb4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Nov 16 15:09:48 2017 -0800

    Build tools with AM_CFLAGS and its warnings
    
    The Makefile.am contained under the tools subdirectory makes use of an
    Automake feature that allows the definition of per-executable CFLAGS.
    These CFLAGS definitions do not automatically include the general-use
    AM_CFLAGS. This has resulted in these executables not being built with
    the intentended warnings/errors enabled. Note that we also explicitly
    add "-Wno-error" to the definition of the "xsetwacom-test" binary since
    we don't want warnings there to break anything.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 346c6392f48bf34484f45df5aa2425e90f9ecf30
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 13 16:23:43 2017 -0800

    Remove no-longer-necessary "Wno-error" exceptions from Travis
    
    The missing-field-initializers cast-qual warnings had to be excepted out
    from the Travis build since code in xsetwacom would trigger them. These
    issues have been resolved by the last two commits, allowing us to remove
    the exceptions.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit b380cf93a448fa1636c413fff600a4869e6e7564
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 13 16:14:14 2017 -0800

    xsetwacom: Don't drop "const" when performing a cast
    
    GCC warns that we're droping the "const" attribute in one of our casts.
    Looking at the affected function, it is obvious that the cast is entirely
    unnecessary and can be dropped entirely.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 43a02abb08c23d25a10d695cea8c15abd74bc56b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 13 16:08:52 2017 -0800

    xsetwacom: Use explicit NULL for final element of 'parameters' array
    
    C does not strictly allow an empty initializer list `{}`, which can
    result in missing-field-initializers warnings from the compiler. All
    consumers of this array cycle through until they see a NULL name, so
    this commit replaces the empty initializer with { .name = NULL }.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit c0cce4c14cbda8b5ff89548a40418ff3a42f7274
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 13 15:47:34 2017 -0800

    Add Travis-CI integration
    
    Adds a .travis.yml file which allows the Travis-CI service to build and
    test the project. This should ensure we're immediately warned of potential
    issues even if someone forgets to run the test suite before pushing. The
    build is performed with "-Wall -Wextra -Werror" (with only a handful of
    currently-necessary exceptions) on both GCC and Clang.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4a96a58f2693b291b91e21b7e34f5c5e04015f3f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Oct 3 13:45:37 2017 -0700

    Add support for kernel's new BTN_STYLUS3 event
    
    BTN_STYLUS3 was (will be) added to the Linux 4.15 kernel to support the
    third button present on Wacom's "Pro Pen 3D" stylus. This commit adds
    support for this new event, mapping it to mouse button 8 ("navigate
    back"). Remapping this button to a different function is possible by
    using commands like `xsetwacom set <id> button 8 <action>`.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 48c2cd83ccf797fe618a48a743afee35883aecf9
Author: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Date:   Fri Nov 3 15:19:24 2017 +0100

    conf: add Dell Canvas 27 touch
    
    The Dell canvas 27 is an external monitor with pen and touch, but the
    pen is provided by Wacom, and the touch by Advanced Silicon.
    To have proper touch arbitration, we need to force xf86-input-wacom
    to also handle the touch part.
    
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
    Reviewed-By: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2456f821ba368fae5c084b44e86b8754187670c0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 13 10:46:10 2017 -0700

    xsetwacom: Recognize 'AltGr' key as synonym for 'ISO_Level3_Shift'
    
    The table of keysyms does not include an obvious synonym for the "AltGr"
    key that is found on some international keyboard layouts. It seems that
    "ISO_Level3_Shift" is the magic name that should typically be used.
    
    https://sourceforge.net/p/linuxwacom/bugs/344/
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b30e2d27fdb30ff4b425fc62432cab636fe163b9
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 10 15:35:43 2017 -0700

    Correct device flags for multiple devices
    
    The device flags set in wcmDeviceTypeKeys must be set properly in order
    for the driver to correctly identify and use specific tablet features.
    Several devices are missing flags that e.g. indicate they support
    pen rotation or have touch rings.
    
    Fixes: 0318b1c ("Support recent display devices on older kernels")
    Fixes: 3578b91 ("Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242.")
    Fixes: df7f165 ("Add tablet_type to WacomModel")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 1a2a23c2df0ec0fd0bf46432db58f32914a6a09f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 10 15:34:29 2017 -0700

    Add support for 2nd-generation Intuos Pro
    
    This tablet is usable without this patch, but the device type is missing
    the WCM_RING flag. This prevents the ring valuator from being initialized
    correctly, and in turn causes recent versions of gnome-control-center to
    not allow configuration of the ring.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=785358
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit 912611608b3ba892a7c26d1be81209f4e5b009d5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 18 08:41:37 2017 +1000

    Remove the device's fd from the select() set when we get ENODEV
    
    If the device is unplugged, the fd triggers in select/poll/... but comes back
    with ENODEV. This triggers a lot of error messages in the log until finally
    the udev code catches up with us and the device is removed properly.
    
    Catch that case by removing the fd from the select() set so we don't get
    triggered to call read_input on it anymore.
    
    https://sourceforge.net/p/linuxwacom/bugs/337/
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: crocket <crockabiscuit@gmail.com>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>

commit b0a055425dfb983163b1d3c673a36aebf9536430
Author: Aaron Armstrong Skomra <skomra@gmail.com>
Date:   Thu Jul 13 12:08:03 2017 -0700

    Support DTH-1152 on older kernels
    
    Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4bf1f36791ba5a2ad7e59fe7257f0893b40f4e7d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 26 15:08:47 2017 -0700

    wacom 0.35.0

commit 60edf6341fed25ec0df6d07be6ade31ca960d607
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 16 14:12:15 2017 -0700

    wacom 0.34.99.1
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 7bfbf8ed5a82e78a8235275c15e8934b02879f37
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 16 14:50:19 2017 -0700

    test: Update test_normalize_pressure to work with maxCurve
    
    Commit d958ab79d2 changes the driver's pressure normalization functions
    to use a variable "maxCurve" which defines the upper limit of pressure
    values to be emitted by the driver, rather than using FILTER_PRESSURE_RES
    directly. The tests were never updated to take this into account and
    fail due to maxCurve never being set.
    
    This patch has the normalize_pressure test set the value of maxCurve.
    While we're at it, we have the test verify that multiple values of
    maxCurve work as expected.
    
    Fixes: d958ab79d2 (Introduce "Pressure2K" config option for incompatible software)
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d958ab79d21b57141415650daac88f9369a1c861
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 31 10:57:12 2017 +1000

    Introduce "Pressure2K" config option for incompatible software
    
    It appears that some software may not be entirely compatible with the
    expanded 65K pressure level range that was introduced in version 0.34.0.
    Although our driver advertises the larger range in XI2 (and toolkits
    like GTK+2/3 and Qt3/4/5 make use of it), there have been reports of
    other software (e.g. The Foundry's "NUKE") misbehaving.
    
    As a workaround, this patch introduces a new boolean config option named
    "Pressure2K". If enabled, it causes the driver to revert to its prior
    behavior of using a pressure range of 0-2047. This option is disabled by
    default, but can be turned on by adding the following configuration
    snippet to a new file in the /etc/X11/xorg.conf.d directory:
    
    Section "InputClass"
        Identifier "Wacom pressure compatibility"
        MatchDriver "wacom"
        Option "Pressure2K" "true"
    EndSection
    
    Ref: https://sourceforge.net/p/linuxwacom/mailman/message/35857403/
    Ref: 3e56ce4429 (Increase full-scale pressure range from 0..2047 to 0..65535)
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0318b1cda79261d73f04676dd662f98c84711747
Author: Aaron Armstrong Skomra <skomra@gmail.com>
Date:   Tue May 2 09:48:56 2017 -0700

    Support recent display devices on older kernels
    
    Older kernels like 2.6.30 will end up with touches
    interpreted as relative events unless these devices
    are explicitly added.
    
    Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 252f276ea9f1a2543a7504857b702b4e50e90508
Author: Sebastian Reuße <seb@wirrsal.net>
Date:   Wed May 10 20:16:07 2017 +0200

    xsetwacom: use XkbGetMap instead of XkbGetKeyboard
    
    XkbGetMap is more robust in cases where certain keyboard description components
    are missing. XkbGetKeyboard will fail when any component cannot be resolved;
    since XkbAllComponentsMask is requested, any missing component will result in
    the call returning NULL. Since we don’t necessarily need all components (e.g.,
    keyboard geometry, keymap names), we use XkbGetMap instead.
    
    Signed-off-by: Sebastian Reuße <seb@wirrsal.net>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7f6658af6f1a4e22adddd6fd931edb8870dbafc0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 13 08:50:53 2017 +1000

    Fix build with #ifdef DEBUG disabled
    
    Introduced in de650d6224
    
    Reported-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 267e74cd1325f250185ced951914220bc4287ecf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 9 08:30:39 2017 +1000

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

commit 64991c8b8f8e6fadb8843960d89570d81d470b63
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 9 08:28:36 2017 +1000

    test: add TimerCancel to fake symbols
    
    Fixes distcheck
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit da26ba09c91241c432765de3e18ae4f216749029
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 9 07:11:18 2017 +1000

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

commit de650d6224b353ee5596f5ce65de8059db5cd289
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 24 14:11:35 2017 +1000

    Cancel timers on DEVICE_OFF
    
    Otherwise we run the risk of having a timer trigger after we removed the
    device. Since we pass InputInfoPtrs and WacomDevicePtrs to the timers as
    arguments, these may have been freed by the time a timer triggers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <jason.gerecke@wacom.com>

commit f65d97362813ea89d18e5049ad87bc468ec30f85
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 23 09:47:27 2017 +1000

    Revert to Update properties with a timer func
    
    This was required when we only had the SIGIO handler because sending events
    allocates memory and things break. Now with the input thread we *can* send
    events from within the thread but it can mess up other delivery.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=99887
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 23f9586779f94cacb899120ef426d8fcd1647dcb
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Feb 10 21:53:01 2017 -0800

    Make sibling device name matching slightly more lenient
    
    The wcmIsSiblingDevice function uses several tricks to try and determine
    if two devices should be considered siblings. If its 'logical_only'
    parameter is false, this includes comparing device names. Device name
    comparison is complicated by the fact that suffixes are added on by
    the X and kernel drivers. To deal with this, the wcmSplitName function
    tries to split a device name into three pieces: its "basename" that
    describes the model, its "subdevice" name that describes the interface,
    and its "tool" name which describes the X11 tool.
    
    Spliting the name is a somewhat kludgy process which does not properly
    handle the device names for the MobileStudio Pro or Cintiq Pro. The
    kernel reads the name of these devices directly from the hardware's
    descriptors, and the names are slightly different between the pen and
    touch interfaces (the touch device has an extra "Touch" suffix).
    
    This patch tweaks how wcmSplitName breaks apart device names in order
    to handle the MobileStudio Pro and Cintiq Pro. Specifically, it now
    allows the "subdevice" to contain an arbitrary number of "Pen", "Finger",
    :Touch", or "Pad" suffixes. For the MobileStudio Pro and Cintiq Pro,
    this should allow the "basename" that is considered for sibling device
    matches to be identical between both the pen and touch interfaces.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f0dedf7a610ac97bc45738492b98ce4f1e0514ec
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jan 18 09:00:10 2017 -0800

    tests: Fix compilation under ABI 25 and greater
    
    The X server recently deprecated xf86BlockSIGIO and xf86UnblockSIGIO and
    simultaneously defined them inline within xf86.h. The new inline definition
    causes problems both because fake-symbols.c will end up redefining them,
    and because the function bodies reference a symbol that does not get included
    when building the tests. To fix these errors, update fake-symbols.c with
    updated include guards and a definition of the undefined symbols.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6ff54b3020268f7baf8f1e748a6e278126472c58
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 5 11:14:08 2016 -0800

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

commit 3ad7e9e6bfce19f630fc2902dfcceb53b912ae1f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Nov 18 15:21:58 2016 -0800

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

commit 051a406583a93cad2ec34a3fb03885237cd1a23e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Nov 1 09:02:21 2016 -0700

    Add missing newline to log message
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5bd8f70b9b3d6266e4c8e3c0ffd408d2c2e3c365
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Nov 11 08:43:31 2016 -0800

    Further reduce arbitration priority of cursor devices
    
    Cursor (puck) devices are typically left on the sensor and can emit
    spurious events that can potentially cause the driver to steal "active"
    status from another tool. In the past we'd only considered the case where
    the active tool was a touch but it is reasonable to extend this logic to
    other tool types. If a cursor emits a spurious event in the middle of a
    pen dragging, for example, the drag will momentarily stop as the pen is
    temporarily sent out of prox -- with potentially disasterous results.
    Additionally, when the pen "returns" in prox on the next event, any
    currently-applied pressure will be taken as the preload and result in
    incorrect pressure scaling until the pen is removed from contact.
    
    This commit removes the "IsTouch" conditions from the handling of
    spurious cursor events in check_arbitrated_control. The result is that a
    cursor will not be granted "active" status in preference to any other
    tool (and will drop "active" status if gained after 100ms and while
    no buttons are pressed).
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9433019e82b6e3ac5c2ca21ae4fabbb8a6756e38
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Nov 1 10:55:58 2016 -0700

    Allow cursor devices to maintain "active" status while buttons are down
    
    Cursor (puck) tools tend to be left on the sensor, preventing us from
    being able to rely solely on proximity information to determine if
    they are being actively used. In the past we've used the amount of time
    since the last event as an indicator of activity and allowed other
    devices to grab control of the pointer if more than 100 milliseconds had
    elapsed since the cursor's last event. Although this seems to work well,
    there is another indicator of activity which should not be ignored:
    button state. If a user is pressing a button on their cursor tool, it
    should be considered active even if the 100ms timeout has been exceeded.
    Not doing so could potentially allow another tool to grab "active"
    status and have our driver send a button-up message and stop an in-
    progress drag.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5f5479a4f195e11a7bb708019afb299cf7a29741
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Oct 31 18:14:24 2016 -0700

    Lazily allocate pressure curve table
    
    Now that the pressure curve contains 65K points it takes up quite a bit
    of memory, especially considering that the pressure curve may not need
    to exist for some devices (e.g. pads) and may just be the default linear
    curve even for those where it should exist. To reduce the amount of
    memory used, we now lazily allocate space for the pressure curve tables
    only when they are set to a non-default curve.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3e56ce4429d9053da3b873f8717b830e3bdc5ea4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jun 14 10:42:29 2016 -0700

    Increase full-scale pressure range from 0..2047 to 0..65535
    
    The driver has historically normalized the pressure range of all kernel
    devices to 0..2047 rather than using their native range to keep things
    like the application of the pressure curve simple. Pens that report more
    than 2048 pressure levels are also normalized down to this range though,
    reducing their precision. In order to accomodate the new 8K pen (and any
    future pens with even higher precision), this patch bumps up the full-
    scale range to be 0..65535. This number was chosen both because it far
    exceeds anything currently known about, and also because it matches the
    normalization range used over the wire by the Wayland tablet protocol.
    
    Note that the WACOM_PROP_PRESSURE_THRESHOLD value has been tied to the
    normalized (2048-level) pressure range for some time, meaning that we
    cannot simply change the range without causing a change in the perceived
    threshold for users. To ensure compatibility, the value is interpreted
    as a fraction of 2048 and then scaled to the actual normalization range.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 54c125b28479ff88903647c2dce1d49daa3402df
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Oct 7 09:20:34 2016 -0700

    Read TouchRing axis range from kernel instead of hardcoding
    
    The TouchRing on the MobileStudio Pro has a range of only 0-35 instead
    of 0-17 like prior devices. Because we hardcode an assumed range, the
    driver mistakenly believes the jump from 35 to 0 (or 0 to 35, depending
    on direction) when the user completes a revolution is actually caused
    by the user reversing their finger direction. By reading the range from
    the kernel, we can avoid this situation.
    
    Note that the ABS_WHEEL axis is also used by (legacy) combined pen/pad
    devices with a range corresponding to the puck fingerwheel. We need to
    be careful to not read the value in these cases since it would lead to
    erroneous behavior in existing setups. Devices with a range range
    different from 0-71 will hopefully not be widely used on kernels prior
    to 3.17 where pen and pad were split into seperate devices since there
    is no way (short of peeking at the VID:PID or name) to have them work
    correctly in the combined case.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit b61d1711e9a2d6c647341e8ea0119521fd200d62
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 11 13:47:35 2016 +1000

    Make DEVICE_CLOSE a noop
    
    The server guarantees that DEVICE_OFF is called for any previously enabled
    device, so we don't really have anything to do here. And since the input
    thread addition to the server we can't safely call xf86RemoveEnabledDevice()
    twice for the same device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pingc@wacom.com>

commit bae283c8c91f6e064e727887da79e91e5c7c5f19
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 9 15:39:46 2016 +1000

    Lock the input thread while creating a new device
    
    Don't process events while we're creating a new device so we don't start
    processing events halfway between the new device being set up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pingc@wacom.com>

commit ce912d8bba63faabe5d60a9f467c714511a835f7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 09:23:57 2016 +1000

    Handle the input ABI 23 - removal of xf86BlockSIGIO
    
    Input is now handled in a separate thread in the server when a device is added
    through xf86AddEnabledDevice(). Previously that was in a sigio handler and we
    have a bunch of workarounds to avoid calling things from within the signal
    handler. With the new API these aren't needed, so split those callbacks and
    call them directly where needed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pingc@wacom.com>

commit 97d86e150c23108b4dbc99dbb8338aec60eea39c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Aug 5 18:27:55 2016 -0700

    xsetwacom: refer KeySyms defined by keysymdef.h in man page
    
    xsetwacom accepts keys in X11 KeySyms format. To make the interface
    user friendly, we mapped a set of modifiers to aliases that can be
    recognized by most users. But, there are a few less recognizable or
    confusing keys/modifiers left. This patch tells users where to find
    the X11 KeySyms they are looking for.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d54db63e716317bb336ddf444ab8034353913db7
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Aug 4 10:49:52 2016 -0700

    xsetwacom: Add return to special key alias list
    
    return is a popular key assignment which was not added to the
    special key list. Although Return would work since it is the
    key name, we add return anyway to make users happy.
    
    Enter/enter for KP_Enter could have achieved the same purpose.
    But, it confuses users (and some developers ;).
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Tested-by: Kelly Price <strredwolf@gmail.com>

commit b16b68a9302ce19226d78eed0e1fcb530f372506
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 13 15:32:27 2016 -0700

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

commit f4763d1985330bb966908113bf3bd0b55d68372c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 4 09:26:58 2016 -0700

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

commit 0da5cd545e38079b62656a23835c4943af05dc92
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Apr 27 10:10:27 2016 -0700

    conf: rename to 70-wacom.conf
    
    This is part of a two-step solution, the other half is renaming the
    xf86-input-libinput config snippet to sort lower than ours.
    
    Currently libinput picks up devices that are (for now) destined to the wacom
    driver. Since the wacom driver is more of a leaf package than libinput, the
    best option here is to make the wacom driver sort higher and let users
    uninstall it when not needed. To avoid crowding the 90-* space where users
    usually have custom config snippets, libinput will drop down to 60 and
    wacom will bump up to 70.
    
    Fixes: https://sourceforge.net/p/linuxwacom/bugs/315/
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/4
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7a2c6437015d9fec14915ef19dbb2b6894faaba2
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Feb 24 10:43:24 2016 -0800

    conf: Prevent xf86-input-wacom from binding to pure-keyboard devices
    
    The Wacom Bluetooth Keyboard matches the "Wacom class" and so is bound to the
    xf86-input-wacom driver. This driver is not designed to work with keyboards,
    so we narrow the set of devices our InputClasses will match. Because we need
    to match tablets, touchpads, and touchscreens (pad devices are a special case
    of tablet) but there is no way to specify an "or" match we duplicate existing
    classes and assign one of the above types to each.
    
    Note that simply adding 'MatchIsKeyboard "false"' to our existing snippets
    would cause devices like the Cintiq 24HDT Pad and Cintiq 27QHDT Pad from
    binding to our driver since both are recognized as (partial) keyboards due
    to the presence of KEY_* kernel events.
    
    Fixes: https://sourceforge.net/p/linuxwacom/bugs/294/
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/1
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 044e17da543493d65bd01152dcddcadbbfe5b8ee
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Apr 1 11:07:54 2016 -0700

    isdv4: Use last-known event position in touch up events
    
    Old serial ISDv4 sensors that (still?!) use the driver-internal parsing
    routines can inadvertantly send (0,0) coordinates to X on touch up.
    Even if a sensor sends (0,0) as the touch up coordinate, the code in
    wcmTouchFilter.c should do the right thing by only sending motion
    eventions while the touch is down. This isn't the case when in-driver
    gestures are disabled though, since motion events (specifically XI_TouchEnd)
    will be sent for touch up events as well.
    
    To prevent potential (0,0) coordinates from being emitted on touch up
    while in-driver gestures are disabled, we use the last-known touch
    position as the current touch position. This mirrors what is done by
    the standard input kernel driver (which leaves X/Y at its last known
    position on touch up).
    
    Fixes: https://sourceforge.net/p/linuxwacom/bugs/312/
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 3b0c093f507cb5e99be277606de1671b77572dab
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jan 12 12:12:03 2016 -0800

    xsetwacom: Use stderr for 'core' and 'displaytogle' deprecation notices
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bccfc6faa243909538bf18af04e1308c3b9c208f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jan 19 08:55:36 2016 -0800

    xsetwacom: Only print action name for "modetoggle" and "displaytoggle"
    
    Running "xsetwacom get" on a button which contain a "modetoggle" or
    "displaytoggle" action will result in output which cannot be parsed
    by "xsetwacom set". Both of these actions are treated like buttons,
    printing extra data that is not expected by the "set" command.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e1df2c330db940c96030dafcab850fc167531113
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jan 12 12:15:35 2016 -0800

    xsetwacom: Remove unnecessary static state from 'get_actions'
    
    The 'last_type' variable within 'get_actions' stores the type of the last
    action encountered. When dealing with "key" or "button" actions, we use
    that information to determine if we need to print out the action prefix
    or not (if the type hasn't changed, its safe to leave the prefix out).
    
    For some reason, this variable was marked as 'static', which causes it
    to retain its value across invocations. The function is only called once
    for any given button, meaning that we improperly retain the "last_type"
    across buttons. If the last action on a button is of e.g. type "key" and
    the first action of the next button is as well, then the "key" prefix
    will be missing from the printed output of that second button's actions.
    Making this variable non-static fixes this issue and ensures each run
    of the function is independent.
    
    Fixes: http://sourceforge.net/p/linuxwacom/bugs/303/
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/3
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d9119a8c412926b97fac364d32e2bade47d2c295
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 10:23:52 2015 +1000

    release.sh: use -t flag to create a sf shell
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8978e7010f0ee39c43a9902fbbbbbbeb20da8152
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 10:18:58 2015 +1000

    release.sh: fix syntax errors
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a626adda70bf7e514a6715ba0fe63874808ca5e0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 23 15:20:02 2015 -0800

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

commit 380a443fb7ee96e6a7fe13405a3c8d9682b729c6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Sep 1 13:56:29 2015 -0700

    Streamline Sourceforge login for release.sh
    
    There's no particular reason that I see for us needing to enact a 30
    second sleep anymore, nor do we have to allocate a pseudo-TTY that
    the user then has to manually exit from. Creating a non-interactive
    session without sleep seems to work fine now.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 9e216247b549f95c0511b5b3243e1527cabcb161
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 13 10:32:05 2015 -0700

    Don't rely on IsPad() when trying to undo kernel event filtering
    
    Commit e9f95de fixed an issue where the pointer would jump around if the
    kernel's duplicate event filtering had removed the X or Y position from
    the initial "entering proximity" packet. The fix involved requesting the
    current axis value from the kernel, but only if we weren't dealing with
    the pad (since the pad never sends position data, and may not even have
    those axes). Unfortunately, the check used 'IsPad(priv)', which may
    return incorrect results at this point in the program flow.* This can
    cause the pointer jumps to occur anyway if the driver (incorrectly)
    believes the events to be coming from the pad as described in bug #286.
    
    To fix this, the check is changed to rely on 'ds->device_type' which
    provides accurate information.
    
    *It appears that the 'pInfo' passed into 'usbDispatchEvents' may be of
    any X device that shares the same underlying kernel device. It is not
    until later in 'wcmEvent' that we use 'findTool' to find the appropriate
    device based on the 'ds->device_type'.
    
    http://sourceforge.net/p/linuxwacom/bugs/286/
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 4c17c6a0dd224b66379c52ea8b24ab961b908aa0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 6 11:59:39 2015 -0700

    Update release.sh script from Xorg
    
    The latest-and-greatest copy of release.sh from Xorg now replaces our
    current version of the script which largely dates back to 2010. This
    script brings several new features along with it, with stronger checks
    and PGP signing probably being the two worth noting.
    
    A very small number of modifications to the upstream version of this
    script (commit 65cb27b) have been made to support this project. The only
    one of note is a change to 'generate_announce' which changes it to
    use the 'Reply-To' header instead of 'Cc' (since the announce list will
    bounce unauthorized messages back).
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 31d779debc5b624278c7dc1768168c54e790b4ec
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 17 17:47:06 2015 -0700

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

commit e566a1909329955c44de3e65449cb6485362bb73
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 10 12:34:20 2015 -0700

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

commit 4893844f3f4b417ae38af4dfc49f35d7fbac41b2
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jul 28 17:40:00 2015 -0700

    Modify wcmMaxCursorDist calculation to support non-inverted protocol 4
    
    Distance values reported by the puck tool on protocol 4 tablets (e.g.
    the Graphire4) have an inverted scale compared to other devices and
    tools. That is to say, the values are at their maximum while the puck
    is resting on the tablet and minimum just prior to going out of prox.
    The way that xf86-input-wacom handles this is with explicit protocol
    version checks, which limits our ability to fix this issue going
    forward (when libinput/Wayland begin to rule the desktop).
    
    This patch changes how the driver calculates wcmMaxCursorDist so that
    it is able to gracefully handle the day we fix this kernel bug.
    Instead of storing the minimum/maximum value ever seen on the tablet
    (switching between codepaths based on protocol 5/4) we store the value
    that is seen whenever the user clicks a button. It is reasonably safe
    to assume that this occurs with the puck on the tablet and thus will
    be the correct value. Even if the user happens to click with the puck
    raised above the surface, a subsuqent click *on* the surface will
    reset the value.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 0173f52dadc7f60019a594ff9d5503605f9a4134
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 29 10:23:31 2015 -0700

    xsetwacom: Fix regression in simple button mapping
    
    Commit 273ecfe introduces a bug where simple button mappings (e.g.
    "set <id> button 2 3") ignore the final argument and always use '1'
    instead. This us because the variable that we sscanf the button
    number into is subsuquently reused as a loop control variable before
    being sprintf'd out.
    
    http://sourceforge.net/p/linuxwacom/mailman/message/34246572/
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 69ddccf81c67191026612bad45a0a4192a55e1d2
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jun 9 18:06:04 2015 -0700

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

commit 8b76a75a0475d0dada34acb86d0c91b4bc12e4b5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 29 16:59:30 2015 -0700

    wacom 0.29.99.1
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit c14e9b485d2690245ba347879d2dd9fec9e7030f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Apr 24 09:16:59 2015 -0700

    xsetwacom: Fix 'get_mapped_area' ("maptooutput next") on 64-bit
    
    Using the "maptooutput next" command fails on 64-bit systems,
    with results ranging from always mapping the pointer to the
    first head to displaying errors about the transformation matrix
    being non-rectangular.
    
    This is a result of the 'get_mapped_area' function expecting
    32-bit properties returned by the server to take up only 4
    bytes of memory. This is the case on 32-bit systems, but not
    on 64-bit ones. This was partially addressed in bc5fd9e, but
    not here.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 273ecfeccfceb2c2a92cfb4e26078c11a3454396
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Apr 27 11:21:32 2015 -0700

    asan: xsetwacom: Cleanup xsetwacom memory leaks
    
    Address several leaks present in the code, as well as two uses of 'free' where
    'XFree' should have been used instead.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit af3869e5bda2e2f0a8f0203d11096406cf8cea6b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Apr 27 10:01:36 2015 -0700

    ubsan: Use 'unsigned int' for button mask in 'wcmSendButtons'
    
    ../src/wcmCommon.c:137:12: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmCommon.c:137
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d9ed47b1b200e1d6a89d11be75ee6346eb2229be
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Apr 27 09:28:31 2015 -0700

    ubsan: Prevent out-of-bounds array write
    
    ../src/wcmCommon.c:709:2: runtime error: index 6 out of bounds for type 'int [priv->naxes]'
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmCommon.c:709
    
    The 'valuators' array is dynamically sized based on how many axes the
    device has (typically 6, but possibly 7 if the WCM_DUALRING feature is
    set). Unfortunately, we don't pay attention to how many axes actually
    exist when filling the array and end up writing one 'int' worth of
    data past the end in most circumstances.
    
    This appears to have not triggered any issues in the past simply because
    with a typical stack layout, the code as written (valuators[6] = v6)
    won't do anything (since &valuators[6] == &v6). Even stil...
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 423735fc0eee0206d65ee974b019fa0ea2090572
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Apr 27 09:15:09 2015 -0700

    ubsan: Fix alignment issues
    
    Memcpy the data from wherever it is in memory to a 'struct input_event'
    that is living on the stack with proper alignment. Fixes the following
    complaints from Clang's undefined sanitizer:
    
    ../src/wcmUSB.c:966:13: runtime error: member access within misaligned address 0x62e00008e494 for type 'const struct input_event', which requires 8 byte alignment
    0x62e00008e494: note: pointer points here
      78 00 00 00 db 5b 3e 55  00 00 00 00 d9 d7 03 00  00 00 00 00 03 00 00 00  e9 09 00 00 db 5b 3e 55
                  ^
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:966
    ../src/wcmUSB.c:966:38: runtime error: member access within misaligned address 0x62e00008e494 for type 'const struct input_event', which requires 8 byte alignment
    0x62e00008e494: note: pointer points here
      78 00 00 00 db 5b 3e 55  00 00 00 00 d9 d7 03 00  00 00 00 00 03 00 00 00  e9 09 00 00 db 5b 3e 55
                  ^
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:966
    ../src/wcmUSB.c:983:14: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment
    0x62e00008e4f4: note: pointer points here
      01 00 00 00 db 5b 3e 55  00 00 00 00 d9 d7 03 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
                  ^
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:983
    ../src/wcmUSB.c:1000:21: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment
    0x62e00008e4f4: note: pointer points here
      01 00 00 00 db 5b 3e 55  00 00 00 00 d9 d7 03 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
                  ^
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:1000
    ../src/wcmUSB.c:1000:48: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment
    0x62e00008e4f4: note: pointer points here
      01 00 00 00 db 5b 3e 55  00 00 00 00 d9 d7 03 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
                  ^
    SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:1000
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit d95dfe6ecd9e90f81bc133a561fa6336ac58170d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 9 16:31:57 2015 -0700

    afl: xsetwacom: Check that argc is in range before dereferencing argv
    
    These functions access argv[0] before checking that argc is at least
    1. In the interest of correctness, swap it around so that the check
    occurs before the dereference.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit c7db2dab7bc803ee84bfec1d8a90e1e608b6cb09
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 9 16:30:01 2015 -0700

    afl: xsetwacom: Do not allow negative button numbers
    
    Currently its possible to provide a negative (or zero) button number
    on the commandline, which will be dutifully translated into a negative
    offset. Detect this and throw an error if encountered.
    
    Signed-off-by: Jason Gerecke <jason.jgerecke@wacom.com>

commit 162cf8d54e8858b8c1cbc96c49f4ffa73716b7e8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 9 16:35:36 2015 -0700

    xsetwacom: Add ability to read args from stdin for fuzzing
    
    Add a new "--enable-fuzz-interface" configuration option which will
    cause xsetwacom to read NUL-separated arguments from stdin (for
    example: `echo -en 'list\0devices' | xsetwacom`). This makes it
    easier to plug into fuzzing software for debugging.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 4416168933e058cee6a5e0df803c9c822f8fa63d
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Fri Mar 13 11:24:27 2015 -0400

    Allow PAD only interfaces without EV_ABS and/or EV_X/Y to report events
    
    commit 0cfe113 (Allow PAD only interface without setting up EV_ABS
    and/or EV_X/Y) allows xf86-input-wacom to handle Pad only interface but
    such interface do not report any events.
    
    We need to call usbWcmInitPadState() to be able to forward events.
    
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 50fcf5eb5062a552959861453ece65a097bfe9f4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 12 10:26:28 2015 +1000

    Coverity: remove dead code
    
    Two lines above we assign nbbuttons = min(7, MAXBUTTONS), the latter of which
    is 32.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit d4a12274138829e79003d8bae597d6feec0b3680
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 12 10:11:49 2015 +1000

    tools: make baudrate unsigned int to shut up compiler
    
    Supplying a negative baudrate will now be implicitly converted to the unsigned
    int equivalent. So don't do that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 19c116f6e410c42f68fd67841f3c73276045cde6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 12 10:00:20 2015 +1000

    Coverity: silence "ioctl return value not checked" warnings
    
    Move two ioctls up so that if they fail we don't have to clean up an alloc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 13edd12f9c28b6be9c0cda3874081da1dd78132a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 12:14:00 2015 +1000

    Coverity: fix potential negative array subscript
    
    isdv4ParseTouchPacket and usbChooseChannel return -1 on error
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 1c068af8ebe42461095367ce5c6a03cbc8b33e6c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 12:08:22 2015 +1000

    Coverity: fix coverity complaints about unchecked return values
    
    The fread() result is now always terminated with \0. Don't think that's ever
    hit but it gives us a good reason to use the return value so we don't get more
    complaints.
    
    Interestingly, a (void) cast doesn't silence gcc but it does silence coverity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 63705716a44030e5d4e3bea6bd19bd28fa132635
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 12:04:08 2015 +1000

    Coverity: fix potential NULL-pointer dereferences
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit a6cdf28476062f70c1481b255e7d22d814f73440
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 16 16:53:03 2015 -0700

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

commit a8d43fceb38cad8386b87dd4069e4022e05f5d7c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 11:48:59 2015 +1000

    Fix release script
    
    Apparently the path has changed
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 5ce9a72fb8249af500e88bde3e6ec0239cd0b8ac
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 9 14:06:56 2015 +1000

    tools: Add missing includes for fstat(2)
    
    http://build.gnome.org/continuous/buildmaster/builds/2015/03/09/8/build/log-xf86-input-wacom.txt
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8317dc44c142a2d38e85e6d2955236d7dd900450
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 9 13:53:48 2015 +1000

    Add missing includes for fstat(2)
    
    http://build.gnome.org/continuous/buildmaster/builds/2015/03/09/3/build/log-xf86-input-wacom.txt
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e97d82e253635ec2e7c592ed24b772b231eb8b38
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Mar 5 17:50:35 2015 -0800

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

commit 0af1fcfa3212e099267921410aedd4d75b6c2deb
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 11:52:27 2015 -0800

    doc: Fix doxygen.conf warnings
    
    Remove the obsolete XML_SCHEMA and XML_DTD definitions, as well
    as clear the definition of DOT_FONTNAME.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 122d70031ddd2d414f2e739e57903b676c159baa
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 10:27:40 2015 -0800

    xsetwacom: Ease static analysis of get_mapped_area
    
    Fixes warnings about the "width", "height", "x_org", and "y_org"
    variables in "set_output_next" potentially being undefined. Although
    careful consideration of the code shows that they must be defined,
    GCC's static analyzer apparently isn't quite up to the task. This
    commit rewrites the loop/switch construct to be more straightforward
    and analyzable.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3e89ef073e3327826c33241f555f59d3e3dea3f7
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 10:10:50 2015 -0800

    tools: Fix up const warnings
    
    Resolve numerous "initialization discards ‘const’ qualifier from pointer
    target type" warnings that were present.
    
    Note that in the process of fixing the warning in 'parse_actions', a
    small buffer overflow was also corrected (the statement
    'sprintf(new_words[0], "+%d", i)' writes one character more than
    originally existed in new_words[0]).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fc28497c0415ecd3487769303eee32f6c8315886
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 14:42:00 2015 -0800

    xsetwacom: Use 'fabs' instead of 'abs' where necessary
    
    Fixes multiple clang warnings about the use of 'abs' with a floating-
    point argument.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 820e6826e9e9cf9672a6e343a0b9134036e50ab8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 10:32:58 2015 -0800

    xsetwacom: Remove unused variable from 'strjoinsplit'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bfb53ce07ce3cde26ab3e46805a251e79c9eb78d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 10:42:50 2015 -0800

    xsetwacom: Fix format string provided used by 'get_button'
    
    xsetwacom.c: In function ‘get_button’:
    xsetwacom.c:2080:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Atom’ [-Wformat=]
      print_button_value(param, offset, "%d", prop);
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4e7fe9882407cb58b0150b7d2d1d7ca1c7f89418
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 10:40:14 2015 -0800

    xsetwacom: Declare printf attribute on print_{,button_}value
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cdbada765adac161ef4f0e36c16301a7f9b3980e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 29 10:10:12 2015 -0800

    tools: Build with CWARNFLAGS
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 86dd3e22ab1b07dd2777959a5a2d2ea7da38f74f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jan 16 18:33:39 2015 -0800

    xsetwacom: Allow "get <id> all" to iterate over all available buttons
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9ee5383553ac32e98c7f0e25a1c950f35ffeff62
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jan 16 17:29:40 2015 -0800

    xsetwacom: Add print_button_value function
    
    Setting a button value requires a slightly different format than most
    other properties. In particular, they require the presence of a button
    number either concatenated onto the prefix 'Button' (for xorg.conf format)
    or as a seperate parameter (for shell format).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2f5af03ac1b7ac9748b2ee1d5493aca1de87a8d0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jan 16 18:11:20 2015 -0800

    xsetwacom: Don't try to print "set" commands for readonly properties
    
    Both FORMAT_XORG_CONF and FORMAT_SHELL are formatted for setting in xorg.conf
    or xsetwacom. It makes no sense to bother printing out the value of readonly
    values for these two cases though since it is impossible to set them.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 902b174cbde602f00b08d40ae1b949ea0f154a7f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jan 16 18:00:41 2015 -0800

    xsetwacom: Print proper names of xorg.conf options
    
    Some properties have different names between xorg.conf and xsetwacom.
    This adds an 'x11name' member to each parmeter which stores the name
    of the associated xorg.conf property if it exists. If this member has
    not been set for any particular parameter while the xorg.conf format
    is selected than an error will be printed.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 162d83cf2c6cf809debdb2beb96a45313f4e8a36
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jan 16 17:02:40 2015 -0800

    xsetwacom: Print error/warning messages on stderr
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 27b713eebf606b9f21df26d9ac5cc6a489b90a01
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jan 12 09:30:18 2015 -0800

    xsetwacom: Use effective XKB group number in keysym_to_keycode
    
    XKB allows a user to define multiple groups (layouts) for their
    keyboard, switching between them on the fly. When converting keycodes to
    KeySyms one has to be careful about which group they look at. Not every
    keycode has to define KeySyms for every available group, and XKB
    calculates an "effective" group number in such cases. At the moment
    xsetwacom only uses the "current" group number which won't always work.
    
    The following commands exhibit one example of how the bug may be
    reproduced:
    
        $ setxkbmap us,dvorak -option grp:caps_toggle
        $ xsetwacom set <id> button 1 key ctrl
        [ button 1 should work as expected ]
        [ now press CAPSLOCK to switch to Dvorak ]
        $ xsetwacom set <id> button 1 key ctrl
        [ a warning is printed if the bug exists ]
    
    To reset the keyboard back e.g. to the 'us' layout after running the
    above commands:
    
        $ setxkbmap us -option
    
    Fixes: http://sourceforge.net/p/linuxwacom/bugs/269/
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 335f885bcc15d7ba85bcd2b6000434c39f1beb13
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jan 5 13:38:53 2015 -0800

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

commit 47539b4e4005cda70405bd8f2a29214cabba2d64
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 22 15:49:52 2014 -0800

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

commit 8d138bf21a54f73249f443af747f01f4a0069fc0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 22 14:54:08 2014 -0800

    xsetwacom: Warn if keycode could not be found
    
    As described at SF #267, xsetwacom provides no indication if a valid
    keysym has no keycode in the current keyboard layout. This provides
    such a warning and updates language of a preceeding warning to be
    more accurate.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit fd5371dc28dfd1bdabd9b50bdac00047aadc39ab
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 5 10:38:21 2014 -0800

    Allow xsetwacom to recognize 'insert' as a key
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit debc83723927f0fb3d16098f8b7388bdb6db855b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 5 13:39:26 2014 -0800

    Ensure input device fd gets closed after use
    
    Fixes a minor error in commit 52fe01c which results in the driver
    invalidating an fd prior to (potentially) closing it. This reversed
    order causes us to leak the fd and can result in eventual exhasution.
    
    Fixes SF #263
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5aec962eb930aa7758eb0e3a7c32f951b4b3d935
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Nov 24 13:46:56 2014 -0800

    Remove hardcoded function name - usbProbeKeys
    
    "in the future we should use __func__ instead of harcoding
    function names." -- Peter Hutterer
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0cfe1139f39fd322a4360b282fee6297c8ac00d6
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Nov 24 13:42:18 2014 -0800

    Allow PAD only interface without setting up EV_ABS and/or EV_X/Y
    
    Wacom kernel driver has been merged to HID subsystem. As a bonus,
    we also allow PAD to report its data on its own interface. To declare
    the exact event types, we should not set EV_ABS or EV_X/Y for PADs
    on most tablets.
    
    However, xf86-input-wacom is not designed to handle this case. This
    patch makes future PAD-only, or even expresskey-only, tablets work
    properly.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>

commit cea8074a0b987efb064cfbebe1de4c684592b928
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 3 17:00:26 2014 -0800

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

commit bac8243d680d9cde531aaa00c048299017d32962
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Oct 27 15:35:18 2014 -0700

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

commit 8f85692a19bd34dae77071a296a14c01a491cf4a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 17 16:05:10 2014 -0700

    Reset wcmGestureState to current device state upon gesture start
    
    The scroll and zoom gestures use of how far the fingers have travelled
    as a way to determine how many times to send the scroll/zoom event.
    When a gesture first starts, however, the fingers have already moved a
    large distance simply to have the gesture be recognized. This may cause
    a rapid and undesired "catch up" effect due to the large built-up delta.
    
    To work around this, when a gesture starts, we reset the wcmGestureState
    so that the functions are working with a clean slate and do not see the
    large delta.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit f6ae56b0cf1cbf298ebbc5380f51010cea430154
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 11 16:13:05 2014 -0700

    Set the active driver to NULL before uninitalizing the device
    
    If a device being used is disconnected, it may be possible to find
    yourself in a situation where a second device performs an "active"
    check and dereferences a null (freed in 'wcmFree') 'priv' pointer.
    To prevent this from occuring, always check if the device being
    uninitialized is considered 'active' and unset it if so.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit e9f95de119875e06b9ec775f5938506dcc1b2d6e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Sep 9 17:02:48 2014 -0700

    Fix pointer jump when tool enters prox with filtered coordinate
    
    When a tool enters proximity, the usbChooseChannel function zeros
    out one of the WacomDeviceState structures in the common->wcmChannel
    array and returns its index. That state is then initalized using
    the input events recieved from the kernel, and is assumed to be
    a complete description by the time it is handed off to the wcmEvent
    function.
    
    The kernel's duplicate event filtering can cause problems for this,
    however. If the value of the axis as it enters prox is identical to
    its value when it left prox, the kernel will not send an event for
    it (leaving the associated WacomDeviceState field zero). If this
    occurs with the X and/or Y axis, the pointer will jump to the wrong
    screen location.
    
    To prevent the pointer from jumping around, we check if the X or Y
    value of the WacomDeviceState are still zero after reading through
    an enter-prox packet. If either is, we request its current value
    from the kernel just in case it was filtered out. Other axes may be
    affected by this bug, but should not cause as many problems.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 0ed6d892e045de4e9674fa81318ee8ee7b3fc384
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 18 12:08:25 2014 -0700

    Strengthen condition that pad may never be arbitrated pointer control
    
    The pad should never be arbitrated pointer control since it is not a
    pointer controlling device. The `check_arbitrated_control` function
    performs its checks in the wrong order, however, and will grant control
    if no other device is currently active.
    
    This can cause touch to be disabled for "generic protocol" devices (e.g.
    Intuos, Bamboo, etc.) until a pen is used because touch is the lowest-
    priority device to be arbitrated access. For protocol 4/5 devices (e.g.
    Intuos 5/4/3 and Cintiq) this can also lock out touch, but only if the
    ExpressKey was pressed prior to the beginning of the touch, and only
    while it remains held.
    
    This patch strengthens the condition that the pad may never be granted
    control by making it the first thing checked.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 018c632ada56d8e07a11ce89ec589e3a2dc36293
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 17 19:05:44 2014 -0700

    gcc-warning: -Wunused-variable
    
    ../src/wcmXCommand.c:90:13: warning: 'prop_tv_resolutions' defined but not used [-Wunused-variable]
     static Atom prop_tv_resolutions;
                 ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 885e04b36054da9072a6add5307ef0d9d538ee62
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 10:40:50 2014 -0700

    clang-warning: -Wmissing-variable-declarations
    
    ../src/wcmConfig.c:701:16: warning: no previous extern declaration for non-static variable 'WACOM' [-Wmissing-variable-declarations]
    InputDriverRec WACOM =
                   ^
    ../src/wcmXCommand.c:82:6: warning: no previous extern declaration for non-static variable 'prop_devnode' [-Wmissing-variable-declarations]
    Atom prop_devnode;
         ^
    ../src/wcmXCommand.c:83:6: warning: no previous extern declaration for non-static variable 'prop_rotation' [-Wmissing-variable-declarations]
    Atom prop_rotation;
         ^
    ../src/wcmXCommand.c:84:6: warning: no previous extern declaration for non-static variable 'prop_tablet_area' [-Wmissing-variable-declarati$
    Atom prop_tablet_area;
         ^
    ../src/wcmXCommand.c:85:6: warning: no previous extern declaration for non-static variable 'prop_pressurecurve' [-Wmissing-variable-declara$
    Atom prop_pressurecurve;
         ^
    ../src/wcmXCommand.c:86:6: warning: no previous extern declaration for non-static variable 'prop_serials' [-Wmissing-variable-declarations]
    Atom prop_serials;
         ^
    ../src/wcmXCommand.c:87:6: warning: no previous extern declaration for non-static variable 'prop_serial_binding' [-Wmissing-variable-declar$
    Atom prop_serial_binding;
         ^
    ../src/wcmXCommand.c:88:6: warning: no previous extern declaration for non-static variable 'prop_strip_buttons' [-Wmissing-variable-declara$
    Atom prop_strip_buttons;
         ^
    ../src/wcmXCommand.c:89:6: warning: no previous extern declaration for non-static variable 'prop_wheel_buttons' [-Wmissing-variable-declara$
    Atom prop_wheel_buttons;
         ^
    ../src/wcmXCommand.c:90:6: warning: no previous extern declaration for non-static variable 'prop_tv_resolutions' [-Wmissing-variable-declar$
    Atom prop_tv_resolutions;
         ^
    ../src/wcmXCommand.c:91:6: warning: no previous extern declaration for non-static variable 'prop_cursorprox' [-Wmissing-variable-declaratio$
    Atom prop_cursorprox;
         ^
    ../src/wcmXCommand.c:92:6: warning: no previous extern declaration for non-static variable 'prop_threshold' [-Wmissing-variable-declaration$
    Atom prop_threshold;
         ^
    ../src/wcmXCommand.c:93:6: warning: no previous extern declaration for non-static variable 'prop_suppress' [-Wmissing-variable-declarations]
    Atom prop_suppress;
         ^
    ../src/wcmXCommand.c:94:6: warning: no previous extern declaration for non-static variable 'prop_touch' [-Wmissing-variable-declarations]
    Atom prop_touch;
         ^
    ../src/wcmXCommand.c:98:6: warning: no previous extern declaration for non-static variable 'prop_hover' [-Wmissing-variable-declarations]
    Atom prop_hover;
         ^
    ../src/wcmXCommand.c:99:6: warning: no previous extern declaration for non-static variable 'prop_tooltype' [-Wmissing-variable-declarations]
    Atom prop_tooltype;
         ^
    ../src/wcmXCommand.c:100:6: warning: no previous extern declaration for non-static variable 'prop_btnactions' [-Wmissing-variable-declarati$
    Atom prop_btnactions;
         ^
    ../src/wcmXCommand.c:101:6: warning: no previous extern declaration for non-static variable 'prop_product_id' [-Wmissing-variable-declarati$
    Atom prop_product_id;
         ^
    ../src/wcmXCommand.c:102:6: warning: no previous extern declaration for non-static variable 'prop_pressure_recal' [-Wmissing-variable-decla$
    Atom prop_pressure_recal;
         ^
    ../src/wcmXCommand.c:104:6: warning: no previous extern declaration for non-static variable 'prop_debuglevels' [-Wmissing-variable-declarat$
    Atom prop_debuglevels;
         ^
    ../src/wcmXCommand.c:95:6: warning: no previous extern declaration for non-static variable 'prop_hardware_touch' [-Wmissing-variable-declar$
    Atom prop_hardware_touch;
         ^
    ../src/wcmXCommand.c:96:6: warning: no previous extern declaration for non-static variable 'prop_gesture' [-Wmissing-variable-declarations]
    Atom prop_gesture;
         ^
    ../src/wcmXCommand.c:97:6: warning: no previous extern declaration for non-static variable 'prop_gesture_param' [-Wmissing-variable-declara$
    Atom prop_gesture_param;
         ^
    xsetwacom.c:476:3: warning: no previous extern declaration for non-static variable 'deprecated_parameters' [-Wmissing-variable-declarations]
    } deprecated_parameters[] =
      ^
    xsetwacom.c:953:3: warning: no previous extern declaration for non-static variable 'keywords' [-Wmissing-variable-declarations]
    } keywords[] = {
      ^
    isdv4-serial-debugger.c:44:5: warning: no previous extern declaration for non-static variable 'verbose' [-Wmissing-variable-declarations]
    int verbose = 0;
        ^
    isdv4-serial-inputattach.c:41:5: warning: no previous extern declaration for non-static variable 'verbose' [-Wmissing-variable-declarations]
    int verbose;
        ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 48a6c6121a0259939d515afbffbd4de057058266
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 12:01:57 2014 -0700

    clang-warning: -Wmissing-field-initializers
    
    ../src/wcmISDV4.c:100:2: warning: missing field 'DetectConfig' initializer [-Wmissing-field-initializers]
            };
            ^
    ../src/wcmTouchFilter.c:254:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}};
                                        ^
    ../src/wcmTouchFilter.c:254:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}};
                                                           ^
    ../src/wcmTouchFilter.c:314:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}};
                                        ^
    ../src/wcmTouchFilter.c:314:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}};
                                                           ^
    ../src/wcmTouchFilter.c:395:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}};
                                        ^
    ../src/wcmTouchFilter.c:395:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}};
                                                           ^
    ../src/wcmTouchFilter.c:587:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}};
                                        ^
    ../src/wcmTouchFilter.c:613:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}};
                                        ^
    ../src/wcmTouchFilter.c:714:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers]
            WacomDeviceState ds[2] = {{0}};
                                        ^
    xsetwacom.c:465:9: warning: missing field 'desc' initializer [-Wmissing-field-initializers]
            { NULL }
                   ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7af2c515bdd8e918efbec23c03fa1e705c186aea
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 10:01:24 2014 -0700

    clang-warning: -Wunused-macros
    
    xsetwacom.c:20:9: warning: macro is not used [-Wunused-macros]
     #define WACOM_TOOLS
             ^
    isdv4-serial-debugger.c:22:9: warning: macro is not used [-Wunused-macros]
     #define WACOM_TOOLS
             ^
    tools-shared.c:20:9: warning: macro is not used [-Wunused-macros]
     #define WACOM_TOOLS
             ^
    isdv4-serial-inputattach.c:22:9: warning: macro is not used [-Wunused-macros]
     #define WACOM_TOOLS
             ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2bab0353aef20f8e5e738d8e96317dd5fe69e190
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 09:51:26 2014 -0700

    clang-warning: -Wunreachable-code-return
    
    ../src/wcmUSB.c:1140:9: warning: 'return' will never be executed [-Wunreachable-code-return]
            return 0;
                   ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c33c80e6d5977e33aaf8f7a9cec15a05ec88cf78
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 09:32:26 2014 -0700

    clang-warning: -Wunreachable-code-break
    
    ../src/wcmXCommand.c:439:5: warning: 'break' will never be executed [-Wunreachable-code-break]
                                    break;
                                    ^~~~~
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 75960a16fbf3f6ce2b0030cb703a6a389ab8998f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 14 12:30:58 2014 -0700

    clang-warning: -Wdocumentation-unknown-command
    
    ../src/wcmCommon.c:740:4: warning: unknown command tag name [-Wdocumentation-unknown-command]
     * @retval SUPPRESS_ALL Ignore this event completely.
       ^
    ../src/wcmCommon.c:1041:4: warning: unknown command tag name [-Wdocumentation-unknown-command]
     * @rebaes
       ^
    ../src/wcmUSB.c:1120:4: warning: unknown command tag name [-Wdocumentation-unknown-command]
     * @device_id id of the device
       ^
    ../src/wcmValidateDevice.c:524:52: warning: unknown command tag name [-Wdocumentation-unknown-command]
     * hotplug. The server will come back and call the @wcmHotplugDevice
                                                       ^
    ../src/wcmValidateDevice.c:753:4: warning: unknown command tag name [-Wdocumentation-unknown-command]
     * @retvalue True on success or False otherwise.
       ^
    ../src/wcmValidateDevice.c:1020:4: warning: unknown command tag name [-Wdocumentation-unknown-command]
     * @retvalue True on success or False otherwise.
       ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a97d4aacb79fee63f9c45807fa47ae5d4d0b63f2
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 14 12:19:55 2014 -0700

    clang-warning: -Wmissing-prototypes
    
    xsetwacom.c:2098:6: warning: no previous prototype for function 'get_mapped_area' [-Wmissing-prototypes]
    Bool get_mapped_area(Display *dpy, XDevice *dev, int *width, int *height, int *x_org, int *y_org)
         ^
    isdv4-serial-inputattach.c:81:5: warning: no previous prototype for function 'get_baud_rate' [-Wmissing-prototypes]
    int get_baud_rate(int fd)
        ^
    isdv4-serial-inputattach.c:117:6: warning: no previous prototype for function 'sighandler' [-Wmissing-prototypes]
    void sighandler(int signum)
         ^
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 37421251edb509e6fe60d2a506e9177008c7a603
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 14 11:53:20 2014 -0700

    clang-warning: -Wconditional-uninitialized
    
    ../src/xf86Wacom.c:511:16: warning: variable 'i' may be uninitialized when used here [-Wconditional-uninitialized]
                    pInfo->name, i + 1, wait);
    
    xsetwacom.c:2308:36: warning: variable 'x' may be uninitialized when used here [-Wconditional-uninitialized]
                    return set_output_area(dpy, dev, x, y, width, height);
                                                     ^
    xsetwacom.c:2308:39: warning: variable 'y' may be uninitialized when used here [-Wconditional-uninitialized]
                    return set_output_area(dpy, dev, x, y, width, height);
                                                        ^
    xsetwacom.c:2308:42: warning: variable 'width' may be uninitialized when used here [-Wconditional-uninitialized]
                    return set_output_area(dpy, dev, x, y, width, height);
                                                           ^~~~~
    xsetwacom.c:2308:49: warning: variable 'height' may be uninitialized when used here [-Wconditional-uninitialized]
                    return set_output_area(dpy, dev, x, y, width, height);
                                                                  ^~~~~~
    isdv4-serial-inputattach.c:107:6: warning: variable 'attr_id' may be uninitialized when used here [-Wconditional-uninitialized]
            if (attr_id && sscanf(attr_id, "WACf%x", &id) == 1 && id >= 0x8)
                ^~~~~~~
    isdv4-serial-inputattach.c:179:22: warning: variable 'baudrate' may be uninitialized when used here [-Wconditional-uninitialized]
            set_serial_attr(fd, baudrate);
                                ^~~~~~~~
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bff3c3e634c962a98c0574eb790ddf78f7e2e02d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Aug 14 11:46:07 2014 -0700

    clang-warning: enumeration value 'FORMAT_DEFAULT' not explicitly handled in switch
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 14b272c48b25d8aa4ad91d18a60bccd42e6c4207
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue May 13 10:52:34 2014 -0700

    clang-warning: extra ';' outside of a function
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 974a3136c5115709389fb6e57ab743240f3cec7d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 19:28:27 2014 -0700

    Replace strjoinsplit
    
    There's not much to like about this function's implementation. The
    few scan-build warnings specific to this particular function suggested
    it should be put to pasture and replaced with something better.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 01a5892b46003e308791348dc291675ee3dc45dd
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 18:19:33 2014 -0700

    scan-build: security: Potential insecure memory buffer bounds restriction in call 'strcat'
    
    The 'argv' strings passed into strjoinsplit are concatenated and
    stored within the 'buff' array on the stack. Although we are
    careful to ensure there is enough room remaining to store *argv
    and a separating ' ' character before performing strcat, we also
    need to ensure that there's room for the null terminator that
    strcat itself will append.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bdda78fad48bc5222468d6abff0e4858ded37713
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 17 17:42:49 2014 -0700

    scan-build: Logic error: Potential unintended use of sizeof() on pointer type
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5dfdf012b324366697b724e4629b8ae1a00a4aae
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 19:03:57 2014 -0700

    scan-build: Logic error: Cast region with wrong size
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9e90e41f6ecba0a3e534b97e13b8309004ff920d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 17:57:06 2014 -0700

    scan-build: Function call argument is an uninitialized value
    
    The isdv4ParseTouchQuery and isdv4ParseTouchData functions
    return 0 and -1 if errors occur. At the moment, only the -1
    case is being handled, which can result in the callers using
    uninitialized ISDV4TouchQueryReply or ISDV4TouchData results.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9ef69b5ba8130d5cb2315c0c2ec3c4465cf2dcdc
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Sep 15 17:08:01 2014 -0700

    scan-build: Undefined or garbage value returned to caller
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 34496d7330d9bf5cfc7b5773ec464dc8a105c526
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 15:09:11 2014 -0700

    scan-build: Logic error: Branch condition evaluates to a garbage value
    
    1 (line 88): 'attr_id' declared without an initial value
    2 (line 96): ASSUME Loop condition is false. Execution continues on line
    107
    3 (line 107): Branch condition evaluates to a garbage value
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5e54ade3b24c0b4eaec8670298fd2dbd75a1c846
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 16:32:47 2014 -0700

    scan-build: Logic error: Dereference of null pointer
    
    If no match is found within the 'while' loop, the value of 'ndevices'
    will be -1 at the point we reach 'if (!ndevices)' since we use the
    post-decrement operator. In addition to never producing the expected
    error message, this also results in a NULL dereference immediately
    afterwards.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7a9e384f6aea427f18a87b5ef5cb711e6dcd31dd
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 15:56:56 2014 -0700

    scan-build: Unix API: Undefined allocation of 0 bytes
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5f97023c197382b25c852a150caf9b8630cbf44a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 15:29:26 2014 -0700

    scan-build: Logic error: Result of operation is garbage or undefined
    
    Assuming nitems is less than we expect, its possible for
    get_mapped_area to return before writing values to its in-parameters.
    This adds an additional verification to the returned data type.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e74d825faa7269dceaf108359e5e23b716d65d3f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 15:18:29 2014 -0700

    scan-build: Memory Error: Memory leak
    
    strjoinsplit requires the caller to free memory
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2c83a26febfe38f856ecf8aae30470b03bb61661
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 15:06:14 2014 -0700

    scan-build: Unix API: Allocator sizeof operand mismatch
    
    Result of 'calloc' is converted to a pointer of type 'unsigned long',
    which is incompatible with sizeof operand type 'long'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 26b518ab52813bbf8443a7cc81485ce359ab52e3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 6 14:50:45 2014 -0700

    scan-build: Dead store: Dead assignment
    
    Value stored to 'max' is never read
    Value stored to 'min' is never read
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5fa70839834c35a9c2de3fae4c634a448bf583ba
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 11 17:48:36 2014 -0700

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

commit 42a42b2a8636abc9e105559e5dea467163499de7
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 4 11:21:10 2014 -0700

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

commit 7de39508b7b2b89db86e49c498df53934be5d895
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 25 16:29:15 2014 -0700

    Have direct input touch use server emulation to move pointer
    
    The X server provides pointer emulation for the first touch on
    direct-input (touchscreen) devices. To make use of this, we need
    to short-circuit our internal first-touch emulation and that the
    gesture engine immediately enters multitouch mode (but only for
    touchscreens!)
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 48ea5fb61c4c3b1a7a4ca356e7459d5c3e65e052
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 25 16:23:45 2014 -0700

    Revert "Don't emulate a mouse when multitouch is enabled"
    
    This reverts commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979.

commit 3d15f716d45cb15985a0091ce741767f81f041e6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Aug 13 09:58:34 2014 -0700

    Revert "Unify wcmFingerMultitouch and wcmSendTouchEvent"
    
    This reverts commit 67daf21bdb7b32c27818bffaf56849a522d23477.

commit beff32b64f9a63582bb05c2521cf527a7b7e40a5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 2 12:50:02 2014 -0700

    Allow touch to grab and maintain pointer control from idle puck
    
    This patch changes the how pointer access is arbitrated. Before,
    any non-touch tool would be immediately granted control over the
    pointer, preempting touch itself. This is problematic if the user
    happens to use a device with a puck (i.e., a Cursor device) since
    the tool is likely to be in-range but idle for a significant
    ammount of time.
    
    This patch adds conditions which allow touch to grab control from
    the puck if no events have been seen from it in a while. In addition,
    the puck may not immediatley regain control from the touch device
    while it is in use due to potential hardware jitter.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit c92b7a9647b33b9693522255408207d925d9bad6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 18 10:03:38 2014 -0700

    wacom 0.25.99.1

commit 6a9c6a221d2eba20f63d8d1ee451772a54ae5b65
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jul 7 16:43:01 2014 -0700

    conf: Add new InputDevice matches based on USB and PnP ID
    
    If the kernel's HID driver is used rather than wacom.ko, its very
    possible that the device will not have "Wacom" anywhere in its
    device name. To ensure we are able to match Wacom tablets in this
    situation, we add matches based on the known USB and PnP IDs.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4a376ec733b44c648b00bda91b7d40a22b54ac7b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jul 7 16:41:18 2014 -0700

    conf: Match Hanwang tablets in their own section
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cd188428991781bcf20505856766bb21bcfbdd5e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jul 15 10:26:53 2014 -0700

    Add new GESTURE_CANCEL_MODE and wcmCancelGesture function
    
    The new GESTURE_CANCEL_MODE is used to short-circuit the gesture
    recognition logic until all touches have been removed from the device.
    By using the wcmCancelGesture function, any in-progress gesture will
    be canceled and cause the driver to ignore further touch input until a
    new gesture is started.
    
    This is used by the arbitration logic to ensure that touches which
    accumulate in the valid.state list while a pen is in proximity do not
    suddenly trigger a gesture at the moment the pen leaves prox.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d433218f570454e2122343405039c4a7bfaa15a4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jul 14 15:18:29 2014 -0700

    Support cross-device pointer arbitration
    
    Currently pointer arbitration is taken care of through the use of
    a 'wcomPenInProx' variable in the WacomCommonRec. If two devices
    share a 'common' variable, the commonDispatchDevice function will
    ensure that touches do not move the pointer while the pen is in
    proximity.
    
    This patch adds support for cross-device pointer arbitration to
    prevent other touches known to the driver from moving the pointer.
    This is achieved with the introduction of a 'WACOM_DRIVER' structure
    that is shared by all tools. Inside this structure is an 'active'
    variable that keeps track of the last tool which was actively
    controlling the pointer. When an event from any tool comes in, the
    driver will attempt to determine if it should be filtered or not.
    In some cases, the new device will be allowed to take control of
    the pointer, and become the new active device.
    
    Note that arbitration occurs *after* we store the device state
    to pChannel->valid.state. The code in wcmTouchFilter.c assumes
    that states are not missing, and can become desynchronized from
    reality if (for example) a finger were to go out of prox without
    a corresponding state update.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d1c66c6b78d86fdabaf30d2fd5acf91484ca84d0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 2 11:32:50 2014 -0700

    Change function signature of commonDispatchDevice
    
    Changes commonDispatchDevice to take an InputInfoPtr rather than a
    WacomCommonPtr. This is in prepraration for the next patch where
    an InputInfoPtr will be required in wcmEvent. To make this happen,
    the call to 'findTool' is moved to wcmEvent. This also allows us
    to remove the one-off setting of 'priv' only for touch devices.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b5708e04181b5734ebdfe649c87c47b5f4e28cf
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 2 11:25:21 2014 -0700

    Remove unused function parameter
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0e5c4b2635b76aa5fa5b00c2156524c2579a9b9f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 4 15:12:40 2014 -0700

    ISDv4 touch query timeout should be non-fatal
    
    Both the wacom_w8001 and isdv4.c drivers assume that a tablet /may/
    respond to the touchquery packet with silence. This assumption does
    not carry over to tools-shared.c, and may cause pen-only tablet PC
    users trouble with isdv4-serial-inputattach.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Tested-by: Anshul Sirur <vixus0@gmail.com>

commit c509dc3b5f09b74a50aea05abbf3a084f9e7b69f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 20 17:57:52 2014 -0700

    Add support for ISDv4 0x12C tablet
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 541504ffed49e2310142ed3e72c344c0f9fc3ae6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jun 18 13:57:48 2014 -0700

    Set tool device ID for generic protocol hardware
    
    The code in usbParseKeyEvent which is supposed to set a device
    ID ignores the case of devices which use the generic protocol.
    This patch changes the logic so that a device ID is assigned
    from the BTN_* event for any non-protocol 5 device.
    
    Fixes: https://sourceforge.net/p/linuxwacom/bugs/246/
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit cd16d7cdc41431bf8f4ab817637381c0775a3a82
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jun 10 12:49:55 2014 -0700

    Don't assume tablet (x,y) always starts from (0,0)
    
    Newer Cintiqs have an outbound of 200 tablet count outside of screen
    area. This causes absinfo.minimum to be 200 for some tablets instead
    of always 0 for all tablets. Update struct _WacomDeviceRec and
    _WacomCommonRec to process this change.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2088de15ba662f32185c1667842afdc0394d329e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jun 17 16:42:16 2014 -0700

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

commit 4bc29b0d76996fe5ea7fada1160f48fa4071a1e9
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 2 09:19:13 2014 -0700

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

commit 65bd099de3a796420ffa398f8969ca3b068747bf
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu May 29 17:06:30 2014 -0700

    Send proper Y coordinate when leaving proximity
    
    Bug introduced in commit e4bfe1d.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 26cc50112cfe98d81ca4c38fd7bdff5ef08a8178
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 28 16:47:48 2014 -0700

    Use OUTPROX_STATE in wcmSoftOutEvent and elsewhere
    
    Missed in commit 61f6a7c.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 36c757c92981cc1a70e258f3913d991023f1a445
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu May 22 18:11:12 2014 -0700

    Fix enter-prox detection
    
    Prior to commit 61f6a7c, the value of oldState.proximity
    was not set by wcmUpdateOldState. Rather, when a tool
    entered proximity, the proximity flag would be explicitly
    set only after the call to wcmSend(Non)PadEvents was
    complete. This ensured that the condition where the pen
    has just entered prox would be properly detected.
    
    Since the aforementioned commit copies the value of ds
    (whose proximity flag is set) to oldState, issues related
    to the enter-prox condition have appeared. This is most
    noticable in GIMP, which has trouble switching tools.
    
    To resolve this issue, we remove the explicit setting of
    oldState.proximity (which is now implicitly handled by
    the call to wcmUpdateOldState after wcmSend(Non)PadEvents
    finishes) and add in an explicit clearing of the same
    prior to the call. In this way, it acts the same as
    oldState.buttons which must also be cleared upon entering
    prox to properly detect presses.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 44a290ea54cffad37472e290a09e0f01e04d2cd4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 9 10:42:35 2014 -0700

    Always clear free channel contents before reuse
    
    The patchset beginning at 840e658 unifies our device ID handling, having
    a single function be responsible for detecting and setting the type.
    The new code is very conservative about setting ds->device_type and will
    only do so if otherwise unset. Because only protocol 5 clears the channel
    contents (including device_type) prior to re-use, other tablets encounter
    problems when switching between tools.
    
    This patch has usbChooseChannel always clear the contents of a channel
    prior to its reuse. Our prior exception for only protocol 5 devices was
    just plain sloppy.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit cf708a474a5aa553b193bcd6da38272b62c774dc
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 7 14:33:25 2014 -0700

    Add support for four new ISDv4 sensors
    
    Adds support for the 0x116, 0x4004, 0x5000, and 0x5002 ISDv4 sensors.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit df4e30d480f4877474d82c39697f5d96db4d2b28
Author: Jacob Nevins <0jacobnk.git@chiark.greenend.org.uk>
Date:   Wed May 7 17:03:56 2014 -0700

    Remove vestiges of "displaytoggle" action mapping
    
    This was removed from the driver in 2010 (910dc637). Stop claiming to
    support it in xsetwacom(1), etc.
    
    Source: http://sourceforge.net/p/linuxwacom/bugs/236/
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit e9bed4fb52770b7587530303d456885e362b4073
Author: Jacob Nevins <0jacobnk.git@chiark.greenend.org.uk>
Date:   Wed May 7 16:57:18 2014 -0700

    Improve button action mapping documentation
    
    Source: http://sourceforge.net/p/linuxwacom/patches/88/
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 61f6a7c5203a87dc5c53e29bf216318aa3e8e43a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Feb 20 09:28:32 2014 -0800

    Update values of oldState by simple assignment
    
    When updating the value of oldState, it is sufficient to simply
    use an assignment statement for the entire struct rather than
    explicitly setting each field. A static const "out of prox"
    state is created to define the default out-of-prox values.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit e4bfe1d7765fdd295c2e7df6f3725fdbe4fc56fd
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Feb 20 09:27:15 2014 -0800

    Replace multitude of "old state" vars with a _WacomDeviceState
    
    Reducing clutter.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit ac6ad1d7e0a7c428ce609c3bda33099758cf7fde
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Feb 20 09:23:26 2014 -0800

    Remove unnecesary device variables: current[XY]
    
    These variables are currently used only within wcmUpdateOldState
    and can be passed in as arguments rather than held as variables
    in the device struct.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 1a21aacf90bcc9b56536f449e5b146ad9bf5f4c6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 10 11:10:49 2014 -0700

    Do not store a second copy of old touchstrip values in oldTilt[XY]
    
    The touchstrip values are already stored in oldStrip[XY], and appear to
    also be stored in oldTilt[XY] as a quirk of history. The value of oldTilt[XY]
    itself is only read in wcmSendNonPadEvents (which is not called for the pad
    device for obvious reasons ;)). At this point in time, there is absolutely
    no reason to store a second copy of the strip values in oldTilt[XY].
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 34ca9ab25d682335021097713650782e82f6dc73
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 10 15:24:15 2014 -0700

    Update configure help to indicate that debugging is enabled by default
    
    Running `./configure --help` indicates that debugging is disabled
    by default, but this is not the case. Change the documentation to
    state that it is enabled, and show the "--disable-debugging" option
    to make it clear.

commit becbee2f2b94b969f0bc2172a44c7bfe0804774e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 10 10:22:34 2014 -0700

    doc: Remove deprecated Doxygen options
    
    All options were at their default values, so safe to remove.

commit 41cb1c2fb4343781ee78ea79b5cea87be0999546
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 17 14:59:44 2014 -0700

    xsetwacom: Replace XKeycodeToKeysym with XkbKeycodeToKeysym
    
    We're already using the Xkb functions anyway, so we may as well use
    XkbKeycodeToKeysym and silence the XKeycodeToKeysym deprecation warning.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 36fd31adec1864a70d159a9853b2231c82179179
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 10 16:33:45 2014 -0700

    Remove dead code: ERASER_PROX, OTHER_PROX

commit b4703f8c639b62ccd65784122cd487606ee20e30
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 10 16:27:54 2014 -0700

    Remove dead code: struct _PROPINFO

commit 96eae07f60b0575a71f254b2f14b7bc168ab6e9c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 10 15:29:34 2014 -0700

    Remove dead code: factor[XY]
    
    The factor[XY] variables were introduced to make relative devices behave
    more naturally by taking into account the differences between screen
    space and device space. In particular, these variables were used to
    provide uniform acceleration along the X and Y axes, along with
    suppressing events that moved the cursor less than one pixel.
    
    For these variables to be properly calculated, the driver needs to
    be aware of the screen resolution. The necessary code has been removed
    for quite some time now, making this code entirely vestigal. The server
    itself should take care of everything for us as of ABI_XINPUT_VERSION
    19.2, accounting for both the resolution of the device and screen
    when deciding where the pointer should appear.
    
    NOTE: Strictly speaking factor[XY] aren't /entirely/ dead. There is *one*
    case where they are still set to a value other than 1.0 (setting either
    TopX or TopY in xorg.conf). However, this side-effect is not at all
    what is intended/expected so the functionality is still safe to remove.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 16d9b574901963971c6ef0b6be9b649c81a70c04
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 15 14:22:30 2014 -0700

    xsetwacom: Fix off-by-one error in list_one_device
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 89547bf9e01c9feb33947532c3ca3c4ba9a88a02
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Feb 25 17:51:10 2014 -0800

    Remove dead code: [xy]_padding
    
    The values of wcmVirtualTabletPadding are only read at a single
    location. Immediately prior to this read, they are set to zero.
    Because a value of zero will have no effect when used, the
    [xy]_padding variables are nothing more than dead code.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit edeb94a0ceaab2695f792c12b1473289b4000d8d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Feb 25 17:50:50 2014 -0800

    Remove dead code: Header defines and prototypes
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit 7b5c97aa9b3bd8a694775cce81297dd641f2f067
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Feb 20 10:02:38 2014 -0800

    Remove dead code: WacomToolArea
    
    Functionality removed back in 2001 with commit 82e65fc
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit fe17462457a23fa177aeb772b8c934c681fc6aea
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Feb 19 17:15:37 2014 -0800

    Remove dead code: misc. _WacomDeviceRec variables
    
    The use of each of these variables was eradicated around the turn
    of 2010 (commits d7dcb7d, 57fdd26, and f934866).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit 3eacea1058ef255e01ba83d0297bf0e5c533879b
Author: Egbert Eich <eich@suse.com>
Date:   Wed Apr 9 21:27:05 2014 +0200

    Attempt to derive the tool type from a known button/key event
    
    This is the last bit of clean up and consolidation in tool type detection:
    usbParseAbsEvent() sets the tool type if it recognized a button or key
    event and the tool type has not been set before.
    Before we get to usbParseAbsEvent() channel mapping must have failed most
    certainly so we must have gotten a new channel for each button or key
    sequence.
    Since this seems to be a last resort attempt to determine the tool type
    we only do this when all other methods have failed before. The newly
    introduced function deriveDeviceTypeFromButtonEvent() mimics the behavior
    of usbParseAbsEvent().
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 261ca70cfdc17c1e927b80190d127226798172c0
Author: Egbert Eich <eich@suse.com>
Date:   Wed Apr 9 21:27:04 2014 +0200

    Remove duplicate tool type detection
    
    Tool type detection is done in two places: early in usbDispatchEvents()
    by calling usbInitToolType() and later on in the same function when the
    events are parsed.
    usbInitToolType() is used to set (wcmUSBData*)->wcmDeviceType, the
    detection that happens later when the events are parsed sets
    (WacomDeviceState).device_type. These variables are matched against each
    to find the right channel for a device.
    If the algorithms used for both set of tool type detection diverge
    undesirable effects may happen. Therefore it is advisable to determine the
    tool type only once ie. in usbInitToolType() and copy the result to
    (WacomDeviceState).device_type if this value is unset.
    
    * Bring the algorithm in usbInitToolType() in sync with the reset:
    
      Add missing key codes to deviceTypeFromEvent()
    
      - Add BTN_TOOL_DOUBLETAP and BTN_TOOL_TRIPLETAP, return
        TOUCH_ID for them.
    
      - Return TOUCH_ID on BTN_TOUCH when protocol level is
        WCM_PROTOCOL_GENERIC and tool is a 1 finger USB touch.
    
    * Delete any duplicate tool type setting
    
    * Add a test for debugging if the device type has changed while in proximity.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 8f44f3568c46ab9cca543b830fb2e84dd56a2af9
Author: Egbert Eich <eich@suse.com>
Date:   Wed Apr 9 21:27:03 2014 +0200

    Store the last used channel rather than blindly taking channel 0
    
    When an event stream from a device doesn't contain information
    on the device type we look at the last used channel and copy
    over the device type.
    This is acceptable as such a situation only occurs while in
    proximity i.e. when the previous command package came from
    the same device.
    So far the device type form the state in channel 0 was taken.
    This was wrong however for PAD devices for instance.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit e08c45f3caf371a8e4123119aeb0b0d7fc227cca
Author: Egbert Eich <eich@suse.com>
Date:   Wed Apr 9 21:27:02 2014 +0200

    Fix initial device type detection
    
    usbInitToolType() tries to find the device type of a tool.
    Unlike usbFindDeviceType() it doesn't take into account the device_id
    which may exist in the event stream.
    As a result the device type may be taken from the last known type.
    This is generally a bad idea if the type has changed.
    This will happen for example when pressing a key on the Cintiq 21UX menu
    strips after removing a pen from the tablet.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 533220d3f2369b80afc404df1e5bb6a024309616
Author: Egbert Eich <eich@suse.com>
Date:   Wed Apr 9 21:27:01 2014 +0200

    Zero is not a valid device ID, don't derive a type from it
    
    A protocol 5 tool will send an ABS event code=ABS_MISC with
    value 0. 0 is however not a valid device ID. Don't try to
    derive a type from it.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 840e6585ab273828d6bcf1f0d0f4293f4ddb631a
Author: Egbert Eich <eich@suse.com>
Date:   Wed Apr 9 21:27:00 2014 +0200

    Remove unused code
    
    usbFindDeviceType() is only called once. From where it
    is called, it is only called if event->value != 0 and
    with ds->device_id = event->value.
    Thus the test !ds->device_id will always fail.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 45ebd5c5eb379bd9b04ed585d1406e3f9b6bc16b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 3 15:31:09 2014 -0700

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

commit e30b3789ca82d058dd10caca8a7e825154fd0e7f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 19 15:44:06 2014 -0700

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

commit c1de391dcda0c151ba347652cab3c96705c44b61
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 19 15:36:45 2014 -0700

    test: Update number of xsetwacom parameters
    
    Missed in bae16b0
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 10cc765549ed152d9f2dd82da5c33e9e9df5d30b
Author: Egbert Eich <eich@suse.com>
Date:   Tue Mar 11 15:19:14 2014 +0100

    Add an option to disable pressure recalibration
    
    If the initial pressure of a device is != 0 the driver recalibrates
    the pressure range. This is to account for worn out devices.
    The downside is that when the user hits the tablet very hard the
    initial pressure reading may be unequal to zero even for a perfectly
    good pen. If the consecutive pressure readings are not higher than
    the initial pressure by a threshold no button event will be generated.
    This option allows to disable the recalibration.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 9765439856149570be41d1e2f2492e620822d492
Author: Egbert Eich <eich@suse.com>
Date:   Mon Mar 17 21:08:40 2014 +0100

    Attempt to not lose events to pressure recalibration
    
    Worn out devices send a non-zero pressure even when not in contact
    with the tablet. To compensate for this the driver detects if the
    pressure sent by the device immediately after indicating proximity
    is non-zero. It subtracts this value from any pressure value sent
    later and rescales the pressure range to the full device range.
    If it later on sees the pressure value fall below this initial value
    it will readjust it this lower value.
    The downside of this is that when the pen is pushed onto the tablet
    really fast the initial pressure reading may be non-zero also the
    pen isn't worn. This can lead to lost events.
    This patch tries to address this:
    If the first pressure reading is != 0 it is recorded. If the recorded
    maximum value is >0 but a later pressure reading is higher the maximum
    value is replaced. If no button press event is generated the 'normal'
    way it is checked of the recorded maximum would trigger one when
    minPressure decreases.
    Once a 'normal' button event is generated or an 'alternative' button
    event is generated and minPressure doesn't decrease any more the
    recorded maximum is set to 0 which will disable the checks until the
    next prox in.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 62f912422bc428d2c7f2df71b164a956e895f29d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Feb 21 15:31:15 2014 -0800

    Support hardware touch switch
    
    New Intuos series introduced a hardware switch to turn touch
    events on/off. This patch retrieves its state from kernel by
    checking if SW_MUTE_DEVICE is declared.
    
    A new input property, WACOM_PROP_HARDWARE_TOUCH, is intoduced
    to report touch status changed by end user through touch switch.
    
    HardwareTouch, a new xsetwacom option, is added. This option
    is read-only since the state can only be changed by end users.
    This option is independent from the existing Touch option,
    which can be considered as a software touch switch.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8bb519ef2b8428459c31139779cce44dbbc1cd0a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Feb 21 17:12:56 2014 -0800

    Update wcmTouchDevice for touch interface
    
    To support arbitration, we only needed to access touch pointer
    from pen interfaces. Now, we need to access touch pointer from
    touch interfaces to update touch switch state.
    
    Since other tools, such as PAD, can be associated with touch
    interfaces, we can not assume the first tool created on touch
    interface is a touch tool. Assign it to wcmTouchDevice to avoid
    looping through the tool list everytime when we need to access it.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c21f87c403c4a1d2dc9c0d990d9892482d4ffe26
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Feb 3 10:34:17 2014 -0800

    Improve wcmLinkTouchAndPen device matching
    
    If a tablet has pen and touch interfaces, they appear to the system as
    seperate devices. Because it is necessary for these devices to share
    information, `wcmLinkTouchAndPen` was introduced to connect the two
    "halves" of the single physical tablet together (similar to
    how `wcmMatchDevice` links logical devices together).
    
    `wcmLinkTouchAndPen` has a few bugs in its implementation which prevent
    it from doing its job as well as it should. This patch introduces a new
    funcation named `wcmIsSiblingDevice` which is responsible for
    determining if two devices are part of the same tablet. It includes a
    slightly stricter (but still imperfect) check to reduce the number of
    false-positives in the linking process.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit ec64bcf9fe6d4ac5f8b7c56a7e001ad63c31060b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 19 15:36:51 2014 -0700

    test: Use X11_LIBS when building xsetwacom_test
    
    Missed in c49463f.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 3deb7c7a3b001f1178cfb339efc5e3d6d8de181a
Merge: 084ee1f4 c49463f7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 20 08:23:56 2014 +1000

    Merge branch 'wacom-inputattach'

commit 084ee1f41a948db43204e1794cdf19d3a0bd7c41
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Mar 12 16:12:05 2014 +0100

    Add server managed fd handling
    
    This mostly consists of skipping common fd handling when server managed fds
    are in used, the rest is handled by xf86OpenSerial and our wcmClose
    xf86CloseSerial wrapper.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 52fe01c0a728f58f8920358a6de4c3efe1dd354b
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Mar 12 16:12:04 2014 +0100

    Add a wcmClose helper function
    
    This is a preparation patch for adding server managed fds support.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cf3c7c763fdef96f2c82a0e891693a086f324d96
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Mar 12 16:12:03 2014 +0100

    wcmUSB: Don't directly dereference common->fd
    
    common->fd is intended to share the fd between different InputInfo structs,
    and that is the only thing it should be used for. With server managed fds,
    the fd management will all be done by the server and common->fd will never
    get set, so nothing outside of wcmDevOpen / wcmDevClose should use it.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c49463f7caa50c18817ca16221d07c4fd8c4816e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 20 07:34:48 2014 +1000

    tools: split the CFLAGS into binary-specific ones
    
    Also, xsetwacom only needs the library, not the server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 24c660a8ed16c04ed938355c9c2009af476d7638
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 19 07:55:38 2014 +1000

    conf: ship a udev rule and a systemd service file for inputattach
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 47c983478ab1094c02a5b3251cf5564153730645
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 10:49:22 2014 +1000

    tools: add an inputattach-like tool
    
    Does more or less the same thing as inputattach, but tries to be a bit smarter
    about the baud rate depending on the tablet model. And re-tries if the baud
    rate is wrong.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit bc479f8804762987403d8fc2a65dfaf5fbee342d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 10:58:20 2014 +1000

    tools: add colon after TOUCH output
    
    For consistency with the TABLET output.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit a36367b684a8f0a478706610a54a71383bee7aa3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 10:56:57 2014 +1000

    tools: re-enable wait-for-tablet
    
    We need this to actually time out, otherwise we can't tell whether we have the
    wrong baud rate set. That's fine for a debugger where a human will terminate,
    but not for the upcoming inputattach clone.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit a8c9bd963b3cb3b0573ea73588d3e313a7e4f693
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 10:31:15 2014 +1000

    tools: split out the debugger into the actual debugger and shared code
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit e8cd8e1923a7b8fa02aa4700ec7062f6fd468f7a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 10:27:53 2014 +1000

    tools: localise the remaining global variables
    
    Only one left is verbosity now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 65189408beb9447b3166a7e1a5d4f30c347c7218
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 17 09:38:45 2014 +1000

    tools: drop double-call to tcsetattr
    
    We merely modify the flags, might as well just send one call
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 92a0b59588607dfa0ed18b40a0e0dc2dbb56572f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 17 08:58:46 2014 +1000

    tools: use perror instead of fprintf
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 85e6c88e43ff6e47c967117173cbf0d304dada6f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 17 08:00:45 2014 +1000

    tools: open serial devices with O_NOCTTY
    
    Probably doesn't make much difference, but won't hurt if we ever send the
    wrong path name.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 49e2b80829ab830aee272035fb390ee581849a0c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 17 09:46:21 2014 +1000

    tools: rearrange serial settings
    
    If the device was't properly closed/reset after a crash, tcgetattr() will
    fail. Ignore that error and apply the settings we want nonetheless, in most
    cases the device will just come back normally.
    
    And to do so, merge setting the baud rate together with the rest so we only
    have one call. Otherwise we can't apply the baud rate settings without
    potentially submitting garbage to the driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 4f0f0e3510ac9afc671ac0dc2cf23e5ab7d5fb70
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 10:20:53 2014 +1000

    isdv4: inline all isdv4 parsing functions
    
    Stops compiler warning if any of them aren't used.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 51772cdb89db307a9751e0c14f407f49fe49cd4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 18 09:45:04 2014 +1000

    Add includes to isdv4.h
    
    The header should include what it needs, not rely on other files to include
    the required bits.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit f80f0b3cfa8c7e955993a2daf4192b04997ece3a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 17 08:52:33 2014 +1000

    configure: both clients and drivers need the protocol headers
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 3d7a6eb533cfbad4aafa018ece9af2e1b488a798
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 19 15:23:40 2014 +0100

    Free (WacomToolPtr)->name when freeing the tool list
    
    Currently the name member is set in wcmParseSerials() only, however
    it is dynamically allocated. thus free it when destroying the structure
    which contains it.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 93d232ac0140251b9b3ee4fe6e11ee65553f8284
Author: Egbert Eich <eich@suse.com>
Date:   Fri Feb 7 20:24:39 2014 +0100

    Log when the pen device appears to be too worn out
    
    Worn out pens have an initial pressure != 0. If this pressure
    persists while the pen is in proximity and still exists when
    going out of proximity, warn about worn out tool.
    Some devices seem to send a zero pressure when going out of
    proximity. Thus we record the last pressure when still in
    proximity.
    Also we count the number of events we have received while in
    proximity so the risk of false reports on 'quick taps' is lower.
    
    This condition may also occur intermittently on abusive operation.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 77a7ac02107a00934c98b1955a17a2f5c0614bcf
Author: Egbert Eich <eich@suse.com>
Date:   Fri Feb 7 20:42:22 2014 +0100

    Add more detailed messaging in code that handles abnormal situations
    
    Log which serial numbers have been force-proxied out.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 591474f9fac0e06c48abed4edfda22edb3e36cf9
Author: Egbert Eich <eich@suse.com>
Date:   Tue Feb 11 12:54:04 2014 +0100

    Avoid 'division by zero' in xf86ScaleAxis()
    
    If minPressure == wcmMaxZ then the range left to scale is 0. Catch
    this condition and act appropriately.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 7e56966e917d9389965910c9d28f4047d51d4349
Author: Egbert Eich <eich@suse.com>
Date:   Fri Feb 7 19:36:28 2014 +0100

    Remove test if pressure falls below the minPressure
    
    This code is entirely irrelevant as it is called immediately after
    rebasePressure() which already ensures that minPressure is the
    minimum of minPressure and current pressure unless one mistrusts
    the implementation of min().
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6fc13b20dc1178c6417c658a1bd6a110fd507244
Author: Egbert Eich <eich@suse.com>
Date:   Thu Feb 13 14:01:04 2014 +0100

    Get rid of spurious 'format not a string literal' warnings
    
    With '-Wformat-nonliteral' gcc kindly warns us that it cannot check the
    arguments of a scanf statement as the format string is not literal.
    This happens if the format string itself is pointer.
    Since the list of format strings only has two elements the same thing
    can be achieved in code directly.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit b5cdd510f990ea49e141109712cab34a32d14f4d
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 12 13:04:22 2014 +0100

    Fix spurious '-Wshadow' warning
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5706862f571da1d182ff0b17a697cbd1779d3be3
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 12 13:22:38 2014 +0100

    Fix '-Wuninitialized' warnings
    
    Pinning variables to some value to fix warning about uninitialized
    variable.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 96c9beedecccb1dbdd2a24294d25ed796639fd02
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 12 18:27:43 2014 +0100

    Fix warning about discarding 'const' qualifier
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit e72f0c2146d3b84083561961c3eedc3ca003dca6
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 12 17:42:25 2014 +0100

    Make tested static functions non-static for test suite
    
    This gets rid of the hack which redefines 'static' to make
    every static function in the driver non-static for the test
    suite.
    Instead we use a macro instead of 'static' in the function definition
    of each function used in the test suite which we can set to empty
    when compiling the test suite.
    At the same time we create a declaration for each of those functions
    which gets us rind of about a bazillion compiler warnings.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f18e31da214fc4ef625c398429a07063032edfe0
Author: Egbert Eich <eich@suse.com>
Date:   Fri Feb 14 00:16:58 2014 +0100

    Add missing symbol xf86PrintChipsets() for test suite
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 710ec7a47d90778bd419c75f5bc9b391664f6670
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 12 09:03:27 2014 +0100

    Fix loads of 'redundand declaration' warnings in test suite
    
    Most symbols in fake-symbols.h were already declared in the
    Xserver header files from the SDK which are also included.
    These produce loads of compiler warnings.
    The few remaining ones can be added by including xf86_OSproc.h
    and exevents.h.
    Then then all function declarations for the stub functions
    can be deleted.
    Relying on SDK provided headers makes providing stub functions
    cumbersome due to frequent non-atomic API/ABI changes.
    To work around this one would have to avoid SDK headers completely,
    though.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1c163bd2ef9689897fab728ede96b6baafc0d597
Author: Egbert Eich <eich@suse.com>
Date:   Wed Feb 12 08:53:12 2014 +0100

    Fix type mismatch in test suite
    
    Add CONST which expands to either 'const' or nothing depending
    on ABI version.
    This eliminates a compiler error.
    
    Signed-off-by: Egbert Eich <eich@suse.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2e125f4f2993220652b375c1f934516ed0b79c67
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 10 09:55:32 2013 -0700

    Have Lenovo "ISD-V4" (0x6004) sensor use wacom driver
    
    https://bugs.freedesktop.org/show_bug.cgi?id=66891
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 06585fc2131379a70b67a4cb3a8d48d55bc2c9b3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 20 11:13:11 2014 +1000

    conf: add N-Trig DuoSense to our matched devices
    
    That device has a pen and an eraser tool, as well as a touch device. Handle it
    with the wacom driver by default, the evdev driver isn't quite up to scratch
    here.
    
    This also fixes a missing match in the .fdi file for the base N-Trig devices -
    just in case.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e6aea4a61a5e5d464bf5419abfbc26c909d87dc9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 1 14:48:05 2013 +1000

    Check return value of EVIOCGPROP ioctl
    
    Doesn't change anything functionally since prop is 0 anyway but this static
    analyzers shut up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 2bd942fa6dcaf02c1b825878c3d89badd9319a7f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Oct 10 16:14:29 2013 -0700

    Decide WCM_LCD by kernel property
    
    kernel 2.6.38 introduced INPUT_PROP_DIRECT to indicate a device is
    a direct touch (onscreen pointer) device. Use it so we do not
    have to add individual devcies for that feature.
    
    When INPUT_PROP_DIRECT was added, INPUT_PROP_MAX and EVIOCGPROP were
    also defined. So, we only need to make sure INPUT_PROP_DIRECT is defined.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b154cfa766ce9497379a5cfa38fff64e7d89440b
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Oct 10 16:13:55 2013 -0700

    Fix missing pad/expresskey events issue
    
    Setting PAD_ID should not be limited to just tablets that use
    generic BTN_* events. Also, on touch enabled devices, we miss
    pad events when touch events are filtered/disabled. Walk through
    all channels to make sure all channels that have changed values
    are processed.
    
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 139aa56e3bb6025826413335f0f7e29d768baeb4
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Oct 10 16:11:47 2013 -0700

    Threshold applies to pen tools only
    
    This patch also removes redundant device name in X_PROBED messages.
    
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5395d18c4bbaa0d9ea96617ad41bd94848fb05e9
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 27 16:42:39 2013 -0700

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

commit eef947af1447df58099a005834de394edb4b03d0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Sep 19 17:08:13 2013 -0700

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

commit 6cadaf2eabb91e47963054e1628374861fea6209
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 11 09:55:46 2013 -0700

    Correct return value of special_map_button
    
    The 'special_map_*' functions called by 'parse_actions' are expected
    to return a count of the number of words of input they have consumed.
    The 'special_map_buttom' function errounously returns the number of
    actions added instead, causing the program to potentially skip over
    requested actions which follow a list of "button" actions.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit cde2718ac432f5d745b9ff5ccf6d4f8c2f4fc499
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 11 09:30:37 2013 -0700

    Fix buffer overflows in 'special_map_*'
    
    Each of the 'special_map_*' functions is given free reign to write
    to the end of a buffer, but is never given the size of the buffer
    itself. It is trivial to trigger an overflow simply by feeding the
    program more actions to perform than space to store them.
    
    This patch adds an argument to each function which contains the
    buffer's size. The functions check for sufficient space before
    writing to the buffer and will print out an error message if
    it isn't available.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 59086ba4f5caf4cf6f52f80b5ca36144a882daa5
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Sep 10 16:42:22 2013 -0700

    Add support for Intuos Pro series
    
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cb14924a2a5be21c8525ca70932ab8b5f0f99752
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 4 17:04:13 2013 +1000

    strdup the option key/values in our input_option_new
    
    This is a interface for servers with ABI < 14 (up to server 1.11).
    The server version of it strdups the values, so we must do the same.
    
    Otherwise the values assigned to the InputOption list in
    wcmOptionDupConvert are freed during xf86OptionListFree().
    
    That later causes a SIGABORT when NewInputDeviceRequest starts using
    those options.
    
    https://sourceforge.net/p/linuxwacom/bugs/233/
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 39c4c7fca7db19ac550332fa53d0d4f58a26f67f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Aug 31 14:35:58 2013 +1000

    Print list of supported models on wcmPlug
    
    When the driver starts, print the list of supported models. This should
    help with any questions like "does my driver support this or that model".
    
    For those models that don't have a defined name, print "usb:1234:5678"
    instead, so users can at least try to match the usb IDs.
    
    Sample log output:
    [ 25950.166] (II) wacom: Driver for Wacom graphics tablets: PenPartner, PenPartner,
            Graphire, Graphire2 4x5, Graphire2 5x7, Graphire3 4x5, Graphire3 6x8,
            Graphire4 4x5, Graphire4 6x8, BambooFun 4x5, BambooFun 6x8,
            Bamboo1 Medium, Graphire4 6x8 BlueTooth, CTL-460, CTH-461, CTL-660,
            CTL-461/S, Bamboo Touch, CTH-460/K, CTH-461/S, CTH-661/S1, CTH-461/L,
            CTH-661/L, Intuos 4x5, Intuos 6x8, Intuos 9x12, Intuos 12x12,
            Intuos 12x18, PTU600, PL400, PL500, PL600, PL600SX, PL550, PL800,
            PL700, PL510, PL710, DTI520, DTF720, DTF720a, DTF521, DTU1931,
            DTU2231, DTU1631, Intuos2 4x5, Intuos2 6x8, Intuos2 9x12,
            Intuos2 12x12, Intuos2 12x18, Intuos2 6x8 , Volito, PenStation,
            Volito2 4x5, Volito2 2x3, PenPartner2, Bamboo, Bamboo1, Bamboo1 4x6,
            Bamboo1 5x8, Intuos3 4x5, Intuos3 6x8, Intuos3 9x12, Intuos3 12x12,
            Intuos3 12x19, Intuos3 6x11, Intuos3 4x6, Intuos4 4x6, Intuos4 6x9,
            Intuos4 8x13, Intuos4 12x19, Intuos4 WL USB Endpoint,
            Intuos4 WL Bluetooth Endpoint, Intuos5 touch S, Intuos5 touch M,
            Intuos5 touch L, Intuos5 S, Intuos5 M, Cintiq 21UX, Cintiq 20WSX,
            Cintiq 12WX, Cintiq 21UX2, Cintiq 24HD, Cintiq 22HD,
            Cintiq 24HD touch (EMR digitizer), Cintiq 13HD, DTK2241, DTH2242,
            Cintiq 22HDT, TabletPC 0x90, TabletPC 0x93, TabletPC 0x97,
            TabletPC 0x9A, CapPlus  0x9F, TabletPC 0xE2, TabletPC 0xE3,
            TabletPC 0xE5, TabletPC 0xE6, TabletPC 0xEC, TabletPC 0xED,
            TabletPC 0xEF, TabletPC 0x100, TabletPC 0x101, TabletPC 0x10D,
            TabletPC 0x4001, usb:172f:0024, usb:172f:0025, usb:172f:0026,
            usb:172f:0027, usb:172f:0028, usb:172f:0030, usb:172f:0031,
            usb:172f:0032, usb:172f:0033, usb:172f:0034, usb:172f:0035,
            usb:172f:0036, usb:172f:0037, usb:172f:0038, usb:172f:0039,
            usb:172f:0051, usb:172f:0052, usb:172f:0053, usb:172f:0054,
            usb:172f:0055, usb:172f:0056, usb:172f:0057, usb:172f:0058,
            usb:172f:0500, usb:172f:0501, usb:172f:0502, usb:172f:0503,
            usb:1b96:0001, usb:17ef:6004
    [ 25950.167] (II) Using input driver 'wacom' for 'Wacom Intuos4 6x9'
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 3f95c4c58afd25e7c8a3ab18dad936f615cfd189
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jul 15 10:09:40 2013 -0700

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

commit b25eb646c36d19a46c561b3c091adb5c86c563df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 12 10:28:08 2013 +1000

    Fix build on ABI < 16 - touch_mask isn't defined
    
    Fixes: http://sourceforge.net/p/linuxwacom/bugs/232
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4982cebdadb32376c3b1964616ede44a712c8a24
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jul 10 11:49:29 2013 -0700

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

commit 67daf21bdb7b32c27818bffaf56849a522d23477
Author: Ping Cheng <pingc@wacom.com>
Date:   Fri Jun 7 15:34:03 2013 -0700

    Unify wcmFingerMultitouch and wcmSendTouchEvent
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit d0a5c68b2582fc6bdcee1d949913f78c0651b1a6
Author: Sjoerd Simons <sjoerd@luon.net>
Date:   Sat May 25 01:06:16 2013 +0200

    Transform touch events just like all other events
    
    Transform touch coordinates in the same way as other events coming from
    the wacom driver otherwise setting for exmaple the Wacom Rotation
    property has no effect
    
    Signed-off-by: Sjoerd Simons <sjoerd@greynoise.nl>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 8e5b56e7a461c416d5b29f338bbd749626452b5d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jul 10 13:50:55 2013 -0700

    Revert "Transform touch events just like all other events"
    
    This reverts commit bfb56bf858e08d95156d52cec9744d3d3251b59c.
    This commit will be split in two to provide proper credit for
    each of the two authors.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 85b62fa528564607875a88babab11dd6d2481b04
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Jul 2 11:25:59 2013 -0700

    Add support for 0xEC.
    
    It is a Wacom device found in Samsung Ativ Smart PC Pro 700t.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a2c57c0104e2aee3e3f2544b094d443e20f076cb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 3 09:35:30 2013 +1000

    Revert "Add support for 0xED."
    
    Typo in commit message, tablet is actually 0xEC. Revert and re-commit to
    make the patch easier to find.
    
    This reverts commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14.

commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Jul 2 11:25:59 2013 -0700

    Add support for 0xED.
    
    It is a Wacom device found in Samsung Ativ Smart PC Pro 700t.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>

commit 361ac83d06159ec02bf33237eb5ec24652c8b700
Author: Ping Cheng <pingc@wacom.com>
Date:   Fri Jun 14 16:03:18 2013 -0700

    wacom 0.21.99.1
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>

commit 4f7d24c2138685a9881c7b5314747dc17d7cc147
Author: Ping Cheng <pingc@wacom.com>
Date:   Fri Jun 14 15:57:16 2013 -0700

    Add xf86OptionListFree for distcheck
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>

commit bfb56bf858e08d95156d52cec9744d3d3251b59c
Author: Ping Cheng <pingc@wacom.com>
Date:   Fri Jun 7 15:34:03 2013 -0700

    Transform touch events just like all other events
    
    Transform touch coordinates in the same way as other events coming from
    the wacom driver otherwise setting for exmaple the Wacom Rotation
    property has no effect
    
    Signed-off-by: Sjoerd Simons <sjoerd@greynoise.nl>
    Acked-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Ping Cheng <pingc@wacom.com>

commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Jun 6 18:25:52 2013 -0700

    Don't emulate a mouse when multitouch is enabled
    
    Currently when enabling XI 1.2 multitouch events the Wacom driver does a
    strange mix of emulating a mouse (when there is only touch) and
    switches suddenly switches to be a touchscreen when 2 fingers are down.
    
    Change this to only send touch events when using multitouch mode, such
    that the touchscreen works the same as other touchscreens. This enables
    applications to properly respond to one finger touches (e.g. panning
    in GTK+).
    
    The X server core will still send emulated input events to applications
    not supporting multitouch, so there shouldn't be a regression for those
    applications.
    
    Signed-off-by: Sjoerd Simons <sjoerd@greynoise.nl>
    Acked-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Ping Cheng <pingc@wacom.com>

commit 3578b919360e7a4d6cfbbe4c33c3084be0c6d5c9
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri May 17 15:11:39 2013 -0700

    Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242.
    
    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 2dffd217b112c346c6c0b07e82cb069a3cf84246
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 9 13:31:38 2013 +1000

    Don't init abswheel2 valuator (7th val) if we don't have one
    
    InitValuatorAxisStruct() will return if the axisnum > num_axes and not
    initialise anything which is why the current code worked without issues.
    
    With a new patch to the server this will now complain with an error message
    to the log.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit b350a95717ac04a0bed1d836a0b90c94724dc597
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 9 13:45:15 2013 +1000

    Free the device name after reassigning
    
    When hotplugging the first tool (usually the stylus) changes pInfo->name to
    the name + tool name. Thus, free the original one.
    
    And strdup the oldname so we can unconditially free it, regardless of
    whether we changed the actual device name or not.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 06abd7a61323034bd58e745a18f0b08723de0064
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 9 13:14:45 2013 +1000

    Free the touch mask on shutdown
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 6d26cb9b9f71bfec1c388a72dcbb09f09f31bd04
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 9 11:21:40 2013 +1000

    Free input attribute's product
    
    This is copied first by DuplicateInputAttributes, then asprintf makes
    another copy.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit dff311a44c13687c12e86d8233f15bb0f8868361
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 9 10:55:33 2013 +1000

    Free duplicated option list after conversion to InputOption
    
    The duplicated list is a copy (as the comment in the server says) and thus
    must be freed.
    
    ==27895== 947 (40 direct, 907 indirect) bytes in 1 blocks are definitely lost in loss record 266 of 311
    ==27895==    at 0x4A06B6F: calloc (vg_replace_malloc.c:593)
    ==27895==    by 0x4E538C: addNewOption2 (Flags.c:203)
    ==27895==    by 0x4E5401: xf86addNewOption (Flags.c:216)
    ==27895==    by 0x4AEB24: xf86AddNewOption (xf86Option.c:347)
    ==27895==    by 0x4AE54B: xf86OptionListDuplicate (xf86Option.c:152)
    ==27895==    by 0xB74D139: wcmOptionDupConvert (wcmValidateDevice.c:382)
    ==27895==    by 0xB74D408: wcmQueueHotplug (wcmValidateDevice.c:515)
    ==27895==    by 0xB74D645: wcmHotplugOthers (wcmValidateDevice.c:568)
    ==27895==    by 0xB742DA2: wcmPreInit (wcmConfig.c:599)
    ==27895==    by 0x4C1ACF: xf86NewInputDevice (xf86Xinput.c:846)
    ==27895==    by 0x4C2014: NewInputDeviceRequest (xf86Xinput.c:989)
    ==27895==    by 0x4DD72C: device_added (udev.c:231)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit bc095d579bc6b1380080c83c4e5f6df173364b76
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 9 10:39:39 2013 +1000

    Plug memory leaks left by xf86SetStrOption
    
    xf86SetStrOption() returns a strdup'd string that needs to be freed after
    use.
    
    This requires some const char* → char* changes too, for things that were
    never really const char* to begin with anyway.
    
    wcmEventAutoDevProbe() can use xf86CheckStrOption so it too returns a
    strup that we can free lateron.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 6940e481a4aadfbc4c87362e1461a43b296bc8b1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 30 14:40:07 2013 +1000

    Purge TILT_REQUEST_FLAG
    
    Write-only value, obsolete as of xf86-input-wacom-0.10.4-45-gba90433
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 1329374edbd8bd5a375d32829d0f6153f84e6b6f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 2 09:34:56 2013 +1000

    man: clarify how to configure keys on higher shift levels in xsetwacom
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit d0dbb34e524ebb58bb9a5a623d2fa96a1470516f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 29 14:47:06 2013 +1000

    xsetwacom: map a bunch of special symbols
    
    Punctuation marks and others map to XK_* keysyms but only in their named
    form, not in their single-character symbol form.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit e50725269dd76c4a3c92c84dd4413034a8937df0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 29 14:46:18 2013 +1000

    xsetwacom: if we fail to map a string, try as special key or warn
    
    If a string comes back with a KeySym of 0, try again as a special key. And
    if that fails too, print a warning.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 915a64589f34a0593fe55afa82de30c4415c3020
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 29 14:14:43 2013 +1000

    xsetwacom: add special mappings for Home, End, Delete
    
    These three are likely written as home, end, del, so let's try to
    understand that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit c1f31c0ab16bc11614d6cfbd9bc16e4714732279
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Apr 29 13:20:58 2013 -0700

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

commit 5c6bd8d45ca2358d42fdd028112e724c691774ba
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Apr 19 18:14:59 2013 -0700

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

commit 8d804cdf31bfbf9ec46ee15ab1a58e63f770c2b8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 18 14:51:37 2013 -0700

    Fix const warnings in wcmSetActionProperty
    
      CC       wcmXCommand.lo
    ../../src/wcmXCommand.c: In function 'wcmSetActionProperty':
    ../../src/wcmXCommand.c:460:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
        case BadMatch: msg = "BadMatch"; break;
                           ^
    ../../src/wcmXCommand.c:461:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
        case BadValue: msg = "BadValue"; break;
                           ^
    ../../src/wcmXCommand.c:462:17: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
        default: msg = "UNKNOWN"; break;
                     ^
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 135e6f60df1398f2c5145535f68e06703ccd77b4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Apr 18 14:47:17 2013 -0700

    Remove unused variable
    
    src/wcmUSB.c:451:14: warning: unused variable 'private' [-Wunused-variable]
      wcmUSBData* private = common->private;
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit dfe4d23ef30db20e726605599c1c6bed2aa20a3a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 26 11:39:55 2013 +1000

    Correct comment for Sample and Suppress property
    
    The data in the property is actually the other way round. Oops.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ad952fe2800c875b2f0b4663358d454d793ce57f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Mar 8 17:04:42 2013 -0800

    add support for 0x10d
    
    It is a Wacom device found in Fujitsu Lifebook T902.
    
    Signed-off-by: Stephan Frank <sfrank@cs.tu-berlin.de>
    Acked-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 7a1aadb24b6573809d7324f2549bed749ad1a7f2
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Mar 7 14:11:30 2013 -0800

    Resume button events for pucks
    
    wcmBTNChannel was statically assigned to PAD_CHANNEL by commit 1f9bf45b, which
    excluded button events for CURSOR tools. This patch allows usbParseBTNEvent
    to process button events for both CURSOR and PAD tools.
    
    wcmBTNChannel is removed from wcmUSBData since we do not need it anymore.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit c3b4e869924291ee1ec72a2f02fc1986873efe92
Author: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Date:   Mon Mar 4 18:33:03 2013 +0100

    Make touchscreens (WCM_LCD) direct touch devices
    
    Tested with a tablet pc, allowing finger scrolling in GTK3.
    
    Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit 9077b12cd6ef7a9772aaea00b52baad64471e4e4
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Mar 5 16:46:27 2013 -0800

    Consolidate calls to wcmEvent into one statement
    
    The extra wcmEvent call was to deal with generic PAD events received
    without motion events in the same packet. Those PAD events would be
    filtered out by the device type retrieving code later.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit db17462c0e85f880647f23a0e8bbfd4d20a38303
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Mar 5 16:45:45 2013 -0800

    Clean up device_type initialization for tool on tablet
    
    usbInitToolType retrieves device type from the kernel when tool
    is on the tablet at X server startup. No need to do it again later.
    
    Since kernel does not have a specific device type for PAD, we have
    to check the actual events to set its type.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 6f9826217f50df8e315d3a7d694a4daf62f32c38
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Mar 5 16:44:52 2013 -0800

    Update MAX_CHANNELS definition
    
    Make room to report pen and touch events simultaneously
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 1bca5eefa22afcce1ebe33812e7d17872ceeafca
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 5 09:41:47 2013 +1000

    Handle DEVICE_ABORT on input ABI 19.1
    
    And do nothing.
    
    USB devices are handled by the kernel, so we don't need to reset the HW.
    ISDV4 devices don't get reset on normal shutdown anyway, so we don't need to
    do anything here either.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ab53739dafee0e0f4a534220501bd067193ff109
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 4 09:46:17 2013 -0800

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

commit 256567c6ad9ec120098d9dbf35e9dc609114bc9d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Feb 26 10:40:53 2013 -0800

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

commit be0b40d2453ba03d99a6dab460ad4007c4d97161
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Feb 26 09:39:20 2013 -0800

    Fix warning: format expects argument of type
    
    ../src/wcmXCommand.c: In function 'wcmCheckActionProperty':
    ../src/wcmXCommand.c:387:3: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit dc5608a2911cf0698db1dd083250e37b4a31d58f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Feb 22 11:14:21 2013 -0800

    Support pen/touch arbitration across product ids
    
    Devices with different product ids for pen and touch, such as
    Cintiq 24HD and DTH 2242, were added recently. Applying arbitration
    only for tools with same product id is not enough.
    
    However, we want to make sure tools with same product id are lined
    properly first. That's why the same routine is repeated instead of
    combined.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 120f72f8f3fe5e74ed87c7ee3828243ba4ba054b
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Feb 21 19:01:25 2013 -0800

    Arbitration applies to puck/Wacom mouse as well
    
    We do not allow finger competes with CURSOR.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 06afd180edad2b39dc717d266f5012ca93bd2d8f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Feb 21 19:01:01 2013 -0800

    Fix pen and touch arbitration
    
    Arbitration did not work as expected since common is meant for tools
    on the same logical port, not for tools of the same physical device
    or of the same product id. Plus, not all devices support touch.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 2ab2dd3d0d2bcd353730f11782aa64bb9dc58b2c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 17 17:42:24 2013 -0800

    Don't reset properties on checkonly
    
    We shouldn't make *any* change to the state if checkonly==true, but
    we've been resetting properties anyway. This blocks off the calls
    to the reset functions to prevent them from being called if it's
    just a drill.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5b9c2d84dfc206ee245ba22b92a6d1d824cff3f0
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Jan 28 15:59:30 2013 -0800

    Add Touch option to xsetwacom manpage
    
    We did not explicitly add this option when worked on the manpage
    since we thought Gnome control center (g-c-c) or something else
    in userland would take care of touch (as well as its gestures).
    However, I see no sign of getting touch in g-c-c soon. Let's take
    care of touch uers here for now.
    
    Wacom manpage is also updated accordingly.
    
    Reported-by: Nikolai Neff <gefrierbrand@users.sf.net>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 9a664ab7b99ca68e29f73196c216b3a6918325d5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jan 23 11:59:37 2013 -0800

    include: Move wacom-util.h after X11 headers
    
    Combined with the "#ifndef" in commit c95c1f2c, this fixes the compiler
    warnings generated about ARRAY_SIZE being redefined.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 352f33964f606370cf2ad6f4edf0800f18c8ed15
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jan 23 11:13:07 2013 -0800

    Have wcmFindActionHandler return success/failure directly
    
    We can guarantee that the out arguments are non-NULL if the property
    was found, so return a boolean instead of relying on the caller to
    check for non-NULL results.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 59925bd45b714376b7f2ba07d0e443ed8db24861
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 17 17:04:38 2013 -0800

    NONE is not a valid action, and NULL a bad value
    
    While the NONE Atom indicates that the driver should reset the
    action at the index it resides it, it is not *itself* a valid
    action. This patch prevents us from attempting to set NONE as
    an action.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5d5be5106183961da2b1e793c4a62e59c1274e01
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Dec 18 12:59:04 2012 -0800

    Have wcmSetActionProperty run checkonly
    
    Instead of checking only the 'actions' property, also check the
    individual 'action' properties as well. We obviously won't be able
    to correctly apply the former if the latter fails midway through.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3f5bc05608d59d08f0ce600afcc9a56acd294ab2
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 17 17:24:43 2012 -0800

    Pass errors from wcmSetActionProperty up the stack
    
    Errors when setting an action property should not be swallowed. Note
    that because the containing function does not bother to call this
    function 'checkonly', clients still can't find out about errors
    until its too late. We'll fix this in the next commit.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ed561f701e4b2ba60fb5d8abf881e816118880a8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 22 14:09:29 2013 +1000

    Setting an invalid action property should return an error
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 33cccd3fa4e5185857b2248b56509a97ed19df84
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 17 16:56:06 2012 -0800

    Have wcmFindActionHandler properly handle wcmFindProp error
    
    If wcmFindProp cannot find the given property, it will return a
    negative error code. At the moment, this is taken as the success
    condition(!?) for the strip_actions case... Aside from being
    wrong, this has the potential to cause some nasty memory corruption.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2d38dac523145e3157a3b5fc200f13254f56219c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 17 16:55:30 2012 -0800

    Improve wcmFindProp readability
    
    The existing code is needlessly hard to follow. It should return
    immediately upon success, and unconditionally bail if it never
    succeeded.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7e418191a29f681331dd0134c8887d641d737410
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Jan 17 16:51:22 2013 -0800

    Increase maximum allowed X11 button number
    
    Actions specify X11 button numbers that should be generated when
    performed. The maximum button number that could be used in an event
    has been raised from the driver-imposed limit (WCM_MAX_BUTTON) to
    the server-imposed limit (WCM_MAX_X11BUTTON).
    
    This feature is necessary for gnome-settings-daemon to work properly.
    To reliably identify each touch strip and ring, g-s-d assigns each
    a high button numbers to send for each direction. Without this
    patch, the driver ignores the actions set by g-s-d and continues
    to send whatever the default action is instead.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 082f37feee3170521df4a1a1bbd91e0274282bf1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Dec 18 12:58:45 2012 -0800

    Improve logging of X property setting
    
    Sprinkles a few extra DBG() calls into the code to make it a little
    easier to track down issues with property-setting code.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b6bd20a660f6c682f9de3372b3f1a636a34d9b65
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 18 08:43:52 2013 +1000

    test: replace INCLUDES with AM_CPPFLAGS
    
    see https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
    
    - Support for the long-deprecated INCLUDES variable will be
      removed altogether in Automake 1.14.  The AM_CPPFLAGS variable should be
      used instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 4cffb337d7dc43d17e11a28f70a8be11f21d74ff
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 10 11:30:15 2013 +1000

    Fix a debug message not parsed by sigsafe printf code
    
    The server doesn't interpret %g, use %f instead. tbh, right now it doesn't
    interpret %f either, but there's patches on the way for that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit b7a2d8e7eb57fb11ec7753d555ab479475fe5230
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 10 11:25:07 2013 +1000

    Drop unused maxWidth/maxHeight
    
    These two are never set to anything but 0 since
    xf86-input-wacom-0.10.10-19-g6f5f29b
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit a7de9daa67afbf0c721e681809be2fbe519d26c8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 19 12:37:03 2012 +1000

    Fix indentation in usbStart()
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c95c1f2c2d449f78eae109b927db85db05ab9a6f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 20 13:21:37 2012 +1000

    include: don't redefine ARRAY_SIZE
    
    The server provides this macro in its headers, so only redefine it where
    needed (for the tools)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bc2de318b5ad131fb60d3c5a057c185f764969a1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jan 2 11:15:53 2013 -0800

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

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: 1a8db01e 7a875941
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>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 5d85fe22a2b8565b80185c110d10a738b51794fb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 3 09:02:37 2012 +1000

    Stop generating .gz files
    
    One tarball is enough and bz2 is common enough that we don't need both.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 3ac24ba7aea62f1a12d73a81fca87a4bcfa5568e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 29 10:16:03 2012 +1000

    Don't init the rotation property on the pad
    
    Rotation doesn't do a lot on a device without usable axes
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit f5b89e44aa70d5297330014694c04d46f6e96a72
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jul 9 09:56:54 2012 -0700

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

commit 35ba79a91257e9da5c8d749be382ec1841c78057
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jun 27 15:25:45 2012 -0700

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

commit ed550599a71defd879ef6a660ab64db5f2961394
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jun 27 11:07:39 2012 -0700

    Cleanup wcmInitAxes
    
    No functional change.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 6bf3c65d44ce343bf8d2f0d0f1bb9bc86aba3fe1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Jun 27 11:00:44 2012 -0700

    Provide consistent 'filler' axes to X
    
    Axes which aren't used by specific devices 'leak' some of the
    settings of the prior axis while creating the necessary 'filler'
    axis. This patch resets the variables to their proper defaults
    for each valuator's initialization.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 1e14dda8a512b90cf9dd5d830d1e1257e80651c4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Jun 22 12:44:47 2012 -0700

    Create a wrapper for InitValuatorAxisStruct
    
    wcmInitAxes calls InitValuatorAxisStruct seven times, with each
    call requring two ifdefs each. To keep this function readable,
    this patch adds a wrapper function that centralizes all that
    ifdef uglyness into a single spot.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 00560b81d700d04518beef9cf5bfa7c58b4a8d51
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jun 25 12:21:44 2012 -0700

    Find mouse buttons on pad devices if no generic buttons found
    
    Devices like the Graphire4 and Bamboo-series have Pad buttons
    which emit "mouse button" events (e.g. BTN_FORWARD) instead of
    the usual "generic button" events (e.g. BTN_0). Currently, the
    code considers the former to be valid for the Pad device only
    if the tablet doesn't also support a Cursor device. Devices
    with mouse buttons on the Pad *and* have a Cursor device
    (like the Graphire4 and very early Bamboos) end up declaring
    zero Pad buttons because of this, causing us to allocate
    an insufficient number of actions and thereby prevent the
    re-mapping of their forward and back buttons.
    
    This patch changes the condition from "no Cursor device exists"
    to "no generic buttons exist". In theory this can result in the
    Pad claiming it has buttons when none physically exist, but it
    shouldn't result in any problems.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 23b704aab02903954a2184708dcecf42ad896ac9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 22 16:04:45 2012 +1000

    xsetwacom: fix leak in set()
    
    move out: statement up to make sure we free values on error as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit bef544bef0be59f9fdff9231ce85cd41e4149975
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 25 10:09:37 2012 -0700

    Re-enable relative wheel scrolling from pad devices
    
    Commit 477a261e does not handle the case where relative wheel events
    come from a pad device. The Graphire4 produces such events, with the
    result that scrolling with one has been broken ever since.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6973a8e0256ba2b2d84ce73058da23b2fd1668c6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 11:16:03 2012 -0700

    Align returned type of wcmEventAutoDevProbe with expected type
    
    There's some cognitive dissonance when reading "return FALSE"
    in a function that returns a pointer (despite FALSE and NULL
    being equivalent).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fb22158f3361afa68808a10e2eece00617921faf
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:31:25 2012 -0700

    Fix warning: Re-scope variable in wcmPreInitParseOptions
    
    ../src/wcmValidateDevice.c: In function 'wcmPreInitParseOptions':
    ../src/wcmValidateDevice.c:801:9: warning: declaration of 'b' shadows a previous local [-Wshadow]
    ../src/wcmValidateDevice.c:708:22: warning: shadowed declaration is here [-Wshadow]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 19681d6a8bb0a4dbcf5fb9174d79ea6232ac895a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:02:09 2012 -0700

    Fix warning: Remove variable re-definition in wcmSerialValidate
    
    ../src/wcmISDV4.c: In function 'wcmSerialValidate':
    ../src/wcmISDV4.c:167:7: warning: declaration of 'n' shadows a previous local [-Wshadow]
    ../src/wcmISDV4.c:161:6: warning: shadowed declaration is here [-Wshadow]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit def7b5fd2776b0455eca09641df8ed1c5e17bd37
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri May 25 12:18:05 2012 -0700

    Fix warning: Swap empty string for NULL in wcmIsHotpluggedDevice
    
    ../src/wcmConfig.c: In function 'wcmIsHotpluggedDevice':
    ../src/wcmConfig.c:442:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type
    [enabled by default]
    In file included from /usr/include/xorg/xf86str.h:43:0,
                     from /usr/include/xorg/xf86.h:44,
                     from ../src/xf86Wacom.h:33,
                     from ../src/wcmConfig.c:24:
    /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b798ae8012a13a0dcaa903e0fdb4ad8e38106b41
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:22:30 2012 -0700

    Fix warning: Swap empty string for NULL in wcmIsAValidType
    
    ../src/wcmValidateDevice.c: In function 'wcmIsAValidType':
    ../src/wcmValidateDevice.c:139:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default]
    In file included from /usr/include/xorg/xf86str.h:43:0,
                     from /usr/include/xorg/xf86.h:44,
                     from ../src/xf86Wacom.h:33,
                     from ../src/wcmValidateDevice.c:23:
    /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit afac3b0430386d92d31623b065e9ed206e9cdcdd
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:20:23 2012 -0700

    Fix warning: Swap empty string for NULL in wcmNeedAutoHotplug
    
    ../src/wcmValidateDevice.c: In function 'wcmNeedAutoHotplug':
    ../src/wcmValidateDevice.c:574:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default]
    In file included from /usr/include/xorg/xf86str.h:43:0,
                     from /usr/include/xorg/xf86.h:44,
                     from ../src/xf86Wacom.h:33,
                     from ../src/wcmValidateDevice.c:23:
    /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit de33b3dffbb959ec77c9bd89c7d9d3e7a8451c15
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:18:17 2012 -0700

    Fix warning: Swap empty string for NULL in wcmIsDuplicate
    
    ../src/wcmValidateDevice.c: In function 'wcmIsDuplicate':
    ../src/wcmValidateDevice.c:85:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default]
    In file included from /usr/include/xorg/xf86str.h:43:0,
                     from /usr/include/xorg/xf86.h:44,
                     from ../src/xf86Wacom.h:33,
                     from ../src/wcmValidateDevice.c:23:
    /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cff344b105318854ae2b0a9dec3684be38c5ae02
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:16:16 2012 -0700

    Fix warning: Swap empty strings for NULL in wcmCheckSource
    
    Also cleans up variable scope.
    
    ../src/wcmValidateDevice.c: In function 'wcmCheckSource':
    ../src/wcmValidateDevice.c:37:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default]
    In file included from /usr/include/xorg/xf86str.h:43:0,
                     from /usr/include/xorg/xf86.h:44,
                     from ../src/xf86Wacom.h:33,
                     from ../src/wcmValidateDevice.c:23:
    /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmValidateDevice.c:52:4: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default]
    In file included from /usr/include/xorg/xf86str.h:43:0,
                     from /usr/include/xorg/xf86.h:44,
                     from ../src/xf86Wacom.h:33,
                     from ../src/wcmValidateDevice.c:23:
    /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d691c978d695c2b4882b4ba3e02178bd3aacddb3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:08:28 2012 -0700

    Fix warning: Constify 'name' argument of InitWcmAtom
    
    ../src/wcmXCommand.c: In function 'InitWcmDeviceProperties':
    ../src/wcmXCommand.c:175:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:179:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:186:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:194:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:197:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:201:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:205:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:209:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:212:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:216:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:220:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:225:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:228:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:234:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:238:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:244:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:249:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    ../src/wcmXCommand.c:254:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *'
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3639e07e837eefe7a6820899548ef0d6eb2d0722
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 12:05:35 2012 -0700

    Fix warning: Remove superflous 'event' pointer in usbParseBTNEvent
    
    ../src/wcmUSB.c: In function 'usbInitToolType':
    ../src/wcmUSB.c:1378:30: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 39145f819b745fe0122e70d0686d3b4dbf80cca1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 11:52:06 2012 -0700

    Fix warning: Constify _WacomCommonRec.device_path
    
    ../src/wcmConfig.c: In function 'wcmPreInit':
    ../src/wcmConfig.c:507:26: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 912ed64c594bfc03b99b693df32fe3fa6a9c82c3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 11:41:12 2012 -0700

    Fix warning: Change default_options to be const
    
    ../src/wcmConfig.c: At top level:
    ../src/wcmConfig.c:212:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:212:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:213:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:213:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:214:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:214:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:215:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:215:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:216:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:216:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:217:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../src/wcmConfig.c:217:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 706d2a77396d9c912e1d9157359e07923c8c718b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 11:19:04 2012 -0700

    Fix warning: Have wcmEventAutoDevProbe return const
    
    ../src/xf86Wacom.c: In function 'wcmEventAutoDevProbe':
    ../src/xf86Wacom.c:527:5: warning: return discards 'const' qualifier from pointer target type [enabled by default]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1d203a20bd21f8bdb22e36e93b67b651dd73743c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 11:10:10 2012 -0700

    Fix warning: Remove superflous casts in getScrollDelta
    
    ../src/wcmCommon.c: In function 'getScrollDelta':
    ../src/wcmCommon.c:333:13: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast]
    ../src/wcmCommon.c:334:9: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast]
    ../src/wcmCommon.c:335:10: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast]
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2adab89eb2c73b7806aade5b422adba4056d8fd8
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon May 14 16:56:02 2012 -0700

    Add 0xED and 0xEF
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7ee27fee0741cc756dfd20a60afb3de1c9e0ed1b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed May 2 14:22:27 2012 +1000

    conf: add Intuos4 WL (PTK-540WL) to fdi file
    
    4709394d76267df05f8dfa7f13e6beb1f9c7394f added it to the xorg.conf.d
    snippet. For those stuck on HAL add it to the fdi file too.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Przemo Firszt <przemo@firszt.eu>

commit 904443623df7f293f6d87e85e0b808183afe67c9
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed May 2 10:25:01 2012 -0700

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

commit 311be3952d3557720bbb5e0203066ca1864f74ef
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 24 11:40:58 2012 -0700

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

commit 5fab61b10aabdc5b5461798f9002669adf18f263
Author: Adam Nielsen <a.nielsen@shikadi.net>
Date:   Wed Apr 11 16:13:08 2012 +1000

    Add support for the DTI-520
    
    Signed-off-by: Adam Nielsen <a.nielsen@shikadi.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 35d855025bb26e0a2daac9b08b4ea868512fb9ab
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 6 14:10:00 2012 -0800

    Add support for the Intuos5
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 466b119b12a0e149a3b79a031878e04d89c628c4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 3 13:13:22 2012 -0700

    Fix off-by-one error in xsetwacom's button handling
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 52a795d2fb1fee5b13e95a2c7089dd87c37d2ea8
Author: Nikolai Kondrashov <spbnick@gmail.com>
Date:   Wed Mar 21 22:27:22 2012 +0200

    conf: Only match tablet Waltop devices
    
    Only match Waltop event devices classified as tablets.
    
    Advanced Waltop tablets have on-the-frame controls such as multifunction
    dials (controlling scrolling, zooming, volume and keyboard navigation) and
    keyboard modifier buttons. These are represented as separate event devices
    and are better handled by xf86-input-evdev.
    
    Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5e0c6ff52e9fb25e0fcd8228992ffc7a41b1db8e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 21 15:36:47 2012 +1000

    Don't dereference priv before checking it for NULL
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit d23809af1613a93ad5b68623cadd4d122da32820
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 21 15:36:04 2012 +1000

    Plug minor memory leak
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 99a9542cb14b763ddf417c71d4966f80eda417fe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 21 15:34:06 2012 +1000

    Avoid buffer overrun
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f0e338a4bb54d69a0c83207651efb739d843a469
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 21 15:32:55 2012 +1000

    Don't pass NULL to fclose(3)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 8b59c9ff369c1b148f716dbc6234ead68311fa21
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 21 15:29:56 2012 +1000

    Fix broken NULL check
    
    This check was ok until 7958bb9b1ddef9e8238615fd1b3d15996f00effe, when more
    code was moved here and it made no sense this way anymore. Change it to
    return early in the case of NULL allocation.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 61146662a1c3ffff87b71506f3f0c06a18a069a6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 21 15:28:17 2012 +1000

    Check ioctl return value
    
    Really, this shouldn't ever fail but at least it shuts up some static
    analysers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit fe2d108dbd2d0769e314a32c9b11376919adcea6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 14 12:24:04 2012 -0700

    Don't share names of action atoms across properties
    
    The names of action atoms are currently created without regard to
    the property they will be stored in. This results in both e.g.
    button 1 and StripLeftUp using atoms with the name "Wacom button
    action 1". When setting either button 1 or StripLeftUp, we ask
    the server for an atom named "Wacom button action 1" and in both
    cases receive the *same* atom. This means button 1 is nothing
    more than an alias for StripLeft up (and similarly for the other
    actions which share the same name).
    
    This patch uses the name of the property the action will be stored
    in as the prefix to prevent this aliasing from occuring.

commit 220d3fb0bc1cbc9cee4f771f310c36cb07d7af68
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 15 08:05:27 2012 +1000

    man: fix typo in xsetwacom man page
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ec45ba39ad5c43e97e8ed02e37ebbdc3f41668c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 9 18:17:58 2012 -0800

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

commit c2c1a42d4dd97b26dee395b5911bee209fddf030
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 6 16:33:31 2012 -0800

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

commit 8e22ba6d8cfe9a21ea40b959152318efe8e0b338
Author: Colin Walters <walters@verbum.org>
Date:   Fri Mar 2 07:24:17 2012 +1000

    wcmXCommand: Fix invalid array size for serial values.
    
    Introduced in c21b6876b435bb34112956716fea14477ef9e8d7
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 60b4c868ac5baf5dba82c8c9146dfac068c06eef
Merge: e7564c94 28abd26b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Mar 1 09:48:50 2012 -0800

    Merge branch 'master' of git://people.freedesktop.org/~whot/xf86-input-wacom

commit 28abd26ba9379004db8667eaa2fcd2aa0b3d6fc4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 28 11:27:28 2012 +1000

    xsetwacom: fix compiler warning
    
    xsetwacom.c: In function ‘set_output’:
    xsetwacom.c:2359:6: warning: variable ‘success’ set but not used
    [-Wunused-but-set-variable]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 6a862efd7f3d8504b600e9d67c2b9b43e41ee8d5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 28 11:18:12 2012 +1000

    xsetwacom: re-add ToolID with the current tool ID in proximity
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit ef11021997c850d0d3e579777468ec6d52f28f20
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 28 11:16:57 2012 +1000

    xsetwacom: ToolID is actually ToolType
    
    ToolID should be the ID of the tool in proximity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit c21b6876b435bb34112956716fea14477ef9e8d7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 22 16:52:52 2012 +1000

    Export current tool ID in the property too
    
    Previously, we exported old serial number, old tool ID and current serial
    number. Export the current tool ID as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Tested-by: Bastien Nocera <hadess@hadess.net>

commit e7564c941e8ac5ab9549332730844b2380b9e641
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Feb 29 15:24:31 2012 -0800

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

commit 00b784202448dfc8f1e142c3745053ae1e82b042
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Feb 29 15:12:27 2012 -0800

    Change return type of 'test_flag_set' to void
    
    Compiler complains that nothing is being returned, but nothing
    *should* be returned.

commit 632134f4697935ada00d72bc19286f551b42da53
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Feb 10 12:00:03 2012 -0800

    Extend length of wheel_actions array to 6
    
    This array was apparently overlooked when adding support for the
    second touch ring present on the 24HD.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 45fd72c9031ed88e4af26b43cbb51d1c64e88602
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Dec 22 13:41:43 2011 -0800

    Remove AC_CORE status print
    
    Flag is deprecated, has no effect, and serves no purpose anymore.
    Remove from the DBG statement.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6240c226ef429ade3926be0a65341117de2b24e5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Feb 9 11:07:39 2012 -0800

    Check for appropriate number of properties when setting buttons
    
    Commit 7e92aca6 changed the length of the Wacom Button Actions
    property to be dynamically calculated, but did not take this
    into account for the property setter (preventing xsetwacom from
    updating them). This patch replaces the constant length with an
    identical calculation to ensure we check for the proper size.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5a2221de13f73c7edbe4221909225ef5c7c5c18a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Feb 7 10:57:05 2012 -0800

    Remove redundant redeclaration of 'wcmInitialScreens'
    
    From GCC:
       In file included from ../src/xf86Wacom.c:46:0:
       ../src/xf86Wacom.h:147:13: warning: redundant redeclaration of
       'wcmInitialScreens' [-Wredundant-decls]
       ../src/xf86Wacom.h:146:13: note: previous declaration of
       'wcmInitialScreens' was here
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4709394d76267df05f8dfa7f13e6beb1f9c7394f
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Fri Feb 10 17:55:16 2012 +0000

    Add Wacom Intuos4 Wireless to 50-wacom.conf
    
    Intuos4 Wireless doesn't match list of devices in 50-wacom.conf, so evdev was
    taking over. This patch fixes it, so now wacom driver is used fo Intuoe4 WL
    PTK-540WL
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 96a2e90c0f6a727fe6942c7b8f05b37167a10ab1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Feb 4 19:20:44 2012 +1000

    Move some usb-specific keys to wcmUSBData.
    
    nbuttons and npadkeys is only used for USB-specific parsing, move them
    there.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 7e92aca68a666499c7d6f1946cc849cfb5653ae0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 3 19:15:54 2012 +1000

    Initialize button action properties for the correct button number (#45557)
    
    Previous code had the number of properties for button actions hardcoded to
    16 (WCM_MAX_MOUSE_BUTTONS). Drop that define and instead initialize the same
    number of properties that we have on the device as well.
    
    X.Org Bug 45557 <http://bugs.freedesktop.org/show_bug.cgi?id=45557>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit b6fd73d4f79b4731caee4dc72e9f6fcecd2b5161
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 3 19:21:28 2012 +1000

    Compress button counting statement
    
    No functional change, just compressing several lines into one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit bc7db7f1ef57beab2a149ca9589cea08f5e69af2
Author: David Foley <favux.is@gmail.com>
Date:   Sun Jan 29 11:18:43 2012 -0600

    man.wacom: Fix typo in Touch Gestures.
    
    Fix initiates typo in TOUCH GESTURES' Vertical scroll.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 16749eb2d82166a3389fe6209c654bb1fce2e639
Author: David Foley <favux.is@gmail.com>
Date:   Thu Jan 26 13:10:23 2012 -0600

    man.wacom: Add gesture description.
    
    Add description of the touch gestures to the wacom manual.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dbc25fa4fd86af7ccd42af04e6360dfdd0336735
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 12 13:40:27 2012 +1000

    Allow for a threshold of -1 to reset to the built-in default (#43221)
    
    This switches interpretation of the property from unsigned to signed. Not a
    big deal, since the maximum value has always been 2048 anyway and on 32-bit
    that doesn't actually change anything.
    
    X.Org Bug 43221 <http://bugs.freedesktop.org/show_bug.cgi?id=43221>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 09b1aa6538cd48e20928da9a835999dfc851f62c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 10 11:55:14 2012 +1000

    Fix wrong check for configdir
    
    We care about configdir, not sysconfigdir. Otherwise, --with-config-dir=""
    on a server that does support xorg.conf.d has no effect and the fdi files do
    not get installed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8a8931cc77babbd84a4ec7a1df04e995aaa1e980
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Jan 16 10:03:10 2012 -0800

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

commit a94a6fbaa5bde44d1d6fc2f33f56d6ffddefca75
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 6 13:26:19 2012 +1000

    release.sh: set announces' Reply-To to the linuxwacom-discuss
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 933905070d6fd6e438b7a5ff445570e1fad1e70a
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Jan 3 09:29:51 2012 -0800

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

commit 5ca665dd77b074d95fd0d9191f544b022eaaddd8
Author: Alexey Osipov <simba@lerlan.ru>
Date:   Tue Jan 3 15:13:48 2012 +0700

    'Left mouse button' dragging support.
    
    First, we define two new GESTURE_ modes:
    - GESTURE_PREDRAG_MODE - when first tap happen and we wait for second touch.
    - GESTURE_DRAG_MODE -  when actual drag happening (left button pressed).
    
    Second, we define tap timeout function wcmSingleFingerTapTimer(), which
    simulate single click if no drag operation started within timeout.
    
    Third, we make an exception for GESTURE_DRAG_MODE in wcmCommon.c, because
    we actually want cursor movements while dragging. This exception is made
    through new function wcmTouchNeedSendEvents().
    
    Now, to do a single tap you just tap (touch and untouch). Actual click
    happens after TapTime period.
    To drag something you make a tap (touch and untouch) and then quickly
    (in TapTime period) touch device again. Then drag.
    
    Signed-off-by: Alexey Osipov <simba@lerlan.ru>
    Reviewed-by: Chris Bagwell <chris@cnpgabwell.com>

commit 1c5c25d7b4a4ce0686f6a088d282e437dbadadfe
Author: Alexey Osipov <simba@lerlan.ru>
Date:   Tue Jan 3 15:13:45 2012 +0700

    Create wcmTouchFilter.h
    
    Moving declarations for touch filter from xf86Wacom.h to wcmTouchFilter.h
    
    Signed-off-by: Alexey Osipov <simba@lerlan.ru>
    Reviewed-by: Chris Bagwell <chris@cnpgabwell.com>

commit a119545769f208d5722561a928a93824f87cdc81
Author: Alexey Osipov <simba@lerlan.ru>
Date:   Tue Jan 3 15:13:42 2012 +0700

    Fix cursor jumping after zoom and scroll gestures when in Relative mode.
    
    When touchpad is in Relative mode of operation, we need allow driver
    update internal old{x,y,z} variables to eliminate cursor jump after
    gesture ended. That update performed in wcmSendEvents() function in
    wcmCommon.c. So, when we in gesture mode, allow call wcmSendEvents()
    to update variables, but don't allow actual events sending to X server.
    
    Unnecessary axes modification removed from wcmSendButtonClick() in
    wcmTouchFilter.c, which was causing cursor movement in Absolute mode
    while gestures are active with respect to above changes. Call to
    xf86PostButtonEvent() replaced by call to xf86PostButtonEventP().
    
    Signed-off-by: Alexey Osipov <simba@lerlan.ru>
    Reviewed-by: Chris Bagwell <chris@cnpgabwell.com>

commit 7a7af3eb1c5e809aa7020795b3c170f6360d6c5f
Author: Alexey Osipov <simba@lerlan.ru>
Date:   Tue Jan 3 15:13:38 2012 +0700

    Extra right clicks removed.
    
    As right click performed with second finger, then we only interested
    in second finger touch when trying to match 'right click' gesture.
    
    Signed-off-by: Alexey Osipov <simba@lerlan.ru>
    Reviewed-by: Chris Bagwell <chris@cnpgabwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ba851feb1a5f28ff3e68ef07bc84a7d75e3444ea
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Dec 30 09:26:00 2011 -0800

    Remove testing code
    
    This bit of code slipped in between v4 and v5 of the "add abswheel2"
    patch. It was testing code that was never intended to be part of
    the 24HD patch set, and wasn't caught until too late.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 3989bdb4b42cbd44f7dd99b244eeb4d1618a7ff3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Dec 21 13:13:11 2011 -0800

    Expose the second touch ring's raw value in a new 7th valuator
    
    This patch expands the number of valuators reported by devices to
    seven. The new seventh valuator reports the raw value provided from
    the kernel for the second touch ring.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 7e3b2b9223629119472469569a2e23150e5c0c68
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Dec 21 09:30:22 2011 -0800

    Have the second touch ring emulate wheel events by default
    
    Touch strips as well as the first touch ring are set up to emulate
    mouse wheel events by default. This patch duplicates this behavior
    for the second touch ring, so that it behaves in an identical manner.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ced9465599434c68fa40210aa890970386a08b84
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Oct 17 17:11:19 2011 -0700

    Add 'abswheel2' to device state for dual-ring devices
    
    This patch adds an 'abswheel2' field to the _WacomDeviceState
    structure, along with corresponding 'oldWheel2' field to the
    _WacomDeviceRec structure. These fields store the state of the
    second touch ring on dual-ring devices such as the Cintiq 24HD.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fe1dc1753010809a7741f05784b5abe9d2ee5cff
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Dec 12 09:20:31 2011 -0800

    Add basic support for Cintiq 24HD
    
    Adds the Cintiq 24HD (056a:00f4) to the device lists. The 24HD
    has two features not found on prior tablets: three capacitive
    buttons, and a second touch ring. Subsuquent patches will
    address adding support for them.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 477a261ef79172d6378613fc4cab0026ed49d02f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Dec 21 09:26:46 2011 -0800

    De-duplicate code for wheel/strip scrolling
    
    Replaces sendWheelStripEvents and getWheelButton with several
    small functions to reduce unnecessary code duplication.
    
    As a side-effect, it is now possible for the driver to handle
    simultaneous scrolls on multiple axes. Previously, getWheelButton
    would go through all the axes but was limited to returning a
    single button/action.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a60e59a4730d6a11f999085aa8754fd0de5dfbaf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 19 13:18:03 2011 +1000

    test: fix linker error 'input_option_new' undefined
    
    We need a copy of it in the driver. This is just the one the driver uses for
    pre-ABI 14 compatibility, we don't need the server's exact copy since we're
    not testing that API (that's the server's job), only our use of the API.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit d54d936146fa58fb10a1b6839e1413671f96f86e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 19 13:01:35 2011 +1000

    test: add more #defines to fix build issues.
    
    sigh, upstream changed the option function prototypes without bumping the
    ABI. This is the best we can do, though there will be a period between the
    actual abi bump and this commit where we get test build errors now.
    
    commit 09e4b78f7944234865f4648940453303af0c2663
    Author: Alan Coopersmith <alan.coopersmith@oracle.com>
    Date:   Mon Nov 7 19:19:47 2011 -0800
    
        Fix gcc -Wwrite-strings warnings in xf86 ddx
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 388c2630881d74b10bcd0aad57796c9e09341471
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 19 12:59:53 2011 +1000

    test: drop duplicate definition of xf86FindOptionValue
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit c6dba3dab054be19921a11f8ee38f847e4ef8962
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Nov 22 20:18:44 2011 -0600

    Remove wcmTapTimeDefault variable
    
    Its not really needed anymore. The whole *Default variable concept is
    at least partially related to historically the PAD device was Init'ed
    before the TOUCH device on Bamboo's but that is no longer true.
    
    And since the TOUCH device is now Init'ed before PAD, when PAD
    got Init'ed, wcmTapTimeDefault would override Touch's TapTime value;
    probably not what user wanted.
    
    For times *Default was really useful, I think wcmPostInitParseOption()
    is probably a better replacement concept.  I'll slowly remove these
    *Defaults as I have time to test each behavior.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit b0aab508269acb3a8bf9e6699a4a283f374e8488
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Nov 22 20:12:21 2011 -0600

    default gesture distance values based on hw maximums
    
    2 finger Gestures will start working on a wider range of
    hardware with different resolutions now.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit f9fe7c7b74418378a5fc09a03c2da381a87b4561
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Mon Nov 21 21:52:28 2011 -0600

    Break option parsing into two init phases
    
    This is ground work to allow much easier overriding of
    default values for case were exact default value is not
    known until after init phase (for example, if default value
    depends on resolution of hardware which is not known until
    after init phase).
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 31dbd9fc9fdd3691d9ef43c707ecc780e0c62d24
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 14 11:43:56 2011 -0800

    xf86-input-wacom 0.12.0
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit 22a26f34ba4f47a648cd01d87aa649033db2e1e1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 14 11:12:00 2011 -0800

    Fix include reference to wacom-util.h
    
    Running "make distcheck" fails under the quoted path.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit e4aa352f0ded30fcc3ec90a187957f6f8920fd8e
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 14 16:52:35 2011 -0800

    Have usbInitToolType return the old tool type if available
    
    If the tool was not specified within an event packet, the
    usbInitToolType function would return TOUCH_ID. This caused
    problems for combined pen+touch devices when the pen was in
    range, since only the first packet (which explicitely specified
    the STYLUS tool) would not be filtered as "single touch"
    data.
    
    This patch passes along the old tool type, so that if no
    tool is found in the current packet, the old tool type may
    be adopted.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f7c0a64bf6550ac8ada19345bd03916bd4aa8890
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Nov 14 13:04:24 2011 -0800

    Fix usbInitToolType to not always return TOUCH_ID
    
    Commit ca922994 changed usbInitToolType to use the tool
    TOUCH_ID by default. Because of the way the 'for' loop just
    below is handled though, the function would never return
    anything but TOUCH_ID. This patch changes things to only
    return TOUCH_ID if no data for an alternate tool type
    could be found in the event packets.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 20958f84eef0b40f91e4559099f342f28650c183
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Oct 26 12:33:48 2011 -0700

    Use xf86PostButtonEventP for held button action releases
    
    It appears that commit 485137ef partially missed this particular
    call in its mass-migration away from xf86PostButtonEvent. This
    results in the pointer jumping away from the correct location
    when a held button action is finally released. It is most noticible
    when the action "button +1" is assigned to the stylus or eraser and
    a window is dragged.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2f233f62544f9419a6f12e201d09189339f7c1d2
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Nov 9 11:41:23 2011 -0800

    Migrate Tablet(Has|Set)Feature to use the wacom-util macros
    
    In addition to consolidating code, this happens to fix a bug
    in the implementation of TabletHasFeature which would return
    true provided *any* bit of a multi-bit mask was set. Ever
    since 7c667678 when WCM_TPC was changed to a multi-bit mask,
    tablets with WCM_LCD set have been (mis-)treated as tablet PCs.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 2c4360d7be38f242a89f2da291e075b28e0dfc51
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Nov 9 09:14:14 2011 -0800

    Only convert I4 tilt bits to rotation for the I4 mouse (v2)
    
    This re-implements commit 9be9719d78af035c45ea4b191c21fab0ee54f198.
    Ping pointed out the device_type field that I had somehow missed
    when making the earlier commit. This provides essentially the same
    information as the IsCursor() macro that the original patch went
    through so much trouble to use.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ef47fa044b6bc3949c0b8d96c665d18937da719b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Nov 9 08:59:58 2011 -0800

    Revert "Only convert I4 tilt bits to rotation for the I4 mouse"
    
    This reverts commit 9be9719d78af035c45ea4b191c21fab0ee54f198.
    Under the right conditions, the 'tool' pointer can be NULL,
    leading to the X server crashing. An easy way to trigger the
    crash is to spam pad events (such as button presses) while
    holding the stylus on the edge of proximity.
    
    Rather than fix this with additional checks for NULL, Ping
    clued me into a much more elegant (and bug-free) way to
    implement the check for an I4 mouse. See next patch.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 882795767a975854f373d58a9b15a57dfa244f28
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 21 16:22:53 2011 +1000

    Deal with opaque InputOption in ABI 14
    
    Input ABI 14 makes the InputOption struct opaque, so use the new API
    provided (and wrap for older ABIs).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5cdd524f9986bc8bc628d953379c5eb8c0003c9b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Sun Oct 30 20:13:51 2011 -0700

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

commit ee6abf754d08b6b073c2494353db68b7275fdac3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 20 16:59:46 2011 -0700

    Add 0x10804 to recognized Art Pen device IDs
    
    Intuos4 Art Pens may have an ID of 0x10804 for their tip and
    0x1080C for their eraser. There may be other IDs which need
    matching as well, but that is a "to investigate" item for the
    moment.
    
    Note that due to a mostly-benign issue in the kernel driver, the
    highest nybble of the ID is placed one nybble *too* high. Until
    a proper fix is made and tested for the kernel, we need to check
    for an ID of "0x100804" instead of "0x10804".
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 64f72480396f4398f0ad03aabc7b570d606c290c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 20 16:59:45 2011 -0700

    Correct Cintiq 21UX2 features to advertise touch strips, not rings
    
    Moves the 0xCC case (21UX2) to be in the proper spot. There are
    touch strips, not rings on this device.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9be9719d78af035c45ea4b191c21fab0ee54f198
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Oct 20 16:59:44 2011 -0700

    Only convert I4 tilt bits to rotation for the I4 mouse
    
    The comment claims that the conversion is to be performed for the
    I4 mouse only, but doesn't actually check to see if the tool is
    indeed a mouse. This patch adds in the necessary check, allowing
    the I4 stylus to properly report tilt data.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fff28802c2a803525d30cb8cb27c385f3e589f8a
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Oct 19 17:01:08 2011 -0700

    Process pressure only when it is supported
    
    normalizePressure crashes if wcmMaxZ is 0.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8a803975522bbb94e7df41c806dd2a573f058585
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 23 14:23:31 2011 +1000

    Handle ABI 14 option types
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5544d3aeec362f09d2a68b10834f2be31c7bd1f0
Author: Eduard Hasenleithner <eduard@hasenleithner.at>
Date:   Sun Oct 9 15:22:19 2011 +0200

    Make InitWcmAtom support arbitrary property types
    
    InitWcmAtom could only create properties of type XA_INTEGER or
    XA_ATOM. This commit adds support for any atom type by means
    of adding a type parameter to InitWcmAtom. All instances of
    InitWcmAtom use are adapted to the new parameters.
    
    This is a preparation for a new parameter of type XA_PIXMAP
    needed for the upcoming OLED commit.
    
    Signed-off-by: Eduard Hasenleithner <eduard@hasenleithner.at>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 594deceed76e46617838dab2560ecbdf6b42421d
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Sun Oct 9 12:18:19 2011 -0400

    Exit gesture mode when pen comes in range
    
    Otherwise, the driver will be in an unusable state until the pen is lifted and
    the user touches the device.
    
    Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 705c6df5a75e3408b048d15cadd1652124767893
Author: Eduard Hasenleithner <eduard@hasenleithner.at>
Date:   Sun Oct 9 15:01:43 2011 +0200

    Fixing format strings in list_mod
    
    Two printf calls in xsetwacom.c were using a "%d" for output of an
    expression of type size_t. Changing format string to use correct
    "%zd" in order to avoid the format string warning at compile time:
    
    xsetwacom.c:787:2: warning: format '%d' expects argument of type 'int',
            but argument 2 has type 'long unsigned int' [-Wformat]
    
    Signed-off-by: Eduard Hasenleithner <eduard@hasenleithner.at>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c0504a80c5b94323072326e0b1d78ed2378817e7
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Sep 28 11:52:44 2011 -0700

    Return boolean where required
    
    This particular return statement was missed in e9d9ddc3.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit f2ee4f22f2ab258f3c2cd615342c56c793835362
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Sep 20 11:25:22 2011 +1000

    Move DebugLevel options up.
    
    Having them in wcmParseOptions() means we don't get debug messages until we
    hit wcmParseOptions(). For new devices that don't initialize (for whatever
    reason) this makes debugging a lot harder.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit e9d9ddc309746f6e8537223fcf946d434ea188c0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Sep 27 15:47:08 2011 -0700

    Have MapToOutput helpers return booleans to indicate success
    
    MapToOutput helper functions now return 'true' when they sucessfully
    change the transformation matrix, and 'false' otherwise. Though this
    information is not used at the moment, it will be used with the
    KeepShape patch to ensure that the active area is only modified if
    the output mapping occured sucessfully.

commit b1f0c9ac801e48de16c6afe3bf680565a4e5c5db
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 9 15:44:37 2011 -0700

    Have 'MapToOutput' require the keyword "desktop" to do such
    
    Instead of allowing zero arguments to map the tablet to the entire
    desktop, we require the use of the keyword "desktop" to accomplish
    this. This is to make it easier to figure out the user's intent
    later on when we introduce KeepShape.

commit 6da898eba50a8499d770214684bd3d2d46033037
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 9 15:43:29 2011 -0700

    Add 'set_output_next' helper for MapToOutput
    
    Adds a helper function for MapToOutput which determines which
    output the device is currently mapped to, and moves to the next
    available output. Repeatedly calling this function will result
    in the device being mapped to every available output (including
    the desktop as a whole) in turn.

commit f09def951b7bd8ca57894e15ea3a47cda96c6a00
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 16 17:25:12 2011 -0700

    Allow 'MapToOutput' to accept X geometry strings
    
    This patch allows the MapToOutput command to accept fully-
    specified X geometry strings as valid output names. The
    XParseGeometry function describes these strings as having
    the folowing format:
    
    [=][<width>{xX}<height>][{+-}<xoffset>{+-}<yoffset>]
    
    Strings with width, height, xoffset, and yoffset defined
    will be accepted and the device mapped to the rectangle
    it describes.
    
    This patch also renames the function '_set_matrix' to bring
    its naming in line with the other set_output_XXXX functions.

commit d0f15345546fc9396261ceaf2268cf0ddc7b32af
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Sep 6 18:13:49 2011 -0700

    Have 'set_output' check and convert arguments as necessary
    
    The 'set_output' function is now responsible for parsing the
    command-line arguments to both determine the proper function
    to call, as well as converting them into a form that can be
    more easily used by the helper functions. This patch also
    breaks the RandR compatibility check out into its own function
    to improve readability.

commit a19be46042e8e8213cc7f302429977590d0081f7
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Aug 5 10:34:20 2011 -0700

    Free RandR resources more-quickly
    
    We now call XRRFreeScreenResources as soon as practical to allow the
    now-following logic to return at its leisure. Additionally, we also
    copy the data from 'crtc_info' locally and free it ASAP.

commit 53633de3854f815682ca92ebf5c949a778697993
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Sep 16 17:24:16 2011 -0700

    Create wacom-util.h for generally handy defines
    
    The new wacom-util.h should be the place to store defines which
    may be handy to use anywhere. At the moment this includes things
    like ARRAY_SIZE, bit manipulation, and mask manipulation defines.

commit 59c54a39fae39fb580cce3c3b676d658e7ad593b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 9 08:36:33 2011 +1000

    Revert "make gesture distances be relative to hw maximums."
    
    Accidental push, this patch is still pending a few more modifications before
    it's ready. See the thread at
    http://sourceforge.net/mailarchive/message.php?msg_id=28006798
    
    This reverts commit 259616580c1ef3f624d8f984f69f3991d57bbe9c.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fb11287b1ca76a838e2fdde67d6267d8dd5979b4
Merge: 25961658 a9c7b56a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 8 14:14:39 2011 +1000

    Merge branch 'gesture5' of git://github.com/cbagwell/xf86-input-wacom

commit a9c7b56aa13992ec11b87c726699cf685857640c
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sat Jun 25 19:38:51 2011 -0500

    do not send touch button during gesture holdoffs
    
    Moved 4 different places were the touchscreen button press was done to a
    single location.
    
    This allows to NOT send a button pressure while gesture detection
    is being performed.  That unwanted button press could do some annoying
    things when trying to do a 2 finger scroll on a touchscreen.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit cb92037af882d2479d0f677eba8be83b11632dcd
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Wed Aug 24 18:26:29 2011 -0500

    improve 1 finger tap validation
    
    Added check for wcmGesture for 1 finger gestures since it couldn't make
    use of generic check.
    
    Skip 1 finger tap on touchscreens based on LCD feature instead of
    is_absolute() value.  Also, since this is gesture specific validation,
    moved to inside function.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit 89c88966f0adbf56abcd8087fe51a4ee36e17102
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Aug 23 20:52:45 2011 -0500

    Add a GESTURE_NONE_MODE in place of 0 values
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit c1ba7642b7a8567fd945e04cc9ad9e1bd1014576
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Sep 4 22:10:01 2011 -0500

    look at current packet during 2 finger gesture lag
    
    Probably the original logic meant to be doing something like:
    
    "if (ds[0].proximity && dsLast[0].proximity && ds[1].proximity)"
    
    but it left out the ds[0].proximity part.  This had two issues:
    
    1) We got 1 extra packet worth of movement because of delay in
    going into LAG mode upon 2 finger touch.
    2) It could go into LAG mode upon releasing 1st finger before
    second finger.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit 68daad26c11d70aeaffd8d4d4f81f14487f321c2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Aug 23 20:42:28 2011 -0500

    improve initial 2 finger behavior
    
    When trying to do a 2 finger scroll, the cursor was previously
    moving around until taptime because wcmGestureMode was mistakenly
    being set back to zero.  It was falling into 1 finger else {}
    case once past WACOM_GESTURE_LAG_TIME.
    
    To see issue, try scrolling in a web browser or terminal window on a Tablet
    PC and you'll see lots of unwanted text selection because of cursor
    movement + button press.
    
    Rearrange code so that coming out of LAG will never happen in two finger
    case.
    
    Also, rearrange related logic to be more obvious for 1 finger vs 2 finger
    case.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit 3005fc0f7caff5a375fa2e353d3bcbadfd59382e
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Aug 23 19:31:51 2011 -0500

    reduce 2-finger scroll holdoff time
    
    The only reason not to immediately go into 2 finger scroll
    and zoom mode are:
    
    1) Make sure user is not going to do a 2 finger time based gesture
    (only 2 finger tap supported).  Waiting only taptime is fine for this.
    2) Wait for some movement of fingers to see if its a zoom vs. scroll.
    This is movement based and not time based.  Reducing time doesn't seem
    to change behavior here.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit 259616580c1ef3f624d8f984f69f3991d57bbe9c
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sat Aug 27 12:03:19 2011 -0500

    make gesture distances be relative to hw maximums.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b4c5e7047e32635d958ba0181eb63451b930521c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 24 11:50:25 2011 +1000

    Don't compare unsigned values to < 0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit df7db361dd8ce04bec486ee7215ae51a2e339d0e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 24 11:46:46 2011 +1000

    No need to check for pInfo != NULL in PreInit
    
    We've dereferenced it several times already and having the check in there
    confuses static analyzers who don't know that the server allocates this for
    us.
    
    This is a leftover from pre-ABI 12 where the drivers had to allocate pInfo
    themselves.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Jason Gerecke <killertofu@gmail.com>

commit 557a52b8a1ea7f10773f49e3d43074bb3952120e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 24 09:38:45 2011 +1000

    man: clarify rotation on hotplugged devices
    
    Dependent devices take the parent device's rotation, not hotplugged devices
    in general.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f1519288f53144860379a193c7c1c579d014a04c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 12 10:29:53 2011 +1000

    man: document gesture-related options
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 1fa07c06020c8d6c983002999c04c519b58c4892
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 12 10:04:47 2011 +1000

    man: Add RawSample to man page
    
    Text copied from xsetwacom.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 21985216fe57eba9c7419f2c1e9dc3989833e5cd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 12 10:03:53 2011 +1000

    Update comments for wheel and TwinView resolution properties
    
    A bit more detail on the wheel property to make it easier to understand
    without reading the code.
    
    TV resolution is deprecated, mark it as such.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit cf5986b7e546443f16cd86dbb46c8ba334382081
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 23 13:38:14 2011 +1000

    Sanitize condition to check for complex gestures.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit 992738ff9f0d0c3eb2b6f3be9851d3c2c506ad4f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 9 15:02:26 2011 +1000

    Fix an error message.
    
    This error may have been in wcmEvent now, it's not anymore. Either way, one
    can just grep for the string, the function name is irrelevant.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 473e339593d79e8e4d417698ff61ccaeb6e53096
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 1 17:53:12 2011 -0700

    Allow zero-argument use of MapToOutput to reset map to entire desktop
    
    If zero commandline arguments are provided to 'set_output', we
    now interpret that as the user's desire to remap their tablet to the
    entire desktop. This is accomplished by loading the identity matrix.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7f3da2baed602d75559003066d41c77f7ee96056
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 1 17:51:55 2011 -0700

    spellfix: "Dize" -> "Size"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b2e5813935f6897bd3a2c7ee5be4a3db17f58745
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Aug 1 17:51:00 2011 -0700

    xsetwacom: Have 'get_param' respect PROP_FLAG_INVERTED
    
    Running e.g. `xsetwacom get stylus TabletPCButton` would display
    the wrong value to the user because the property is inverted.
    This checks to see if PROP_FLAG_INVERTED is set, and to swap the
    result if so.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7353f1dbd4472c485bd7e248413a9d21d3a77a89
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 20 15:21:19 2011 +1000

    If the type isn't valid for our device, say so.
    
    Don't just quietly fail PreInit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit ad82c03c9ca876d2c2518b2fc2c1a652ea74ce8b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 18 16:02:40 2011 +1000

    Use xf86SetStrOption to get type
    
    This call prints the value (if set) to the log, making it easier to debug if
    something has gone wrong.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 5e2f39a390bbbebe59d49ec35a79641dba7de7fe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 18 15:58:29 2011 +1000

    Print error to the log if the Type option is missing.
    
    Static configuration devices only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 16d30d475d1997fe7271236dc18854eabe1c2dc7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 18 15:08:05 2011 +1000

    Protect against NULL-pointer dereference in UnInit
    
    If priv is NULL the DBG macro would dereference it. priv may be null if
    wcmAllocate() fails or the event device cannot be found..
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit c1368da8e637a9a6bb1b1c09b30b3c8e63442ec3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 18 09:50:19 2011 +1000

    test: Fix tests for Capacity removal
    
    Removal of capacity caused a few tests to fail. Fix this.
    
    Introduced in xf86-input-wacom-0.11.0-36-g6c9c05e
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 4f1041122f1544b660f80b5a9aad086a3f6da372
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 18 09:45:56 2011 +1000

    isdv4: fix pressure parsing
    
    Missing shift would report the wrong pressure maximum.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 983185c64b9fa725519ff5a1e0863e7bac00bea4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 13 10:03:40 2011 +1000

    man: reshuffle Authors list
    
    Not to discredit Frederic's work, but he is not involved with the project
    anymore.  Users have a tendency to email the first person on the list, let
    that go to someone who is currently involved and likely to respond.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 4c3b4e0a88401a55fbdd98ba4db128d9a52583d1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 13 10:02:19 2011 +1000

    man: use placeholders to man pages listed in See Also
    
    These are substituted on build, the sections aren't the same on all
    platforms. Not that this really matters for us (linux-only) but it's in-line
    with other X.Org projects.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 3a72150505eb8077215029c365c31740ca966bd6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 13 10:00:18 2011 +1000

    man: add link to our website in See Also
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f63be64a58629cfac2077da8be335e02d10f3c5d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 13 10:05:42 2011 +1000

    man: add paragraph before the link to linuxwacom.sf
    
    And spell out sf as sourceforge
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 44a25ab9305e452465b0bbf7547624f18c896459
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 5 14:03:15 2011 +1000

    Fix comment typo
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 66925f068638c4cc3181478008e5a909de389940
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 5 14:01:01 2011 +1000

    ISDV4: swap packet parsing condition around.
    
    No negative conditions where not nessary please.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 7ab2f8a74a4dc7b1f795490f3850129d43fdb3c8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 5 13:41:43 2011 +1000

    Split isdv4Parse into two functions for touch/pen packets.
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 42132efc7f22a353f5d5976cb898abd1ea04e761
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 1 09:15:55 2011 +1000

    xsetwacom: plug minor memory leak
    
    data is allocated, needs to be freed. No real impact since xsetwacom will
    exit anyway after this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 70afb81f6de2f29e23eded3d1db74749e98e6daa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 1 09:14:50 2011 +1000

    Remove unused variable "device"
    
    ../src/wcmValidateDevice.c: In function 'wcmHotplugOthers':
    ../src/wcmValidateDevice.c:515:8: warning: variable 'device' set but not
    used [-Wunused-but-set-variable]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit aa4e458e50150bfc976afcb32034f0a30a404bf1
Merge: f8e6ccc0 a8829f06
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 30 16:22:53 2011 +1000

    Merge branch 'capacity2' of git://github.com/cbagwell/xf86-input-wacom

commit a8829f06de49585c2bbc3d47c86cdea0720ee1ff
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sat Jun 25 12:34:36 2011 -0500

    Support pressure curve with touch pressure
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6c9c05e7dfadb6fc49f11a6541a18b1f84f8c844
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sat Jun 25 12:07:12 2011 -0500

    Remove unused Capacity logic on touch devices
    
    The feature never fully worked and bits have slowing been removed.
    Remove remaining in one swoop.
    
    As apart of removing logic, now store ABS_PRESSURE values in the more
    appropriate "pressure" location so that it can eventually be exposed in
    the Pressure axis that touch devices create but do not currently send.
    
    Additional changes beyond this patch are required to get Pressure Axis
    working on touch devices.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>

commit f8e6ccc0a494d6bf82afbd81698baa2f78436cd6
Merge: 006bc892 7fe557d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 29 08:54:16 2011 +1000

    Merge branch 'nvidia-twinview'

commit 006bc892fa132f4ba71ef23bb2043847bb3ece2e
Author: David Foley <favux.is@gmail.com>
Date:   Mon Jun 27 20:43:58 2011 -0500

    Add 3 new models: 6A, 6B, and 97
    
    Adds the new Bamboo1 small (6A) and medium (6B).  Adds a slate form factor tablet PC (97).
    
    Tested-by: Alex Tervoort <alex.tervoort@gmail.com> for 6A
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ca92299423980a9be5560f6eb29ba949356d638f
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sat Jun 25 13:05:52 2011 -0500

    Default to touch tool for multi-touch devices
    
    We really need to add hooks to query pre-existing device state when
    input driver starts up because slot ID is almost never sent when
    touching 1 finger to screen.
    
    In mean time, it makes sense to default device_type to most likely
    value of TOUCH (the T in MT) for this function used only by MT
    devices.
    
    The default of zero is causing some events to be filtered mistakenly.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7b67f9e0d59811af879f7cea3422395fb83d0663
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sat Jun 25 13:05:50 2011 -0500

    Show maxZ value for touch devices in debug output
    
    Some, but not all, touch devices support pressure.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ed83c973802c4f3f34faa166ccfebbfdc5414e49
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Jun 23 22:06:59 2011 -0500

    Set WCM_TPC when generic tablet is detect.
    
    This allows unknown touchscreens to work as expected (default to
    absolute mode for example).  We no longer need to update case
    statement in wcmDeviceTypeKeys() each time a new ID is used with
    new hardware.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3e0aea20fd9e262edb717e046f9d1cc1f9e12834
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Jun 23 22:06:58 2011 -0500

    remove redundant WCM_LCD setting for WCM_TPC's
    
    WCM_TPC definition already includes WCM_LCD.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 85d82c3279ffc0dec3be14a7da2e00e375f87f03
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Jun 23 22:06:57 2011 -0500

    Fix CintiqV5 LCD defaults by using new TabletSetFeature()
    
    Some of the previous usage of "=" instead of "|=" could
    cause previous settings to be lost.  Only known case was
    for CintiqV5 losing WCM_LCD value.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6ec94774890452c5c82b0b9db64d7738948fbe19
Author: San <sanette-linux@laposte.net>
Date:   Thu Jun 23 17:53:56 2011 +0200

    Correct the up/down orientation of Touch Strips
    
    Tested on cintiq and intuos 3.
    
    Signed-off-by: San <sanette-linux@laposte.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 47e13394f468c8a500428f62752ab60aaf1d0ce0
Author: David Foley <favux.is@gmail.com>
Date:   Tue Jun 21 21:14:49 2011 -0500

    conf: Add WALTOP back into MatchProduct
    
    The WALTOP kernel driver patches are in the mainline kernel tree now.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7fe557d404a2e7aa192ff68ebdec5436696c9f4a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 20 13:52:30 2011 +1000

    xsetwacom: Support MapToOutput for TwinView.
    
    The NVIDIA binary driver doesn't support RandR 1.2 but it does support
    Xinerama. Due to a server bug, we still get the current server's RandR
    version back when we query, so we need to check to the binary
    driver-specific NV-CONTROL extension first. If that or a RandR < 1.2
    version is present fall back to Xinerama if we need to.
    
    User commands:
        xsetwacom set "device name" MapToOutput HEAD-0
        xsetwacom set "device name" MapToOutput HEAD-1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit 4578d4f4b84e5bb23855e7aa66e6b54fe3b836fc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 20 13:38:02 2011 +1000

    xsetwacom: move matrix calculation into a separate function
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit c684649cde60772402407f398f3dbec7e8e7b909
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 20 13:06:33 2011 +1000

    xsetwacom: split output setting into set_output_xrandr
    
    Preparation work for NVIDIA TwinView support.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jason Gerecke <killertofu@gmail.com>

commit f5fcbd8b4a74d1087b7efb4129a1240e86eaf2b5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 20 13:49:43 2011 +1000

    xsetwacom: add missing linebreak in error message.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Jason Gerecke <killertofu@gmail.com>

commit 36fca6055911d86e902555671b4d206f6fae1835
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Jun 20 17:34:07 2011 -0700

    Fix invalid rotation values
    
    For a rotation of "NONE", the rotation would be whatever happened to be on
    the stack.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c5a0be2d944f28c944d605ccc5e03371e15d97ee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Jun 5 08:08:07 2011 +1000

    Export the device node as property (fixed version)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d79a302ae4c9ae7bf9386ec683ae502023878015
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Jun 5 08:06:46 2011 +1000

    Revert "Export the device node as property."
    
    This reverts commit 2e9972c4419cef47ac08528bbaf02846ae4fc915.
    
    Broken patch, XI_PROP_DEVNODE replacement wasn't consistent.
    
    Conflicts:
    
            src/wcmXCommand.c
    
    Reported-by: Andrzej Giniewicz <gginiu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1ba90110b34a287ffce92e9cf2700179fbab4400
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 12:33:11 2011 +1000

    Add support for Device Product ID property.
    
    This property is now used in input drivers to export product/vendor ID to
    clients.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 2e9972c4419cef47ac08528bbaf02846ae4fc915
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 12:10:12 2011 +1000

    Export the device node as property.
    
    X doesn't provide a mapping between physical devices and X device IDs other
    than what can be extrapolated from the device name.
    Export the device node so clients that need e.g. sysfs or other information
    from the kernel can map the devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 8713d0c90b994b259f7c0430ac4726884c7e3d10
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 12:25:38 2011 +1000

    Clarify a comment
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 933db3e4627ecaf448f3fd5c457b2f5b455edcbc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 11:58:23 2011 +1000

    Fix a wrong comment
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 5c45c941493651ab9108e1416737ef89e485d67b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 27 09:34:11 2011 +1000

    release.sh: add reminder to bump configure.ac after a release
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 05280f008d2de2dade0d9b15bd8551b1dbee7e51
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 27 09:33:33 2011 +1000

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

commit c6b979e24d56823f30c5ee922a86c138dbe64341
Author: David Foley <favux.is@gmail.com>
Date:   Tue May 24 17:12:22 2011 -0500

    wcmValidateDevice.c: Add 0xE6
    
    Adds the E6 2FGT tablet PC.
    
    Tested-by: Ethan Schoonover <es@ethanschoonover.com>
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4e42edf896dfb4facab9c4f8b217226648100109
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed May 18 15:32:27 2011 +1000

    man: note that parent devices can't be matched.
    
    MatchProduct "stylus"
    
    won't work since the "stylus" bit is appended by the driver, after the
    server has already applied the MatchProduct directives. This only applies to
    the parent device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit 63c885670bde3b10b4755075bb4af6466b3dc46d
Author: David Foley <favux.is@gmail.com>
Date:   Thu May 12 14:19:28 2011 -0500

    wcmCommon.c: fix cw and ccw swap
    
    Return cw and ccw to expected behavior.
    
    Tested-by: Buran Ayuthia <the.ayuthias@gmail.com>
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 85dd620e2664d1f374a2c4aad27bf0bed41118ab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 14:32:56 2011 +1000

    Force all serials to be unsigned.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 429e9d569d9907f7954384dab433f2a267f173e1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 15:30:34 2011 +1000

    Add a property to bind the device to a serial number.
    
    This is a read/write property to force the device to a single serial number
    only.
    
    xsetwacom parameter BindToSerial
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit a4ce692ea35911fa597eff477e209c4ec49af79e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 15:03:44 2011 +1000

    Rename iserial to serial
    
    iserial is confusing. It may be hungarian notation or it may be an index for
    the serial. In this case, it's simply the serial number, so name it
    "serial".
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 59b985c939e70a530db7726a3cf5e84bbb1b74ed
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 15:02:56 2011 +1000

    Add some more documentation to the new serial hotplugging code.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit aa89172deace263fca239ce9fdbcdc1e928d4e62
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 15:01:52 2011 +1000

    Make wcmHotplugSerials static
    
    This isn't called from anywhere but the hotplugging code.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit acd2181f87dfc1f7d20a6eca7b80914ced48c62c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 13:16:07 2011 +1000

    xsetwacom: add ToolSerialPrevious to retrieve the last tool in proximity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 488782ca502074821aeec026e2e940add068e819
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 12:58:19 2011 +1000

    Only update old_serial when going out of proximity.
    
    And set cur_serial to 0 when that happens.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit a88102fafbab8075162032b1d3ee0bce4da625b5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 12:48:42 2011 +1000

    Update the device's serial number when it comes in.
    
    Split serial number internally into
    - serial: the serial number this device is bound to, 0 if unbound.
    - cur_serial: current serial number in proximity
    
    Then update the serial property with the current serial. Because of SIGIO
    malloc restrictions, the property must be updated through a timer function.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 85a2c91fb8b489968ac21f848d75a7c8b3d1c207
Author: Alexia Death <alexiadeath@gmail.com>
Date:   Thu May 5 11:40:57 2011 +1000

    Get the latest values for serial numbers when a client asks for them.
    
    Whenever a client requests the property values, update them from the current
    device state. Due to race conditions with the SIGIO handler, we have a
    window between updating the device state (during the handler) and updating
    the property and sending events (requires alloc, thus not in the handler).
    
    If a client asks for the property value, update from the state so the window
    only affects property events, not actual values.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 8f1c120bc68231d312794bc6479514f45820b74f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 11:25:47 2011 +1000

    improve documentation for serial property
    
    - document serial ID property as read-only.
      It is already read-only in code, add a comment to say so in the header
      file.
    - serial values are unsigned.
    - document hw device id as such, it's not the device ID libXi clients see
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 2c94cc7554c3874567ab999a64ef086505576e83
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 13:11:16 2011 +1000

    xsetwacom: add missing arg_count to a serial/tablet ID parameters
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 7af794a2acdee4bdc6e3ad73d6c4f42598e9a87e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 13:15:24 2011 +1000

    xsetwacom: add a bit more tracing to the get code.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 21c25ef7b3eda57ab00c1f2576cfba0e4ef9dba4
Author: Alexia Death <alexiadeath@gmail.com>
Date:   Mon Apr 18 11:26:43 2011 -0700

    man: Describe ToolSerials option
    
    Adds a description of the "ToolSerials" option to the driver manpage.
    Slightly modified from Alexia's original patch (breaks the list of
    types out into the description)
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1284bc5a858557a2739b67de401d25bcab3e1cf6
Author: Alexia Death <alexiadeath@gmail.com>
Date:   Mon Apr 18 11:26:40 2011 -0700

    Add ToolSerials option for hotplugging pens
    
    Provide a new "ToolSerials" option which describes tools that should
    be automatically hotplugged along with the standard devices. This is
    achieved by parsing "ToolSerials" while the master device is being
    initialized to create a WacomTool list. This list is then used while
    hotplugging child devices to create tool-specific devices with the
    "Serial" option set appropriately.
    
    The "ToolSerials" option should be added to the 50-wacom.conf file
    in /etc/X11/xorg.conf.d so that it is applied to hotplugged tablets.
    The option takes the following format:
    
    Option "ToolSerials" "serial[,type[,label]][;...]"
    
    Or, for a more concrete example:
    
    Option "ToolSerials" "113246231,airbrush,Airbrush;85983311,artpen,Artpen"
    
    ToolSerials recognizes the "pen", "airbrush", "artpen", and "cursor"
    types. Unknown (or unspecified) types default to creating "pen"-type
    tools with both 'stylus' and 'eraser' devices.
    
    Signed-off-by: Alexia Death <alexiadeath@gmail.com>
    Acked-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    
    Squashed in:
    Have ToolSerials patch re-use existing infrastructure
    
    This tweaks the prior ToolSerials patch to use the existing
    infrastructure where appropriate. For instance, using the 'WacomTool'
    struct instead of the custom 'WacomToolSerial' struct.
    
    This should actually be integrated as a "fixup", but is included
    here to more easily see the changes from the original.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 74a53cf8aa9ded9978d8f085446871d266dd4bf4
Merge: 0d7790b8 ec23bdd0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 19 16:04:25 2011 +1000

    Merge branch 'next'

commit 0d7790b80ded4a33b6a81ebc0f8f11ccfbd27fa9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 19 14:05:44 2011 +1000

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

commit ec23bdd01334dbb655d97c85b1a366ac7eaf830c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Apr 14 17:06:11 2011 -0700

    Retrieve resolution from the kernel whenever we can
    
    The resolution table has been added to the kernel driver. Let's use
    it when we can.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5b073528db237c46fdd3281e73a36f81ef494791
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 12 11:12:20 2011 +1000

    Add mask checking macros.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7958bb9b1ddef9e8238615fd1b3d15996f00effe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 7 15:23:28 2011 +1000

    Move common default values to wcmNewCommon()
    
    No functional change, just moving initialisation to where it belongs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 3081ecb428d29c639cb2874958b8f95be6978ede
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Apr 13 15:43:49 2011 -0700

    Fake resolution for 9F and E2
    
    9F and E2 are touch only devices, for which we need to retrieve
    the resolution from the kernel. So, the resolution defined in
    WacomModelDesc does not count for anything. However, to avoid
    future questions about the weird "394", align them with their
    cousins.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3beefe834692048dd04d877a05bb85e0ed7c4c80
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 12 12:06:11 2011 -0700

    man: Use __drivername__ instead of "wacom"
    
    Because hardcoding things is uncool
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 432f3cb434d707bc516f930bd9ee1863685e2110
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 12 12:06:10 2011 -0700

    man: Fix __drivername__ macro
    
    It seems we've been having this macro dangling in our manpage since
    0862aa3d74378abbf9f23289ab864a4d07305d0d
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e6743f3c8adc54c4a6d19e2e1fcd884091145c90
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 12 12:06:08 2011 -0700

    man: Update usage information
    
    The usage provided by '--help' is more accurate than that provided
    in the man page, and some arguments to '--set' do not require a
    value.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 52408eac9cf497a410952284046b8fed3aa32d4b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 11 13:42:42 2011 +1000

    isdv4-serial-debugger: return early if tcgetattr() failed.
    
    Fixes compiler warning
    isdv4-serial-debugger.c: In function ‘set_baud_rate’:
    isdv4-serial-debugger.c:127:6: warning: variable ‘rc’ set but not used
    [-Wunused-but-set-variable]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8caa65efe358e12873ef3f8c17cd0d7a990a6419
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 11 13:40:20 2011 +1000

    xsetwacom: remove two unused variables
    
    xsetwacom.c: In function ‘keysym_to_keycode’:
    xsetwacom.c:964:6: warning: variable ‘group’ set but not used
    [-Wunused-but-set-variable]
    
    xsetwacom.c: In function ‘get_actions’:
    xsetwacom.c:1747:25: warning: variable ‘last_press’ set but not used
    [-Wunused-but-set-variable]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 161bcb48340bb9ef0b694b5bd33c7e5ed5db3ce6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 11 12:13:00 2011 +1000

    Fix higher button events.
    
    Buttons higher than sizeof(int) weren't getting sent. The mod_buttons macro
    needs to test for the number of bits, not bytes.
    
    Introduced in 880512f84c26cddbfc1a8ff495890595424466f2
    
    Reported-by: Andrzej Giniewicz <gginiu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 58a258600cb1138c160c6625816897ea18e34cf2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 8 11:25:01 2011 +1000

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

commit 2bbbe4546f56cd825606eff870e4817766d2e654
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 5 15:37:04 2011 +1000

    man: add hotplugging info to man page
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1390685854f7eedcb6802adaba8df274e96a4177
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 5 15:21:07 2011 +1000

    man: remove reference about different zones - unsupported
    
    We ripped this out with 13a12bb852f8 Purge toolarea from device rec.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 77b9f3cafc32adad76100f293fde6599a671f22b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 5 15:17:45 2011 +1000

    man: don't mention the core pointer, it doesn't exist
    
    Obsolete since server 1.4
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4d854858ca4de352546de179e1039c43921e15bf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 5 15:16:23 2011 +1000

    man: refer to both xorg.conf and xorg.conf.d
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2110435235c371da647a58647535cf8e268fb603
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 30 09:15:34 2011 +1000

    Don't accept invalid device types.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6e10b33b25ac99280b387f8692e46e55d6d9ca8e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 8 11:38:28 2011 +1000

    xsetwacom: fix --help output formatting
    
    The excaping of the two quotation marks means we need extra spaces here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b8404011790e4b06ee46b471195eefd05fa304a0
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 13:54:46 2011 -0700

    Have wheel and strip properties be "actions" instead of "buttons"
    
    Continuing with removing raw button code, we create the wheel and
    strip properties ready to hold actions. Prior to this, the properties
    would be initialized with the raw buttons; before xsetwacom could
    set them to actions they would need to be converted.
    
    This does away with the conversion step by following the mold already
    in place for buttons. With no more need for conversion, we can also
    nuke the conversion-related bits from xsetwacom.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f3a358796133e04dbf91e57c1bc4760002ba9b3c
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 13:54:45 2011 -0700

    Decrease minimum number of args to 'set' [allow wheels/strips "reset"]
    
    Since the worker functions now check that they have the appropriate
    number of arguments, its possible to decrease the number of arguments
    required by 'set'. Since all it really needs is a device number and
    a property, the minimum argc is now 2.
    
    A handy side-effect of this change is that its now possible to run
    e.g. `xsetwacom --set $ID StripLeftDown` to reset the action to
    its default. Doing the same with buttons has been supported, but
    wheels and strips were out of luck because they would require too
    few arguments to 'set'.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c78c2759a9b87db1078d760a0108b0f5dac5ed58
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 13:54:44 2011 -0700

    More strict argument-count checking
    
    Add/replace checks in functions to ensure that they have the right
    number of arguments to do their job properly. The worst offender
    here was the set() function -- providing too many arguments would
    result in it walking off the end of data structures (often resulting
    in a segfault)
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d7ea18239de51d84706810b555ff3b2855b8856f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Apr 8 11:31:23 2011 +1000

    Change from prop_extra to arg_count
    
    When setting an XInternAtom property, 'prop_extra' listed
    the number of extra properties beyond the first that needed
    to be set. For instance WACOM_PROP_TABLET_AREA had a total
    of 4 properties, so prop_extra=3.
    
    To provide better argument validation though, we change this
    to 'arg_count' and list the total number of arguments
    expected. This doesn't really do anything for normal properties
    (since arg_count = prop_extra + 1), but does let us check
    for the proper number of arguments in odd cases (e.g.
    ResetArea takes 0 arguments).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>

commit c5ba63ce8e45bdecb650db78c8e2bb9dd454bfb3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 13:54:41 2011 -0700

    Fail with warnings where possible
    
    For many commands, improper arguments cause a silent failure. The
    user is often given no indication if their command succeeded or
    failed. I've tried to find all the silent "return;" statements and
    provide some kind of warning message where possible.
    
    In some cases I've added in new checks to ensure that we have the
    correct number of arguments. I've tried to make checks as pedantic
    as possible, e.g. throwing errors about number of arguments even if
    the function ignores arguments.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 19656e837c4bd3711b033992566058be790b5095
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 13:54:42 2011 -0700

    More explicit input check for set_rotate
    
    Because of how atoi() works, any single non-number (other than the
    expected cw,ccw,half,none) would be interpreted as being equivlent
    to 'none'. Since the number of valid arguments is very small, we
    explicitly check each.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 02f5fe64df98c963c865845e79b3a20cfddb62ca
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Thu Apr 7 12:25:32 2011 +0300

    Add support for Lenovo tablet ID 0xE6
    
    Signed-off-by: Timo Aaltonen <timo.aaltonen@canonical.com>
    Tested-by: Manoj Iyer <manoj.iyer@canonical.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 86fa0fb17e0cd34217e07671ac8f777c3fbe731f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 10:30:32 2011 +1000

    Update all tools rotation property when rotating one of them.
    
    All tools on the same tablet share the rotation value, so if one of them is
    rotated, all of them must be. Since the property value is stored in the
    server, we need to trigger it explicitly.
    
    Test case:
    $> xsetwacom set "device name stylus" Rotate half
    $> xsetwacom get "device name eraser" Rotate
    
    Should print out the correct rotation value.
    
    Fixes #3070450
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit fd952b4e69bd2b2f39df36d1d489fecb47e2ae3a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 15:33:34 2011 +1000

    Don't rotate hotplugged devices.
    
    We only rotate on a per-tablet basis, not per-tool. Don't accept rotation
    values on dependent devices (unless they're the same, then be quiet about
    it).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 5cf22a3a39799cb1c50298d73c34fd397ad717b1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Apr 6 11:24:05 2011 -0700

    Expand manpage documentation for "Button" parameter
    
    Include list of parameters that are supported, as well as an example
    of mixing keywords in one action.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1c76a5942b36844b2fee80ca28b8481744f984cf
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 5 17:49:27 2011 -0700

    Swap range of 'RawSample' and 'Suppress' in man page
    
    Looks like the range of these two options was confused a while back.
    Switch them so that the right option has the right range.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8d57fb1693fe3a78fc6002570a9c132c067f7919
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 5 17:49:26 2011 -0700

    Have man page reflect per-tablet nature of 'Rotate' option
    
    Change documentation to indicate that rotation affects all tools
    associated with the same tablet.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2c30edb2b6a9542e945623fe0e215a5c04281655
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 5 17:29:20 2011 -0700

    Cause '-V' option to xsetwacom to exit like '--version'
    
    Unexpected difference in behavior between two ways of specifying
    the same thing. '-V' no longer prints the version and continues
    to run the rest of the program.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 35d14d75a0d06e32f3583733fcc987879c6e15f6
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Apr 5 17:29:19 2011 -0700

    Correct order of arguments to calloc
    
    Not that there's much difference between 4*(256 bytes) and
    256*(4 bytes) of memory...
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6424d65c613ee024795b4d529c1d2473650e01f5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 15:31:50 2011 +1000

    Factor out rotation parsing and setting.
    
    No functional changes, prep work only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit da6cbaf3c8b0bb9f5d993ec0291c5919b52ebdee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 5 13:27:33 2011 +1000

    Rename hotplugged to is_primary in wcmParseOption.
    
    The parameter is true for the primary device only (i.e. the one that
    _triggers_ the hotplug). It is false for any driver-hotplugged device
    and false for xorg.conf devices. So "hotplugged" is a rather misleading
    name. Rename to is_primary instead.
    
    Document this and while we're at it, change the function to use Bool instead
    of int.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 1da14469d2cdfe68ddbe4d451a7e757ad2a4705b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 15:22:36 2011 +1000

    Remove superfluous call to wcmRotateTablet().
    
    This is a leftover from the times when we reconfigured the axes based on the
    rotation. It doesn't do anything these days.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit e0354b9fde1e489bd0c87aa7f34b827ce3e27778
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 13:34:30 2011 +1000

    xsetwacom: add PROP_FLAG_INVERTED for Hover Click/TPCButton
    
    The Hover Click property is inverse to the TPCButton xsetwacom
    option/xorg.conf option.
    
    This commit restores the original behaviour for the property as before
    f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce but fixes xsetwacom that users of
    xsetwacom won't notice the difference.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 5984c9aecc6f80d936f8b0f81a63f31cd23f2e19
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 13:29:59 2011 +1000

    Revert "Correct TPCButton property inversion"
    
    "Hover Click" and "TPCButton" are not the same meaning. TPCButton behaviour
    is that Hover Click is off and vice versa. Hence the property inversion is
    there on purpose.
    Add some documentation to make this public.
    
    This reverts commit f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce.
    
    Conflicts:
    
            src/wcmXCommand.c
    
    Reported-by: Michal Suchanek <hramrach@centrum.cz>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit d855766a53c005d12a56be23f9fcfce5d5922aa7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 14:01:46 2011 +1000

    xsetwacom: modularise test for bool conversion.
    
    No functional changes, just making it easier to test for other features in
    the future. Some strings to test again have changed, but we really only
    need to test for sane true/false values anyway ("oFf" is not sane enough to
    worry about).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8f2dce908d1a591c315b61fce4d66346d4f2213a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 13:45:00 2011 +1000

    xsetwacom: constify convert_value_to_user
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 493e673a2e55356b1f53bd9b9229426f171f9094
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 15:45:15 2011 +1000

    Revert "Update all tools rotation property when rotating one of them."
    
    This commit is incomplete, shouldn't have been pushed.
    
    This reverts commit 570b9d06b20e3eb4e93501594d29e3b24d46d24a.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4ed300dbb3002230c578681fd86eebef414dc272
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 12:07:52 2011 +1000

    Only update bottomX/bottomY if they haven't been user-configured.
    
    wcmInitialToolSize() would xorg-configured overwrite BottomX/Y with the max
    values read from the tablet. Only set the two if they are non-zero (0 is the
    default value).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 1de7a780a392e363450967dfab8c3dd065fd0348
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Apr 3 16:07:38 2011 -0700

    Centralize pen and touch arbitration
    
    With the introduction of multi-touch, the chances of getting touch
    events while pen is in prox have been increased. One obvious use
    case is that the touch events could be used for gestures while pen
    is in prox. However, we do not want two cursors compete on the screen.
    
    Link the pen and touch device once during the initialization stage
    instead of every time when we receive a pen event. Then, centralize
    pen and touch arbitration process so we can store the touch data in
    wcmUSB.c instead of discarding them. The touch events will only be
    ignored if it is a single touch event that causes a cursor movement
    while pen is in prox.
    
    Some cleanup in wcmUSB.c is needed. It will be considered when we
    make MAX_CHANNEL a dynamic value based on MAX_FINGERS. The
    MAX_FINGERS is going to be the maximum of ABS_MT_SLOT that we
    retrieve from the kernel. That brings us to the state to support
    XInput 2.1 and devices that have dynamic number of fingers.
    
    Note: this patch is based on the assumption that all devices
    connected to the same system have unique product IDs. That is,
    no two or more identical devices are connected. Identical devices
    will be properly linked when we find a decent way to distinguish
    them in the driver.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 307ad96795605fc39d2c454e4c7efde94ecbed3c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Apr 3 16:05:42 2011 -0700

    Add IsPen to cover both IsStylus and IsEraser
    
    It will be used more often when we need to compare touch events
    with pen events.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 570b9d06b20e3eb4e93501594d29e3b24d46d24a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 4 10:30:32 2011 +1000

    Update all tools rotation property when rotating one of them.
    
    All tools on the same tablet share the rotation value, so if one of them is
    rotated, all of them must be. Since the property value is stored in the
    server, we need to trigger it explicitly.
    
    Test case:
    $> xsetwacom set "device name stylus" Rotate half
    $> xsetwacom get "device name eraser" Rotate
    
    Should print out the correct rotation value.
    
    Fixes #3070450
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bb29b90d29aa8ea25120c3db8b6ce9ca563cf202
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Apr 3 08:49:13 2011 -0500

    fix filter issue on MT bamboos
    
    Init tool device type is needed for all MT devices to do correct
    filtering; not just pen+MT tablets.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b9566151e6029f77dcf22526308dabb262400774
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 1 14:54:05 2011 +1000

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

commit f72c358177a2b588c4915bf6fa5cd00f183c9486
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 1 14:59:20 2011 +1000

    test: update Makefile for include folder
    
    Fixes make distcheck.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cd0738f41c875c8a2ad5444558c505b47898a7f1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 30 13:09:59 2011 +1000

    Move npadkeys to fix comment.
    
    Fixing the comment would do too, but it really doesn't matter.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 81f191d7ed9ec1187f37c1df36db0683f65bd4a3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 30 12:55:26 2011 +1000

    Replace manual array size with ARRAY_SIZE macro.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit b522fdb493cb378af3206793e0b44d6652f7427c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Mar 30 16:24:15 2011 -0700

    Check predefined serial number as early as we can
    
    Don't wait before we can post the events. Verify the serial number
    as soon as the information is accessible.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 155a4b96ae8f03d3c07a93622d4f1f1da266d174
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 10:32:15 2011 -0700

    Revamp button/wheel/strip getters
    
    'get_map' is the new getter entrypoint and attempts to determine
    the mapping present on buttons, wheels, and strips. It calls on
    'get_actions' (essentially get_special_button_map) and 'get_button'
    (an 8-bit XA_INTEGER version of the same) to determine this. If
    both fail to find a mapping, it falls back to the method originally
    used for non-actions: punt and ask XGetDeviceButtonMapping for
    something.
    
    When raw buttons are removed from the driver, it should be possible
    to replace 'get_map' with 'get_actions' (since everything will be
    an action at that point).
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0f20c9b1d94bd8a53e5e9b6cf1b6f599457a1dca
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 30 10:31:25 2011 -0700

    Merge 'map_wheels' and 'map_button' into a unified 'map_actions'
    
    These two functions are very similar, and have been merged together
    to provide a single conduit for all action mappings. Button-handling
    code requires a little bit of special-casing (we need to be sure to
    get a button to modify, and to change the arguments appropriately),
    but nothing remotely worthy of breaking into its own function.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5f0b0dd0ed106a99d356e95bb4b73fadba21194d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:36 2011 -0700

    Remove 'special_map_wheels' and 'special_map_buttons'
    
    Since neither function actually do anything that couldn't just
    be done in 'map_wheels' and 'map_button' respectively, we simply
    squash them together.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e9e7397cd1f1bc37f27992114cebd39f4ad93e12
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:35 2011 -0700

    Remove map_button_simple
    
    With parse_actions now handling simple button mappings, we remove
    this function which essentially duplicates its functionality.
    
    Note that there is a small difference in how the new parse_actions
    code and the old map_button_simple code handle things. The former
    Translates a single numeric argument into an action (e.g. "3" is
    turned into "button +3"). The latter cleared any existing action
    and used XSetDeviceButtonMapping to have X remap button events.
    
    To better explain the difference, consider the two following commands
    run in sequence:
    
    xsetwacom --set $id button 2 3
    xsetwacom --set $id button 3 button 2
    
    Under the old map_button_simple code, both buttons 2 and 3 would
    produce a right-click event. This is because the first command has
    X remap all "button 2" events into "button 3" events. Since both
    button 2 (by driver's priv->button[]) and button 3 (by the explicit
    action) produce a "button 2" event, X remaps both events into "button 3"
    events.
    
    Under the new parse_actions code, things are what you'd expect: button
    2 produces a right click and button 3 produces a middle click. If the
    user wants, they can use `xinput set-button-map` to remap the buttons
    the same way that map_button_simple did.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f66bf4568c8b7005ab5611ab1b8c5c0c3819b1e3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:34 2011 -0700

    Allow parse_actions to parse simple button maps
    
    If argv contains only a single numeric argument, we assume the
    intent is to perform a button press. We add the necessary keywords
    to make the parser happy, and then parse as normal.
    
    This allows map_wheels to handle the "raw button" case that it has
    been missing. While map_button_simple also does the same* thing,
    that's another commit :)
    
    *Actually, map_button_simple does /almost/ the same thing, but I
    highly doubt anyone relies on the subtle difference in behavior.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e9dae780cb549f48aaf376af2b6382604c2760a5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:33 2011 -0700

    Make it clearer when actions are sent
    
    When I first saw this, I thought somebody forgot to put an else
    clause here; I completely missed that tiny return statement. This
    makes the reality a little clearer.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 357e3c3c50d81bd57bd412d7d6bde9120d367f4b
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:32 2011 -0700

    Add WACOM_PROP_WHEELBUTTONS to cursor devices
    
    This enables the "Wacom Wheel Buttons" property for cursor devices,
    allowing xsetwacom to set (rel|abs)wheel(up|down) actions. I'm not
    sure if there are non-puck cursor devices which should *not* have
    this enabled, but until somebody says otherwise... :)
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c416728a5656748075f6671805d8da3869af2522
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:31 2011 -0700

    Fix strip/wheel mapping
    
    Commit 2ce1c6b4 fixed a bug where X would crash after remapping
    strips or wheels. It made all the "keys" arrays one-indexed so that
    wcmUpdateButtonKeys would not write beyond the end of the arrays.
    
    This patch syncs the action lookup code with the use of one-indexed
    arrays so that the proper action is returned.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c7058d85a913d2f2a494667a640d4a25e6ca0e34
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 30 14:04:44 2011 +1000

    xsetwacom: add a comment to update button actions in the right order
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit db66113366af1054c625940ba38c207d15bd59c1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 29 16:18:30 2011 -0700

    Fix "buttons must be set twice" bug from d650b139
    
    *facepalm* I simply can't believe I didn't test this, but there's
    no denying the bug exists. Looks like the change to 'btnact_prop'
    *must* occur after the change to 'prop'. If it happens beforehand,
    then the driver appears to be eternally one step behind xsetwacom.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9e46d9776f6c57abc128ac12a9ef8c03ad242eac
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 30 08:32:25 2011 +1000

    Add some comments for device_id and device_type handling.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit c5cbebabe796e86b94467bb7de3387e4e708f40a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 20:45:22 2011 +1000

    Remove discard_first field from DeviceStateRec
    
    Obsolete since the removal of old serial devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 2cc298863457fe9e171cb2c7494b83f2d971ccdb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 20:45:21 2011 +1000

    usb: print invalid max value if we get one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1421082661074a201ec2bd98b826ac4154cef9f0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 20:45:20 2011 +1000

    usb: swap two checks.
    
    If the absbit isn't set, don't bother with the EV_ABS ioctl.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 6e21f9c6a7abc79eb89d4c742ffd0cee6bf86552
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 20:45:19 2011 +1000

    usb: remove to superfluous linebreaks.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2d55e561956dc7beb0aa6fd2d814c0540e654e34
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 28 10:06:56 2011 -0700

    Change hardcoded string to already-defined constant
    
    WACOM_PROP_BUTTON_ACTIONS is already defined in wacom-properties.h
    Lets use it instead of all those magic constants.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 32d14dc4a9787356024020fd25e463a90a25f349
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Mar 28 17:51:34 2011 -0700

    Resolve the oldHwProx puzzle
    
    Change oldHwProx to oldCursorHwProx to better reflect its use.
    
    oldCursorHwProx keeps the hardware in/out prox state so we can
    set the MaxCursorDist for the next round of relative cursor
    movement when tool first comes in prox.
    
    For Protocol 5 devices, distance is reported as the maximum
    when tool is first detected. Then it is gradually reduced to 0
    when getting closer to the tablet. Protocol 4 is the opposite:
    distance is 0 when tool is first in prox. The value increases
    as the tool gets closer to the tablet.
    
    The maximum distance (wcmMaxDist) is model specific. They are
    retrieved from the kernel.
    
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5fec376c46e3840fe2e3f838df67cefee1c0d6c6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 10:55:58 2011 +1000

    ISDV4: use libudev instead of manual syspath creation.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 4b475087b827d143df93c2acc0017a9b79ff859a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 11:37:39 2011 +1000

    ISDV4: update a comment, we may return tablet id 0x90 on failure.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit d650b1399d37e6f2b6f151b011d72b219a5405b8
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 25 17:32:56 2011 -0700

    Make set/unset code easier to understand
    
    Between the parsing code seperating the two halves of set/unset
    and the code being confusing in general, I've rewritten this
    to hopefully make its operation a little clearer for the next
    person.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5b27df4274ae59e0e279096ac46836564d22c2ea
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Mar 24 18:02:54 2011 -0700

    Make parse error more helpful
    
    When a set of arguments cannot be parsed, knowing the word that
    did not make sense doesn't help if you've used it more than once.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d6ac23b79ccf65d30f07dbb1986ad9d6773ecd30
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Mar 24 18:02:55 2011 -0700

    Don't use unset_prop
    
    We don't need to bother changing the device property if
    we're unsetting since we're just going to be deleting it
    anyway.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c932e062ba894e50d2dd4c2e653e86915597ee52
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Mar 24 18:02:53 2011 -0700

    Return from function on parse error
    
    If the arguments to this function are only parseable up to a point,
    the function prints a warning but still makes the (partial!) requested
    change. For example, if the user runs:
    
    xsetwacom --set 10 Button 1 "key +a notakeyword -a"
    
    The program prints a warning about it not recognizing "notakeyword" and
    maps Button 1 to "key +a". Instead of making partial changes, xsetwacom
    should instead bail at the first sign of a problem.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c690302586bf352395ca7bd1299866a97cc054da
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Mar 24 15:36:03 2011 -0700

    Add CursorProximity to xsetwacom.man
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ed668c1b768967b3bf5a6174c16c6d3732c1b4fe
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Mar 23 14:57:51 2011 -0700

    PAD is always on PAD_CHANNEL
    
    Don't assume the last tool was a pad, which confuses those tools
    that never receive a serial number. Keep PAD on the PAD_CHANNEL.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6278f4fe4afd3ae627ea676e3c655f1e3968cd8b
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Mar 23 14:57:33 2011 -0700

    Fix a copy/paste error in usbFindDeviceType comment
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dfc8404bec1d9d4d5eb65a2d29779d7ae1a18d62
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Mar 23 14:57:12 2011 -0700

    Support pen and MT on the same logical port
    
    Serial ISDv4 kernel driver, wacom_w8001.ko, provides both pen and
    touch events on the same logical port. Filtering touch events when
    pen is in proximity while allowing pen events (ABS_X/Y, etc) pass.
    
    Making this action configurable would make sense when XInput 2.1 is
    ready. At that point, we can post MT valuators while pen events are
    posted. Some code refactoring is needed to add a new channel to
    store the pen data as well as the 2FGT data.
    
    Defering the code refactoring until we support XInput 2.1.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 842f2e28f8ce90991bdb60921250c97a11101104
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 24 12:01:34 2011 -0400

    Silence compiler warning.
    
    ../src/wcmCommon.c: In function 'sendCommonEvents':
    ../src/wcmCommon.c:382:2: warning: 'value' may be used uninitialized in this function [-Wuninitialized]
    ../src/wcmCommon.c:329:22: note: 'value' was declared here
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 307f50afba024cb6558d7084f5a7d86ec76bd992
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 22 14:02:32 2011 +1000

    Fix strip_keys index, copy/paste error.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 880512f84c26cddbfc1a8ff495890595424466f2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 22 13:50:44 2011 +1000

    wcmUSB: change MOD_BUTTONS macro into a function
    
    Values in, values out. No magic state structs, keep it simple.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit aadf1e0d215e3e7dfe119c3e541d35854de2326a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 22 12:00:41 2011 +1000

    test: drop glib dependency
    
    We weren't really using any of the glib-specific stuff anyway, so just
    replace g_assert with normal assert and drop the dependency.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 91fb559b5b760c345333ec7ac67f429d61b44f9d
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Mar 21 17:56:09 2011 -0700

    Bring idtotype and findDeviceType to the style
    
    Make them into the usb family and follow the style guide.
    Consolidate tool id for the existing tools into three defines.
    Update findDeviceType to cover more cases so it may be called
    by other routines to retrieve tool types.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b0a6637a4cf262436fb21c2b734241f376289deb
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Mar 21 17:55:41 2011 -0700

    Move findDeviceType from wcmCommon to wcmUSB
    
    Serial model is not supported. So, findDeviceType is only used by
    wcmUSB.c.
    
    Now it is the individual model's, wcmUSB or wcmISDV4, responsibility
    to set the device type locally. For wcmUSB, since kernel input filters
    out duplicated events, we should retrieve the device type and
    associated events directly from the kernel to cover the case when tool
    is on the tablet during driver starts.
    
    wcmCommon.c will treat packet with undefined device_type as invalid.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 201d1c35c7de919714815be18b990e9acc570054
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Mar 21 17:55:18 2011 -0700

    Prepare for the removal of BTN_TOOL_FINGER for pad tool in the kernel
    
    BTN_TOOL_FINGER was borrowed to group PAD events. With the support
    of pen and touch on the same logical port, we can not use it any more.
    
    PAD events of generic protocol has already manually routed to the pad
    channel, the last channel of wcmChanel.
    
    This patch groups PAD events for protocol 4 and 5 by the device_id
    sent through ABS_MISC event. In/out proximity event is also set by
    the ABS_MISC event.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 09f6c0faade997da490c1cd0277eb7f2f6cc9ef3
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 18 18:01:17 2011 -0700

    Clear the correct amount of memory
    
    Though this doesn't result in any bad behavior at the moment, it
    could cause some serious headaches in the future.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ce1c6b47ff1596093d48b5cfccaddf17c6d2924
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 18 18:01:16 2011 -0700

    Fix X crash after remapping touchstrips and wheels
    
    Crash first appears in ab311bf20535acd6e7201e024bc311e0e15b5b6b.
    This commit rewrote wcmUpdateButtonKeyActions with one-indexed
    arrays in mind and extended the 'keys' array in _WacomDeviceRec
    to make room. However, the 'wheel_keys' and 'strip_keys' were
    not updated.
    
    Running e.g. `xsetwacom --set pad StripLeftDown button 4` results
    in a call to wcmUpdateButtonKeyActions. Its call to memset oversteps
    the array bounds and just happens to zero the 'common' pointer. The
    next tablet event results in a segfault as the driver tries to
    dereference the pointer.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1427db0bfea8c015ddb713f49eb0f33450266e60
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Mar 21 14:10:42 2011 -0700

    Enable left click for MT touchscreen
    
    Tools that are in absolute mode emit left click when the tool touches
    the surface. However, tools in relative mode need to locate the object
    on the surface before it selects (left click on) the object. That is,
    a second event (tap/leave/touch) is needed to trigger a left click for
    relative mode tools.
    
    Tools on touchscreen is in absolute mode. So, send left click
    down/up when the first finger touches/leaves the tablet.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1c0696570c78b3454a9d847e5e9fe91bf0f04e9c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Mar 18 15:07:24 2011 -0700

    Remove one FIXME
    
    Get the "f" out of the code as well as the root cause.
    
    A proper fix would be to use resolution to decide the distance.
    That can be considered when we push the resolution table to
    the kernel. Hopefully, at that time, we can also post MT events
    to XInput 2.1 and push the gesture support to the desktop.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b8287e090c5d994a3f99eed227dbb08ad78c469
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 16 10:06:01 2011 +1000

    xsetwacom: add pgup and pgdwn as special keys.
    
    "Prior" and "Next" aren't quite that obvious so specialcasing seems
    warranted here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 1cfe05195698583e002d19eb12fc6221639283df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 16:22:33 2011 +1000

    xsetwacom: update the property when we have items to write
    
    Introduced in 22bc3028effbdc79d426c0b3dcf586734d4c7532, changed logic caused
    the property not to update in all cases.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7ed24d165121e167930e34a3ea8532e358c003f5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 15 11:54:49 2011 +1000

    Add fake symbols for serverClient and QueueWorkProc
    
    Broke linking of unit tests in
    94a8eabadd062de6ceed8563089b863d887f8770.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 863714247c8d6020748c0cf099f1e06caf6b2b06
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 14 16:10:59 2011 -0700

    Add tests for convert_value_from_user
    
    Some basic tests to ensure booleans and non-booleans act like we
    want them to.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f58feb275b51f1f9e059e668609591434021559f
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 11 15:13:54 2011 -0800

    Expand recognized boolean input for convert_value_from_user
    
    We remove the case sensitivity requirement for off/on and also
    allow the use of "true" and "false"
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d4f44eddeb497ecfaa99449b565f6bdf46c3b9fa
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 11 15:13:53 2011 -0800

    Use strtol instead of atoi in convert_value_from_user
    
    atoi provides only the most basic string conversion capabilities,
    and makes determining if conversion was successful difficult (both
    "abc" and "0" would return 0). We use strtol and checks to ensure
    that it converted the entire string sucessfully before returning True.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 12eebced3f004a0bea2c85d2197897de28bf7781
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 11 15:13:52 2011 -0800

    Detect boolean conversion failure in convert_value_from_user
    
    Properties with PROP_FLAG_BOOLEAN set can only take on a restricted
    set of values. We detect if the string matches any of the allowed
    values and convert if possible. If not possible, the caller is notified.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e5af4b9928b983227cad711496d258cde5d62cfd
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Mon Mar 14 16:19:24 2011 -0700

    Change signature of convert_value_from_user
    
    Have it return true/false to indicate conversion success/failure.
    Note that in its current state the function cannot tell if there
    was a conversion failure...
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9ecc125c1c59b591a89e6f10b79b2e1e49c86165
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Mar 13 22:27:44 2011 -0500

    Initialize USB pad device once up front
    
    Streamlines normal execution some but also resolves an issue reported
    for older Bamboo's since its now executed for all protocol types
    and not just generic protocols.
    
    Older Bamboo's and Graphire series always keep PAD device in proximity
    so you can pretty much count on never recieving a BTN_TOOL_FINGER
    event.
    
    This does work of that missing event.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 33a031cab73424a0a1ea5ded36fa6631c9a5811e
Author: David Foley <favux.is@gmail.com>
Date:   Mon Mar 14 15:54:52 2011 +1000

    xsetwacom.man: Fix whitespace issues
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3c0a16ac630603bf966e0a9fc1ee6d5be4276156
Author: David Foley <favux.is@gmail.com>
Date:   Sun Mar 13 17:57:10 2011 -0500

    xsetwacom.man: add RawSample and Suppress parameters
    
    Add RawSample and Suppress to parameter description table.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 301297d6423a3556fd94006d739a4afca82b5812
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 10:12:48 2011 +1000

    Re-vamp source inclusion for test build suite.
    
    test/Makefile.am included src/Makefile.am for the driver sources. However,
    that also lead to the driver being built twice, once in src/ and once in
    test/. On make install, test/wacom_drv.so would overwrite the
    src/wacom_drv.so and thus install a driver with all static symbols compiled
    as non-static.
    
    This caused the VCOPY bug worked around in
    9d227cd0bd985e7dcb7923974361145ba1d78713.
    
    Avoid this by moving the sources into a shared included Makefile and build
    an independent libwacom-test.la in the test directory.
    
    Reported-by: Eduard Hasenleithner <ehasenle@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Eduard Hasenleithner <ehasenle@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 36ea587badc947c027c40ee4387a2d5540a9a5b3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 11 09:30:45 2011 +1000

    xsetwacom: remove unused need_update
    
    Unused since ba77b532e6c2a0b7b05ab129009c1f614b089c37
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit a3b6e2079155c5774baabcd9e3c53b3336536e49
Merge: 43c82c31 69d3e938
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 14 15:42:00 2011 +1000

    Merge branch 'race-condition'

commit 43c82c3139ef8b9abee7eb79a8d9055df9874329
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Fri Mar 11 08:39:50 2011 -0800

    Remove XWACOM_MAX_SAMPLES
    
    XWACOM_MAX_SAMPLES is a duplicate of MAX_SAMPLES, and appears to have
    no reason to be included in the Xwacom.h header. We remove it and
    retarget all references.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 676b25e5ec5eb70d45d3228b28bef5c8a68ab7f6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 11 10:53:51 2011 +1000

    Reset tiltx/y after converting it to rotation.
    
    Quote from Ping:
    "Since tilt is only used as raw value to calculate rotation for I4 mouse,
    i.e., they are not posted as valuators, resetting them or not does not make
    a difference."
    
    Let's reset it to 0 then so we don't get confusing values during debugging.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit abfcc2ac187a4a7131503c0aa80e166ca384034e
Merge: 857ef815 90ba0505
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 11 09:31:23 2011 +1000

    Merge branch 'wcmTilt2R-fixes'

commit 857ef8159451fe52cd999f523d9c500f6c32c0e1
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Mar 9 09:52:57 2011 -0800

    Perform bounds checking on RawSample
    
    I made the mistake of setting this to zero and then bringing my
    pen into proximity. Ooops. X crashed. Looks like mathematics
    still can't handle getting the average of zero things ;)
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 90ba05056578405307e737620782a581b942ef62
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 14:18:13 2011 +1000

    Change signature of wcmTilt2R to return the rotation calculated.
    
    Take an input point, calculate the rotation and return it. No need to deal
    with device state structures, etc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 1023572644c5f00a418043615e802484fcff6e71
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 14:13:37 2011 +1000

    Sanitize wcmTilt2R.
    
    Cleaning up the code, rewriting the calculations, documentating the steps
    taken. It's understandable now. Whoop-dee-doo.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 42dc7cb652c5cf84433aac2aa791dc9fdb39ec2b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 13:08:26 2011 +1000

    Add a offset paramater value to wcmTilt2R
    
    Say No To Hardcoding.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 08c5fc41ef3f81dafbb50856c589fdf4e9f5f89c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 4 09:39:15 2011 +1000

    Fix wcmTilt2R so it uses defines instead of hardcoded numbers.
    
    Every time number is hardcoded deep inside the driver, god kills a kitten
    and a little part of me dies (unrelated to the kitten death). Use the
    defines already.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 56c550a11b57ccdc3e0d9ebcdeb323734c7c48f7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 4 08:56:57 2011 +1000

    Document wcmTilt2R (and add a fixme)
    
    Because not everyone has hours to figure out what each function does.
    Come to think of it, I don't actually either...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8d61689016b961a33e6950b09f191c16741dd608
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 11:15:01 2011 +1000

    test: write a non-test for wcmTilt2R
    
    It's non-transparent what wcmTilt2R actually does at the moment, so generate
    a test table from the current code and test against that. This
    way we at least know when we're breaking something.
    
    Exception: wraparound value generates +900 instead of -900.  We must not
    send +900, our max range is 899, then we wrap again. This function isn't
    supposed to generate this value, so manually fixed up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8e4dabd64a611dd5571aef6aff8dfb5dd258655e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 4 09:41:48 2011 +1000

    Remove superfluous function declaration
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 65220fa0276cbec10b51832c2bf9946c4bbfc4e8
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Wed Mar 9 11:27:14 2011 -0600

    remove per-device filter function
    
    Over time, we've merged device specific filter routines
    into single version.  So there is no need for historic
    hook to register at runtime.
    
    ISDv4 devices never registered any filter which seems
    like it would result in jitter.
    
    Removed RawFilter() from WacomDevice structure and call
    wcmFilterCoord() directly from wcmCommon.c.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1af65269cd22ea69b5d0920922484e0b4be3f9f6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 10 12:04:21 2011 +1000

    Use xf86ScaleAxis for pressure normalization.
    
    And copy the server's xf86ScaleAxis for the test. Not ideal, I guess but oh
    well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0ee2a44a49ababe25dddc2b82dfa5a343fd7e893
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 8 17:50:44 2011 -0800

    Enable RawSample and Suppress
    
    The driver apparently didn't look at the RawSample option, and
    xsetwacom confused it's offset with Suppress. In other words:
    if you thought you've been tweaking Suppress, you've been tweaking
    RawSample. If you thought you were tewaking RawSample, you weren't
    doing anything.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 22fcd2305c1f7464bdf15286c2690fd307629c5d
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 8 17:50:43 2011 -0800

    Remove RawFilter from xsetwacom
    
    With support for the option completely removed from the driver,
    remove it from xsetwacom as well. Also modify the deprecation
    warning to handle cases like this where we don't want a replacement.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ca418548e8c0114df5c7830ae6e4dc28bf38caf4
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 8 17:50:42 2011 -0800

    Remove RawFilter option from driver
    
    This option was mostly removed from the driver at some point in
    the past, with only these vestigal lines remaining.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7861dc281307d2a8727a99c31009af8ede144479
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Tue Mar 8 08:53:44 2011 -0800

    Fix minor doc style inconsistencies
    
    Add/move periods and whitespace, make defaults consistent, and clarify
    where necessary.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3282e954f209683ee2026d72b2adfbf1d4c48cb0
Author: Andrzej Pronobis <a.pronobis@gmail.com>
Date:   Mon Mar 7 12:42:01 2011 -0800

    Decide scroll direction according to tablet orientation
    
    Signed-off-by: Andrzej Pronobis <a.pronobis@gmail.com>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fc41fb63dd883fc29236af535b22a2b347dfe326
Author: David Foley <favux.is@gmail.com>
Date:   Mon Mar 7 12:56:35 2011 -0600

    xsetwacom.man: Add 5 parameters
    
    Add Mode, PressureCurve, Rotate, TabletPCButton, and Threshold.  And other changes.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit acd8552d83929963d5cc70d6217c5a15da86c6c0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 7 14:38:31 2011 +1000

    Don't try to update the button mapping if we don't have anything to update.
    
    If keyword parsing failed and we have zero items to update to (but we're not
    trying to reset the property), don't update the button action property.
    
    Reproducer: xsetwacom set "device" Button 1 "blah"
    would print an error about invalid keywords but still update (erase) the
    button mapping property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit eba6b9416148e5423c5a0c2632d88dbee5589615
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 7 14:35:54 2011 +1000

    xsetwacom: fix button action unsetting
    
        xsetwacom set <devicename> Button 1
    should unsets the key action for button 1 (back to button mapping)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8ed4e95e8e65f569a3639959331f0a95b0917f11
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 7 14:29:21 2011 +1000

    xsetwacom: update a comment  for new button map arguments.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 22bc3028effbdc79d426c0b3dcf586734d4c7532
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 7 14:21:22 2011 +1000

    xsetwacom: don't re-use argc, add new var "unset_prop"
    
    No functional change, making the code more readable.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit fe07179e4976cdcc530bd2dd3cd482a65a3fd43d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 7 14:16:55 2011 +1000

    xsetwacom: print error if an unknown keyword is given.
    
    xsetwacom set "device" Button 1 "Ctrl Z" cannot be parsed by xsetwacom,
    leading to a nonfunctioning button without the user realising why. Print an
    error and complain if the keyword is unknown/invalid.
    
    Bug 3054502
    https://sourceforge.net/tracker/?func=detail&atid=525124&aid=3054502&group_id=69596
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit c4007437dcd7b24d949b80fb49e5e8e0699b4201
Merge: a8c95a79 abb4144f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 7 13:11:56 2011 +1000

    Merge branch 'suppress-cleanup'

commit abb4144f6ec125fa37fb6cd1f3eb0c4616367359
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 4 09:37:13 2011 +1000

    Don't hardcode the rotation range for cursor RZ, use defines instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 379be28b51d782c18a2f8ea3b7d59b08329ebbc0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 4 09:13:28 2011 +1000

    Fix typo for max axis range on the cursor tool.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 859d325be9fc303b78ee4b2fde7fd6ca18888b4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 4 09:05:09 2011 +1000

    Fix indentation in wcmTilt2R.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 5ca0e09f9058e47d2a2ff1c5474bc1b5aef92c14
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 14:04:39 2011 +1000

    test: remove miPointer wrappers, unneded.
    
    Obsolete with a9fe6a0337183c653ede6b5724612a138b022fb9
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit aa96977dc7ff0b44b7d1dcb5bf524c339d4820e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 14:01:21 2011 +1000

    test: add tests for wcmCheckSuppress.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 1982daf6b13685cc6568a53b85d62089405963a9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 13:40:08 2011 +1000

    Rewrite wcmCheckSuppress
    
    Instead of returning rather ambiguous 0, 1 and 2, return enums with readable
    descriptions.
    
    No functional changes, other than that we now skip a few tests in
    wcmCheckSuppress if we already have the result.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit a8c95a7975ffa16779cced264062bc64b8631095
Author: David Foley <favux.is@gmail.com>
Date:   Fri Mar 4 12:50:39 2011 -0600

    conf: Add Fujitsu ISDV4 device ID FUJ02e9 to matches
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 89db1ede87db655b57fb2234194f1c26993ef166
Author: David Foley <favux.is@gmail.com>
Date:   Fri Mar 4 13:28:24 2011 -0600

    wcmUSB.c: Update BambooPT identifier comment
    
    Change 0xDB from CTH-661 to CTH-661/L.
    
    Reported-by: Pander <pander@users.sourceforge.net>
    Signed-off-by: David Foley <favux.is@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e79f7a730cedee93db363c20ddddc9e90b41ef3b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 12:02:27 2011 +1000

    Swap an error message "likely to crash" for one not likely to do so
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 0250ecbc798b47821ed81e87ab852b6cc342efe1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 11:54:18 2011 +1000

    Remove now-obsolete condition.
    
    With the removal of the tool areas, this check became obsolete.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit fe46ffdd55f877e0750017285724181b3ddf4a4c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 11:53:36 2011 +1000

    Document findTool()
    
    And rename tooldef to tooldefault, I always get confused by that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 07964dc148767f78fee691981935f9450a1981bf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 11:50:50 2011 +1000

    Document is/set_absolute
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 69d3e9387105e0a92cae95f6f81a62e868506c06
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 15:52:56 2011 +1000

    Add a fixme about tool handling.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 751976d32f756197cc7254ae85956eebdf7e8e47
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 14:32:38 2011 +1000

    Keep an enabled flag in the tool to avoid racy startup.
    
    There is a small time window where a device may try to send an event even
    though it is not fully setup to send events yet, causing a server crash.
    
    This window opens when the tool is added to the list of devices in
    wcmParseOptions() and closes with the server calling xf86ActivateDevice().
    If an event for a dependent device is processed during that time, the tool
    will be available but the device pointer is still invalid.
    
    Crash can be reproduced by putting a breakpoint after wcmParseOptions() for
    the eraser, then generating events with the eraser. These will cause the
    tool to dereference tool->device->dev, which is uninitialized.
    
    Work around this with a simple "enabled" flag that is set whenever the tool
    is actually enabled.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 94a8eabadd062de6ceed8563089b863d887f8770
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 11:29:19 2011 +1000

    Switch to a WorkProc for device hotplugging.
    
    The current approach to hotplugging is to call NIDR directly from the parent
    device's PreInit. This causes a nested device layout as the dependent
    devices are initialised fully before the parent device is initialised.
    
    Switch to a WorkProc instead. Copy the necessary information to create a new
    device later and tell the server to call the actual hotplug function when it
    has time.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 490e345f9d85a73263e96ba0b2918a9a2ca913ad
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 15:27:20 2011 +1000

    Don't manually UnInit the devices for ABI 12
    
    One of the changes going into ABI 12 were that the server calls Uninit even
    on driver-hotplugged devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 66466dcf8bbe4c633c006863b30d8d022c575842
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Mar 2 15:16:15 2011 -0800

    Don't discard the first 2 USB events
    
    It was an issue with older kernels. This driver only supports
    kernels 2.6.26 and later. No need to do that any more.
    
    There is a special case that this code may have helped though.
    If tool is on the tablet while driver started, waiting for more
    events before processing them would fill some otherwise filtered
    events from the kernel. Even for this case, the solution should
    be added inside wcmUSB.c, instead of here.
    
    We'll work on that in wcmUSB.c later. Just for the record. The
    perfect solution would be to retrieve all events from the kernel
    if important events, such as tool type, serial number, etc, are
    missing. This would require quite some changes in wcmUSB.c. And,
    the challenge is that linux-input doesn't provide the means for
    us to retrieve all of the events that posted from the kernel. At
    least, we can not retrieve serial number and MT events yet.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 438da502c84e7742acb31e433e42efd5bd003581
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Mar 2 15:16:49 2011 -0800

    Set ISDV4 to PROTOCOL_GENERIC in isdv4ProbeKeys
    
    isdv4ProbeKeys is the place we set all tool types and other keys.
    Reset the ProtocolLevel to PROTOCOL_GENERIC here as well.
    Otherwise, it would be overwrote by the default.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 22e4410cb3de0ac6b6e2275bd8b8bcc0f2cf7b5a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 3 10:05:55 2011 +1000

    test: fix typos and copy/paste effects.
    
    Misplaced closing parens, then copy/pasted everywhere.
    Introduced in 1d9a055bc8e95f20458d7da5b77967f2e53b7d6f
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5c06d9584e1f231bea47aaf1dd33e0502dee34be
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 2 10:40:44 2011 +1000

    test: add license header
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit b80876c01ce62baa63c2563aeef399ffea73f588
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 2 10:39:57 2011 +1000

    test: add note that we can't test static variables here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit 1d9a055bc8e95f20458d7da5b77967f2e53b7d6f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 2 10:03:31 2011 +1000

    test: add ifdefs to allow running tests against 1.7
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit 9d227cd0bd985e7dcb7923974361145ba1d78713
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 2 10:34:36 2011 +1000

    Move VCOPY storage out of the function.
    
    Not 100% sure why this is needed but it looks like the returned address is
    invalid, causing memory corruption. Simply moving the variable into a global
    scope fixes this issue.
    
    Fixes crash with server 1.7.
    
    Reported-by: Vu Ngoc San <san.vu-ngoc@laposte.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit a113f790fe19b0d30b672eb051a3215880df5d3e
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Wed Mar 2 19:09:27 2011 +0200

    xsetwacom.c: Fix a typo preventing Rotate ccw from working
    
    Introduced in ac821ba29a828fb9bb531243d0a226a7fe494504
    
    Signed-off-by: Timo Aaltonen <timo.aaltonen@canonical.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9dba8e81e132561732c3bc6c0645a6af44eab2a0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 2 11:47:45 2011 +1000

    Bump to 0.10.99.
    
    New release versioning scheme until we settle on a stable 1.0.
    - 0.x.99 is the version number in-between releases
    - 0.x.99.901 is the first RC
    - 0.x.99.902 is the second RC
    - 0.x+1.0 is next the release
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1f0cfe5dd48eec52c495c5777d20758563318783
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 1 15:05:05 2011 +1000

    test: add basic check that the tool is initialized correctly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 82e65fc52d497b57dab4bcd008ee64f9f7f08796
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 21 14:07:55 2011 +1000

    Remove now unused overlap checking functions
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 13a12bb852f845ce5588f1e7dcda18cd2c21cb59
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 21 13:52:08 2011 +1000

    Purge toolarea from device rec.
    
    Having multiple areas for tool is feature that has gone untested for
    possibly years and it's hard to figure out how to even configure it.
    Purge it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 751065df9bce662f2e1d74746e1ce6b6cb8c73ce
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 21 13:31:15 2011 +1000

    Purge KeepShape option (for now, anyway).
    
    This option is badly broken since the driver has lost the ability to check
    for screen coordinates.
    
    There is a need for this option, but it will have to come back as a
    purely client-configured option (i.e. the client feeds the tablet
    coordinates it should map to).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 24019a07a56fb73132273910d36a036d1c811bb9
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Feb 20 22:49:33 2011 -0600

    Make 1 finger tap work based on finger release.
    
    Previous behavior required a double-tap to get a single finger
    tap to work and didn't always work for me.  Its behavior was basically
    tap-and-drag gesture instead of tap-to-click.
    
    Converted to standard touchpad behavior of single tap based on finger
    release.  This is arguely the more important gesture to users.
    
    Removed wcmTouchpadMode since it wasn't needed for simple tap-to-click
    gesture.  If tap-and-drag gets added back and needs a variable, it can
    be added back with a name that has "drag" in it to understand its
    intended usage.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Tested-by: Andrzej Giniewicz <gginiu@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b30bd68111b7e08fb9ded4302ba556f16253a8a
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Feb 20 19:19:20 2011 -0600

    allow button events while touch is disabled
    
    PROTOCOL_GENERIC devices send "pad" buttons along
    with touchscreen/touchpad events.  Since we are
    emulating "pad" device concept, we need to let
    "pad" events go through when "touch" is disabled.
    
    There seems to be a popular script floating around
    that toggles "touch" device on/off by using
    same devices "pad" buttons.  This patch allows that
    to work again.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 85f4c8ed19f8816d0353ee302cf34f8d11e2b14b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 24 15:28:45 2011 +1000

    Disable KeepShape - it's currently unsupported.
    
    Will come back once it's hooked up properly again.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 577f42d38b66fd84594a6d3f2932a559e68b5751
Author: Bruno Vasselle <bruno.vasselle@laposte.net>
Date:   Fri Feb 25 08:31:21 2011 +1000

    Division by zero in wcmInitArea when KEEP_SHAPE_FLAG is on.
    
    Under some circumstances, wcmInitArea faces a division by zero when trying
    to deal with the "KeepShape" option. The patch disables KeepShape in the
    situation.
    
    Signed-off-by: Bruno Vasselle <bruno.vasselle@laposte.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 240e694d861fe78d516f43f315dbe2b634368131
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Feb 22 17:23:42 2011 -0800

    Retrieve the ABS values through EVIOCGABS only when they are set
    
    We get absinfo.maximum = 0 when the ABS_ is not set in the
    kernel, which is invalid.
    
    This issue was found when I work on the resolution. It applies to
    other ABS_* as well.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ac4f60e378150369f7de64045d80e2f2318e0f63
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 23 09:59:15 2011 +1000

    Update README with a few pointers to website, etc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 87d09b7addeee2d7119c81c2f5b415ceebc50931
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri Feb 18 11:50:52 2011 -0500

    distcheck fails, xsetwacom.c needs X11_CFLAGS for UNITTESTS
    
    Otherwise it fails to pickup X11/keysym.h and friends.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 957de9b5a32efaf891e5d4ed55207297b060e605
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri Feb 18 20:02:12 2011 -0500

    Doxygen: add project name in footer.
    
    The footer was generated by doxygen based on doxygen.conf
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a52277e7f2864493342affb6a4fc6cda74a9d0af
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri Feb 18 20:02:11 2011 -0500

    Doxygen: use $PACKAGE_VERSION for the release number
    
    The release number in the main page will always be in sync.
    This will allow archiving the API documentation for each release,
    enabling multiple versions to coexist on the web.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e21033fb505734a934bd0400d9ff72e7ec32c326
Author: Favux <favux.is@gmail.com>
Date:   Thu Feb 17 21:09:32 2011 -0600

    xsetwacom.c: Correct typo-spelling
    
    Patch
    
    From 6e682f268416db29cb178f1f7f734b7687081d29 Mon Sep 17 00:00:00 2001
    From: David Foley <favux.is@gmail.com>
    Date: Thu, 17 Feb 2011 20:57:38 -0600
    Subject: [PATCH] xsetwacom.c:  Correct typo/spelling
    
    Reported by: Vu Ngoc San <san.vu-ngoc@laposte.net>
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 01cf69515fa808c09e2ac80c29d6c638ac8191e7
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri Feb 18 12:05:31 2011 -0500

    Doxygen: add description on the main html page
    
    Rather than staring at a blank screen.
    To be completed.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit af58a7af91c00ef4da56c92d143d6bad1475196d
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri Feb 18 12:05:30 2011 -0500

    Doxygen: add "getting started" support.
    
    Add Makefile.am and docygen.conf with some customization
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b667dd01313bfbc5c76326de61d7fc659076581c
Merge: 244b5ad8 79b3945d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 18 10:07:06 2011 +1000

    Merge branch 'next'

commit 244b5ad8f88d3db52bdde7ade9087b096e5a12ea
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 17 14:56:06 2011 +1000

    Require doxygen.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>

commit 6ca246bdbb40489490d0b9a72637f997e0629a61
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 17 11:31:36 2011 +1000

    Update release script to deal with SF's shell service
    
    I get auth. failures if I log in too often.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8cdf444fd1f4004b5a0d237b26ebcd72900338c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 16 08:45:04 2011 +1000

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

commit e1acd61df8bad22864352cd6c9703356d46cb112
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 16 08:41:56 2011 +1000

    test: add more symbols to fake-symbols for ABI < 12
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f9725353ba6e82b41abc73adb293676248558a08
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 16 08:37:02 2011 +1000

    test: put guards in for changed APIs in earlier server versions.
    
    Addition of const in ABI 12 breaks build if running make check against an
    earlier server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit a7f85d19ec858c9567b08dbe1819019a1a10b83c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 16 08:36:19 2011 +1000

    test: remove _X_RESTRICT_KYWD from definitions
    
    Undefined in earlier server versions, breaks distcheck.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 6e4f971f9dc7d061771712141aff8581ca8ff4ea
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 16 08:21:57 2011 +1000

    Remove ABS() macro, just use abs()
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit a9fe6a0337183c653ede6b5724612a138b022fb9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 09:50:04 2011 +1000

    Check if the device has been initalised before processing the events.
    
    This is a stopgap solution only. Due to the current hotplugging approach,
    the dependent tools are initialised before the parent device. This leaves us
    with a time window where the parent device does not yet have a DeviceIntPtr
    attached.
    
    If an event from the parent device comes in during this time window, posting
    the event causes segfaults. Fix this for now by checking if there is a
    device attached to it yet.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b6fb68cf4930d20cb91d9fd939587082ee2e2dfd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 09:48:48 2011 +1000

    Rename pDev to pInfo where it is an InputInfoPtr.
    
    For consistency with the rest of the code.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 79b3945d3ab3b270e7bd6a7deb8e6b52e0c2b8fa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 14:12:32 2011 +1000

    xsetwacom: comment convert_specialkeys.
    
    And change a paramter name to be more self-explanatory.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 70e0d864b16c36486e835a79b52699aee5de5a10
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 14:10:10 2011 +1000

    xsetwacom: document is_modifier
    
    And change a parameter name to make the function more self-explanatory.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f7bbd3a14b796c8d6adef3322cc7a4b19a466c7f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 14:08:11 2011 +1000

    xsetwacom: use single exit path in is_modifier.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ba20f19bf66b1e79f1aa56be6deb8aac952ff33e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 14:07:23 2011 +1000

    xsetwacom: remove separate modifier list in is_modifier.
    
    Simply parse through the existing modifier list.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 5fedf69d653cfbee9ac393643c4cbe0b23e87e19
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 15:12:49 2011 +1000

    xsetwacom: add test for parameter numbers.
    
    Simple manual check that we remeber to properly deprecate if we ever remove
    a parameter again.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0b1462aa27bbf3d8653a762fd8e1648b856a76e3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 15:06:26 2011 +1000

    xsetwacom: add test for convert_specialkey
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f6dc39637056adc6fe503654b9f44f225dc4f6ac
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 14:59:14 2011 +1000

    xsetwacom: hook up to unittests.
    
    Includes simple test for is_modifier().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit e1b97d153426d8e8712b09806ad0b0bfc517b485
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 14 15:10:50 2011 +1000

    test: fix indentation to be in-line with the rest of the driver
    
    And add the vim tags so this doesn't happen again.
    Sorry.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit c1e18af5794191a5560fb60bd447e05fdafd53cb
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sun Jan 2 23:06:46 2011 +0000

    Add Super and Hyper as modifiers
    
    Super_L / _R and Hyper_L/_R were missing from the list of modifiers in
    is_modifier function in xsetwacom.c. It was causing some troubles,
    reported as bug 3140393
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f856de8b9d4dd721d3a189665045ea0b9ac6f126
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Wed Feb 9 12:38:00 2011 -0600

    remove unsupported "Speed" option from man page.
    
    Use xinput's "Device Accel Constant Deceleration" for similar feature.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0f9a1371a2498e0c74ecdf381d28b5bc3adfaa25
Merge: 32babb0c b49d98a2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 10 13:12:47 2011 +1000

    Merge branch 'test-suite'

commit 32babb0c89db59a73890ae5a989b65fd128486f5
Merge: bf9ba5f1 868d768e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 9 09:51:54 2011 +1000

    Merge branch 'xsetwacom-cleanup'

commit 868d768e91444ae47cca3ab1902e0161920011ea
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 13:31:48 2011 +1000

    xsetwacom: print warnings for deprecated parameters.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit bf9ba5f101a28db64973b1933debed381ee1654e
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Feb 3 21:12:10 2011 -0800

    Process USB 1FGT data through BTN_TOUCH
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 80b9d51819c48a10914be165720d2c59c587cf01
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Feb 3 20:59:30 2011 -0800

    Prepare for Tablet PC MT format
    
    We borrowed _TAP_ for 2FGT Tablet PC support when MT protocol was
    not available (before kernel 2.6.30 was released). MT support in
    the kernel is getting stable now. To move Tablet PC to MT format,
    we face two issues:
    
    1. USB Tablet PC 1FGT devices will not emit BTN_TOOL_FINGER event
    since it is a touchscreen device.
    
    2. Serial Tablet PC 2FGT devices do not emit BTN_TOOL_DOUBLETAP
    event since they are not touchpads.
    
    This patch add those keys back to the supported key array so we
    can retrieve the proper keys when we need to decide the features
    that are associated with the device.
    
    Changes to v1:
    
    1. Replace usbGenericTPCQuirks with usbGenericTouchscreenQuirks
    2. Remove USB from the second item above
    
    as suggested by Chris Bagwell.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 36520328f4b42f2556a8472a66ea2e9986a59ebd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 14:57:00 2011 +1000

    man: note that the threshold applies to the normalized pressure range.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit e5540823b1b70b4e0a5f91116e7f75d564a40d78
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 14:36:26 2011 +1000

    Rename transPressureCurve to applyPressureCurve.
    
    More self-explanatory name because with recent refacturing, that's all we're
    doing here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f1059805593f52080854d3c3e8a85fb2633f90b6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 8 14:34:57 2011 +1000

    Return converted pressure, don't set it directly.
    
    Allows for constification of the parameter in transPressureCurve().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 61f1a2ae93a7e801302a27b7ca58ef9806bdec78
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Wed Feb 9 08:04:05 2011 +1000

    Fix spelling error
    
    s/none /non-/
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b1c1022e0abe4f0c3f4d749857a788f36b69f84
Author: Ron Lee <ron@debian.org>
Date:   Sun Feb 6 19:13:54 2011 +1030

    xsetwacom: only display usage() once, when asked
    
    If we just break out of the switch, then --help and --version will cause the
    usage() to be displayed again in the !do_list && !do_get && !do_set block.
    Closes: http://bugs.debian.org/612122
    
    Signed-off-by: Ron Lee <ron@debian.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 89cf7f4b391a075209b0f2b4752f01da2f90b228
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 15:05:28 2011 +1000

    xsetwacom: rename "xyDefault" to "ResetArea"
    
    "xsetwacom set ResetArea" seems more self-explanatory than
    "xsetwacom set xyDefault"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 3d88c0189ee52beadb0021b695cab026b5129c03
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 15:01:28 2011 +1000

    xsetwacom: change a few parameters to self-explanatory ones.
    
    Affected:
    PressCurve → PressureCurve
    TPButton → TabletPCButton
    CursorProx → CursorProximity
    
    All wheel and strip properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ac821ba29a828fb9bb531243d0a226a7fe494504
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:58:35 2011 +1000

    xsetwacom: lowercase rotation values.
    
    Don't shout at users, it makes them sad.
    We take both uppercase and lowercase anyway...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 4f4172a453a92f892007cc0fd3c9104d40138d4c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:56:50 2011 +1000

    xsetwacom: rename DebugLevel/CommonDBG to ToolDebugLevel/TabletDebugLevel
    
    Self-explanatory parameter names ftw!
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 766c0064f825c363eb5aa6ed6d944ebdae950e0e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:51:01 2011 +1000

    xsetwacom: simplify code for Button mappings.
    
    This changes the user interface. Instead of
        xsetwacom set Button1 ...
    it's now
        xsetwacom set Button 1 ...
    (note the space)
    
    Other than that, functionality stays the same.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 6360f166c2b9d61b2a0ef4624e6dd0a799da9e04
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:23:55 2011 +1000

    xsetwacom: remove GetTabletID - duplicate option.
    
    We already have the parameter "TabletID".
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8b77d9ddf79c2d91abc011b249698d0b4946917f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:23:07 2011 +1000

    xsetwacom: remove mmonitor parameter - not hooked up to anything.
    
    Removed with the multimonitor support purge.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 4268b647ae42b8a4fa88d531d33334d4e2f379c3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:20:41 2011 +1000

    xsetwacom: remove pressurecurve special handling - not needed.
    
    The prop_extra field handles this for us automatically now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 69abda44c2ad460f3b59a94634938c3fa8ed57b9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:18:13 2011 +1000

    xsetwacom: purge Screen_No setting, it's not supported anymore.
    
    Removed with the multi-monitor removals.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2bdd897b4a2857d224d3142f0067fd209bb35fea
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 14:15:15 2011 +1000

    xsetwacom: purge TopX/BottomX/..., replace with Area instead.
    
    In almost all cases, a user that needs to set the are will need to set all
    4 values. Instead of asking the user to type 4 commands to set the area,
    just provide one parameter that takes 4 coordinates.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 5da087b0d18078f466209ff52422f82db1a4a362
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:38:29 2011 +1000

    xsetwacom: s/X.conf/xorg.conf/ in help output
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f25ddf2db80e4845f307e3f5c80c863fb33868fd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:36:02 2011 +1000

    xsetwacom: s/disp_name/display in help output.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit c642d60682dde26df9ced9d3d27fc25cd1b7c985
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:34:57 2011 +1000

    xsetwacom: s/param/parameter/ in help output
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 979f964cd7fc80accd470976a3304033f3ea9658
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:33:40 2011 +1000

    xsetwacom: split help output into multiple lines.
    
    Just cleaning up the UI, instead of "list [devices|[parameters]" but a
    separate "list modifiers", have three separate lines.
    
    Also, change from "known" to "supported" or "detected".
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 38af5d20b51e69ee60e1c3f34388d636fd04a187
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:32:22 2011 +1000

    xsetwacom: require "list parameters", not "list param"
    
    Making the UI a bit more self-explanatory.
    
    "list param" still works to avoid breakage, it's just
    undocumented.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit bac5ac9da3027bef641899762ad6f0ca3785ab75
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:30:23 2011 +1000

    xsetwacom: require "list modifiers", not list mod
    
    Making the UI a bit more self-explanatory.
    
    "list mod" still works to avoid breakage, it's just
    undocumented.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 6e0cd8638f1d94852cb0c779838678364baab6bb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:27:47 2011 +1000

    xsetwacom: require "list devices", not "list dev"
    
    Making the UI a bit more self-explanatory.
    
    "list dev" still works to avoid breakage, it's just undocumented.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 1560b55a2b119a35fe7ea42d0ab3bf2674678824
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 3 13:25:28 2011 +1000

    xsetwacom: use "device name" instead of dev_name in help output.
    
    Easier to understand, and also illustrates better that most times the device
    name needs to be in quotes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 1395e43b2d91ae4614b010c7b7c0f345121cbf90
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Wed Feb 2 15:00:56 2011 -0600

    align Threshold default in man page to software
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f175c5e3db41f72031678d040787de7a0b5b89f1
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Feb 1 21:11:50 2011 -0600

    fix cursor jumps when clicking button on relative devices
    
    Placing a stylus in relative mode (xinput set-mode x RELATIVE)
    would result in unexpected mouse movement when a button click
    occured.  Similar reports given for mouse tool which defaults
    to relative mode on its own.
    
    I believe the memset()'s zeros were being scaled to non-zero
    values for acceleration inside xserver and causing the movement.
    
    Change to not post these valuators during button posts since they
    were just posted.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a453ac1a2f24d931e9ec50787d55effe57ae1d9d
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Feb 1 13:36:11 2011 -0800

    Convert ISDV4 resolution to points/m
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit de41586f8ed1661921f6b5d07bcd6acc163f11ce
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Jan 31 17:21:00 2011 -0800

    Change to GENERIC protocol
    
    This brings ISDV4 2FGT in sync with USB GENERIC protocol so it goes
    with the same path as the USB _MT_ support.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 84f56edfbcbcb9dd8a6d421858d05784ca25383a
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Jan 31 17:21:19 2011 -0800

    Add a new Fujitsu 1FGT model
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f9439e206cdedfbf63a7f786634a33bafa84291
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jan 25 11:48:49 2011 -0800

    Streamline the touch resolution
    
    Resolution uses different units in the kernel (point/mm), XInput
    (point/m), and the hardware protocol (point/cm/1000 for touch and
    point/inch for pen).
    
    We have a resolution table for pen in the X driver. But we get the
    touch resolution directly from the kernel through HID descriptor.
    
    For kernels older than 2.6.30, resolution is not part of absinfo.
    For kernels older than 2.6.35, kernel does not pass resolution to
    the userland.
    
    This patch addresses those issues and correct a conversion bug
    introduced by the RX/RY workaround.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b49d98a27dc1564d99847691a3f994bc799a1c93
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 31 09:53:03 2011 +1000

    test: expand pressure normalisation range.
    
    Try with a rather random variety of maxZ values, make sure the range really
    goes up to FILTER_PRESSURE_RES.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 170b71a49aa3b6be6233189cdda1ff5fb48d05f2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 31 09:46:45 2011 +1000

    Add extra checks for lack of rebasing.
    
    This would be a bug in the driver, rebase must be called before normalising,
    but we might as well check for it, test for it, etc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f4cce2e56b2e819d33613790216b7dbdb8859e8a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 31 09:33:34 2011 +1000

    Split pressure rebase and normalisation.
    
    Two different operations, one not necessarily linked to the other one. Split
    them into two static functions so we don't have a normalizePressure() with a
    side-effect (setting minPressure).
    
    This way, both can be passed consts and testing is easier.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 6f0aba3a659226f7ee0b881c0c122ce3e1ee1615
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 19 16:43:57 2011 +1000

    test: add some tests for pressure normalization
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 18e90e89dabe8e4e1574a5eba12f78f72d4f6fc6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 19 16:28:37 2011 +1000

    test: simple test for WcmCommon refcounting.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 4bc52aba794c3054535e0c2af174b26144d39002
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 19 10:59:03 2011 +1000

    Add a testing framework for the driver.
    
    This uses glib's testing framework provided glib-devel was available at
    configure time (same as the X server's testing framework).
    
    How this works:
    The wacom driver is recompiled for the testing framework and linked into the
    wacom-tests binary (there's a warning about that but ignore that). Since the
    .so uses a number of symbols from the Xorg binary, these are provided as
    stubs in fake-symbols.c. Additional binaries can be added through the
    check_PROGRAMS automake variable.
    
    The driver will be rebuild without static symbols for the test, allowing
    each function call to be tested.
    
    To run the tests, run 'make check'.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 23ed0b11c24582caa6465c8fa083e8e830ce6a75
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 19 10:58:13 2011 +1000

    Use absolute patch from $(top_srcdir) for source files.
    
    This is in preparation for the integration of a testing suite.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit b5a90be8ab377601cb9d61cb50b0bca5e6063d9b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 21 14:18:26 2011 +1000

    isdv4: let the compiler decide when to inline.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a656bc2f05f6ec9cc0182b09cb0f4b7642f7512b
Author: David Foley <favux.is@gmail.com>
Date:   Thu Jan 20 13:59:20 2011 -0600

    wcmUSB.c: 2-new-bambooPT-models
    
    Adds 2 new Bamboo Pen & Touch models.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1eb933db2d69bfea1069845c9cd895ecf8b75bf8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 19 08:41:57 2011 +1000

    Purge sizeX/sizeY - can be computed on-the-fly where needed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 682c3c4fa27dba83e4b3ca672088d8dbcd548fb2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 17:11:30 2011 +1000

    Remove useless else block.
    
    This is the most creative way of not changing a value I've seen so far.
    
    Calculation before the if condition:
        dx = (filtered.x - priv->oldX) * factorX;
    and this else block then:
        filtered.x = dx / factorX + priv->oldX;
    
    Ignoring rounding errors (which I doubt matter here) we've just set
    filtered.x to the value it had anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 77a959ee53af68582dea70b3df7bf5ec5853a038
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 17:01:22 2011 +1000

    Change "suppress" from int to bool for readability.
    
    Suppress is a user-configured option that defines when events should be
    sent. The option is a number, defining how much coordinates must change
    before an event is being sent.
    
    The use of suppress here though is as a boolean flag, whether to suppress or
    not.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit d25cd9b07e673b878f9744e635b40b823d8e1c6c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 16:53:19 2011 +1000

    Move pressure-based button1 down/up events into a separate function.
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 6b2dbf720022126ed4ffe8d129132f2f56157438
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 16:44:40 2011 +1000

    Move declaration+definition of button into local block.
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit a635a0b2f16e5c5fd2fd1894808a813b81511a19
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 16:36:17 2011 +1000

    Move pressure normalization into its own function.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 6e840e770a36bc761c4ebdbcb318e7079408af24
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 16:29:12 2011 +1000

    Rename hardProx to oldHwProx.
    
    hardProx stores the old hardware proximity. Say so through the variable
    name.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 7eb75447f30fbcd0675dd358e31da0f2b26d54ea
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 16:26:34 2011 +1000

    Simplify an if condition.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit b7a0212cf76e5583b72ced7b37f637c9e75f5017
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 15:41:52 2011 +1000

    Move a check for tool existence up a bit.
    
    Check whether we have a proper device before trying to get the screen for
    it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 609db722a4cfef05416408d8b1b2044960775232
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 15:38:58 2011 +1000

    Move tool finding out of commonDispatchDevice.
    
    No user-visible functional changes. Only actual change is that pad events
    now see a bit more processing though it should not affect them.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 65fcb6c7a73fe73eeb34c32674ddb242331e893a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 15:26:19 2011 +1000

    Factor out finding the device type
    
    no functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f9144ed2302b0e743a91500e62317d983b2c54e0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 10:09:05 2011 +1000

    xsetwacom: fix compiler warning.
    
    xsetwacom.c: In function ‘list_mod’:
    xsetwacom.c:908:2: warning: format ‘%d’ expects type ‘int’, but argument 2
    has type ‘long unsigned int’
    xsetwacom.c:912:2: warning: format ‘%d’ expects type ‘int’, but argument 2
    has type ‘long unsigned int’
    
    Cast ArrayLength to unsigned int, we won't deal with any arrays larger than
    UINT_MAX.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b330c59409dd32a5bf213795d46e466e7e76ac78
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 19 08:43:34 2011 +1000

    Fix comment: maxX/maxY are the physical max, not logical max.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8fc327f5a9151e7d6523ee6e72313c1cc33372fd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 18 09:45:42 2011 +1000

    Note which values are in screen and which are in device coordinates.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 7c043460d1f70654035488d1e90e7eaa2e79f71a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 10 15:20:35 2010 +1000

    xf86ProcessCommonOptions doesn't need to be called for ABI 12
    
    Server calls it before PreInit().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5acbaaf820605f20428603ac35b01fac518b2b19
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 16 22:02:17 2011 -0600

    compute factorX/factorY from bottomX/bottomY.
    
    maxWidth and maxHeight are no longer set and this causes
    relative devices to not work (factor* = 0 which scales to
    zero values always).
    
    bottomX/bottomY is meant to be a value that optionally contains scaling
    information that can be passed to xf86AxisScale() to scale
    from tablet to screen ratios.  See wcmInitArea() for how that is done.
    
    Derive the scaling factor from bottomX/bottomY.  Since this normally
    1:1, the code is rarely used.
    
    This patch fixes a regression where Bamboo touch device would not
    move cursor any more.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 263c7f212a7c9735af37f373a6dd6ad2b71c6317
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 16 22:02:16 2011 -0600

    Add comment describing factorX and factorY
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5276f34b504538bb86ffb9a3c267718f1c5c31c2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 16 22:02:15 2011 -0600

    Init relative X/Y axis to use tablets min/max size
    
    wcmRotateAndScaleCoordinates() uses these values to scale
    values based on axis initialization.  The change to use -1..-1
    caused it to scale in a way that cursor was overly accelerated.
    
    This is a modified revert to a commit.  Before -1..-1
    change, the code would set range to 0..maxX/Y but this
    commit changes to match absolute mode behavior.  They both come
    to same answer anyways.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d7749f35d251ad0fb2988d8063a3eee73d33b9e8
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 16 21:38:26 2011 -0600

    xsetwacom: allow removing special button mapping
    
    If a user did a special button mapping, such as key-to-button,
    and then changed it back to simple button-to-button mapping,
    the special mapping still occured.
    
    The main fix is to memset keys[] to clear out old mapping.
    
    The other fix is more cosmetic.  We were leaving around a
    property that was unreferenced by anything.  If a user
    did an "xinput list-props pad", they way scratch there
    head by old button mapping properties were still around.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 02403679b8e7f086e6f9a12ac4992771da5b09a6
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 16 21:38:25 2011 -0600

    xsetwacom: allow mapping last ButtonN
    
    For button-to-button mappings, the last button was
    rejected.  This may be only now seen because we used
    to pad button # counts in driver and thats recently
    been cleaned up.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ab311bf20535acd6e7201e024bc311e0e15b5b6b
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Jan 13 20:05:37 2011 -0600

    make key mappings align with button mappings.
    
    So commit is clear, let me define terminology used in describing
    change.
    
    internal buttons - xf86-input-wacom has a fixed set of buttons
    it maps to internal #0 to 4 (stylus buttons, mouse buttons, and pad buttons).
    It also has generic list of buttons BTN_0.. BTN_* that it defines to
    internal #0 to 27.
    
    X physical buttons - xf86-input-wacom uses a non-user editable
    priv->button[] array to map internal button #'s to X physical
    buttons.  The current usage of this array is to skip over
    physical buttons 4 to 7 since they are used for scrolling events
    by convention.
    
    X logical buttons - both "xinput set-button-map" and "xsetwacom
    --set X ButtonN N" modify an array that converts X physical buttons to
    X logical buttons.
    
    key mappings - "xsetwacom --set X Button N "key 1"" creates a
    button-to-key mapping.  Before this patch, the key mapping was
    "internal button" to key mappings; instead of X physical buttons
    to key mappings.
    
    New Bamboo driver maps two middle pad buttons to X physical buttons 8
    and 9 because internally they are 4 and 5.  This mean for
    button-to-button mappings, user used Button8/9 but for key mappings
    they used Button4/5 to change behavior.
    
    This is a long explaination for small patch that makes key
    mappings use X physical button names for consistency.  It
    also changes keys[] array to be ones based to allow with X
    physical buttons being ones based.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d5af19ae92cb9fccff89b3caf668dbc323a0acfc
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Jan 11 19:34:05 2011 -0600

    Set WCM_PEN feature based on wcmKeys
    
    A previous commit removed all bamboo ID's which caused it
    to hit default statement removed in this patch and mistakenly
    add WCM_PEN for Bamboo touchpad.
    
    That flag only seems to be used by a debug statement so not
    a big deal unless you want that information out of log file.
    
    Change to generically set WCM_PEN feature based only on existence
    of BTN_TOOL_PEN so all PEN enabled tablets will declare that
    feature; which seems the conceptially correct thing to do
    and has side affect of getting debug statement working for
    Bamboo's again.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1bb87ee40202c577bd695872489cb6cef57a3bea
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Jan 11 19:34:07 2011 -0600

    delete unneeded code in wcmVirtualTabletSize
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2f3514cd085650ebe698330f3bd10ec988a84b88
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Jan 11 19:34:04 2011 -0600

    Init device_type during ABS_MT_TRACKING_ID
    
    ABS_MT_SLOT is normally zero which means it will not be sent
    when xf86-input-wacom first starts up normally.  During 2
    finger touch, this event will constantly toggle between
    slot 0 and 1.
    
    Move initialization of device_type to ABS_MT_TRACKING_ID
    because its more effecient to do it at touch transitions
    instead of constantly during 2 touches and also helps
    case of initial lost event.
    
    There is event lost recovery logic elsewhere but it is
    mistakenly setting this as a CURSOR device instead of TOUCH
    and its being discarded until first 2 finger touch occurs.
    
    Recent combo of commits caused this discard to start
    happening.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d00f555a73c7b0e0ba86fc4c88593441fe7cb107
Merge: e9acf402 b46c5fc0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 12 10:03:39 2011 +1000

    Merge branch 'tpcbutton-fixes'

commit b46c5fc0af5fe848c2b91dda70d94a3baaf56e53
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 11 12:04:54 2011 +1000

    remove now unused WCM_TPCBUTTONS flag
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 434e585eb12ea3771c48617760b3f077d842c28f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 11 12:02:35 2011 +1000

    Simplify TPCButton handling.
    
    Reduce the 4 near-identical loops with nested conditions into a single for
    loop and a few conditions beforehand for the TPCButton case.
    
    Button behaviour for TPC button on:
        * if only tip is pressed/released, send button 1 events
        * if button N is pressed and tip is pressed/released, send button N
            events.
        * if tip is already down and button N is pressed/released,
            send button 1 release, then button N events.
    
    Signedoff-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 0b12975a04a2b9c3946769ad80d07812c73f173d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 11 12:02:13 2011 +1000

    man: update TPC button behaviour with a more verbose description.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 017cac970cecfb6549c919abf7a16010de0f5829
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 11 11:57:52 2011 +1000

    Remove broken check for setting wcmTPCbutton
    
    At least one ! too many. Just remove the check, overwriting a value with the
    already existing  value in a non-time-critical path is not the end of the
    world.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit e87bd397aa26a2b735aa934fab324fb8957f966d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 13:26:52 2011 +1000

    Remove unused TCPBUTTONONE_FLAG define
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f37d9c1198685dd9c0bf40b8b1527233c5b8196c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 13:24:29 2011 +1000

    man: state that TPCButton is only available on the stylus.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 523f4f11daadc5a463d379c8ebec023563c06d02
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 12:56:27 2011 +1000

    Only init TPC button property on the stylus.
    
    This behaviour applies only to stylus devices, not for any others.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit e9acf402953291b40cbf8ff31a44b35f9d947ebe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 13:20:54 2011 +1000

    Abstract USB device check through a macro.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 5b27c1d69010e8ba0600ba8d9fd381b4fb9881c2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 13:13:31 2011 +1000

    Remove one duplicate default option setting.
    
    Overwriting the default option with the same value doesn't seem to be
    useful. Also add a fixme, this code shouldn't be here in the first place.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit eaaab6d7352cf1f6f0d94e6e3361b4587fc15801
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 13:04:22 2011 +1000

    Split re-used oldButton into self-explanatory variables.
    
    Much nicer to read, especially when viewed in patch context only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit e4c1dc1bc5008bee8195f7dc8b07e0a5d2592a2c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 08:49:17 2011 +1000

    Move the type properties to wacom-properties.h.
    
    We're using them as type field, clients expect them, so let's export them
    somewhere more visible.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 9bca63fe9758649eb731661b20bde1d570b6c61f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 08:46:08 2011 +1000

    Fix comment, XI_STYLUS is not the device name.
    
    It's the device type name. The device name (identifier) is whatever the user
    assigned in the configuration files. Same goes for other device types.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit bc5fd9ee7e6a9eb364ff1f2f47bb41fe6bb2842a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jan 10 12:29:24 2011 +1000

    xsetwacom: fix 64-bit issues with MapToOutput
    
    Xlib for XI 1 expects 32 bit properties as long, even if on the given
    machine architecture the size of long is actually 64 bit. Hilarity ensues.
    
    Convert the floats to longs before passing it to XChangeDeviceProperty.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c756803f1c7077ea9ad91dcaf42f2304974ae263
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 9 21:15:28 2011 -0600

    fix logic detecting ABS_MT_SLOT
    
    Somewhere along cleanups, it got switched to looking at wcmKeys
    instead of abs.  This bug though was making tablet usable
    with MT Bamboo driver until memset() could be removed.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 797e59e568cbca2b481824ca202a5fbe191afaee
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 9 21:15:27 2011 -0600

    Use previous tools values when switching tools.
    
    Kernel side input event filtering forces user land to track previous
    tools values when switching to new tools.  If its not accounted
    for, sending new-but-duplicate values for new tool would cause
    confusion.
    Most cases of cursor jumps when entering proximity can be traced
    to how its (not) being handled in todays code.
    
    For generic and protocol 4 devices, its just a matter of removing
    existing memset().  For 2FGT protocol 4 devices, its slightly
    harder because it switches fingers between channels.
    
    Protocol 5 DUALINPUT devices are harder.  Take example of 2
    stylus in proximity at same time and one has tilt support but
    the other one does not.  Current kernel drivers will always
    report tilt values upon query and require user land to filter
    out as needed.  So we can't just copy previous values between
    tools.  For Protocol 5, this patch contiues to use old approach;
    at least until kernel side changes can be made.
    
    In this change, moved a strange force to in proximity to special case
    of no tool found.  See deleted comments in patch for background on that.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fa69d0d3f0b0724f1964c470529448f6f3b2b172
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Jan 9 21:15:26 2011 -0600

    add PAD_CHANNEL for when PAD channel is hard code
    
    Protocol 4 and Generic hard code PAD device to use
    only last channel.  Create #define for this case
    to improve readability.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a1fe875f59e1fba06787d4a7a99130c31261d491
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Fri Dec 31 17:18:50 2010 -0600

    set 1FGT/2FGT based on wcmKeys instead of ID
    
    This allows new tochpad/touchscreens to be supported
    without modifications to xf86-input-wacom.
    
    BTN_TOOL_FINGER/DOUBLETAP/TRIPLETAP have incompatible meanings
    between generic and protocol 4/5 devices.  Add logic to detect
    generic devices very early and override default value of
    wcmProtocolLevel to help out wcmKeys parsing.
    
    Newer touchscreens will work in relative mode because currently only
    tablet_id informs this.  Generic protocols may eventually have
    something in kernel that can be queried for touchscreen vs.
    touchpad.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3d1e060c6f3f92474c19a39b529ac92323df4ac9
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Dec 28 19:10:01 2010 -0600

    Set touch/gesture properties using features
    
    Since wcmKeys can have double meanings (MT Bamboo),
    switch to tablet featues.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 13734c86be023f2a26c586458e191f2127343a7c
Merge: 0f20c2c7 44c6f74b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 7 11:15:11 2011 +1000

    Merge branch 'scroll-ring'

commit 44c6f74b67bb4d67c30bb92221275614b2d8ad5a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 6 16:40:36 2011 +1000

    Simplify scroll strip delta calculation.
    
    Subtracting two values seems to be a far simpler way of calculating a delta.
    This fixes the jumping strip on the I3 devices, at least for the vertical
    one. Horizontal one untested for lack of device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 996b811a31a0a151878cad552db70b9674cf8a0a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 6 16:20:26 2011 +1000

    Add wraparound detection for the scroll ring.
    
    The I4 scrollring appears as absolute axis (0 - 71) to us, but as
    ring-shaped device to the user. Hence, a coordinate transition from 0..71 or
    71..0 is common but must be interpreted as a negative or postive movement
    direction, respectively.
    
    Add code to detect this by simply assuming that if the direct delta of
    old_x → x is larger than the indirect delta (across the axis range
    boundary), a wraparound happened. In that casel, switch the delta used for
    scroll wheel button emulation around.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 97b13e40fcbd4b17becb3bf9fc9f18a18d8edb60
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 6 16:09:53 2011 +1000

    Don't post scroll ring events after proximity events.
    
    If we're going out of proximity, don't post an event.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit a7eb13bf2edf0b5c55843a10480dde7d20a9219e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 6 16:02:25 2011 +1000

    Add defines for scroll ring min/max values.
    
    And reset the scroll ring to an invalid value when leaving proximity. 0 is a
    valid value for an absolute axis if the min for this axis is 0 too.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 166268aba66b3df0188ae35482e27ec6b12ae394
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 6 15:47:31 2011 +1000

    Send common events if the abswheel has changed.
    
    0 is a valid value for absolute wheels. Don't make the event sending
    conditional of an abswheel != 0, otherwise we may skip events.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 0f20c2c71e2a275ad57e97b98b5bd7a4f7fffa9d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 23 10:48:50 2010 +1000

    Use AC_USE_SYSTEM_EXTENSIONS for asprintf and friends.
    
    To enable asprintf, _GNU_SOURCE must be defined before including stdio.h.
    Use AC_USE_SYSTEM_EXTENSIONS to define it for us in config.h
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>

commit 68351dab43e800b503025ef2f06c794d40bc259b
Merge: 2b9eb3db 6f5f29b4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 21 16:59:52 2010 +1000

    Merge branch 'multimonitor-purge'

commit 2b9eb3db9c7c517fe98f32f515cb65372b7bb069
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Dec 20 20:07:15 2010 -0800

    Bamboo tablet does not report device_id anymore.
    
    Process devices that do not report device_id through ABS_MISC from
    the kernel as WCM_PROTOCOL_GENERIC in wcmUSB.c.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 45d3206292db9ec28734ba5020a3b651b2e863fe
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Mon Dec 20 20:15:52 2010 -0600

    Enable 2nd touch for newer Bamboo MT driver
    
    This patch adds support for processing multi-touch (MT) kernel events.
    To do this, it must filter out older style single touch (ST) events
    to prevent conflicts.
    
    For Bamboo's/Tablet PC, channel 0 == 1st finger and channel 1 == 2nd finger.
    
    In older Bamboo kernel driver, serial #1 == 1st finger and serial #2 ==
    2nd finger.  Mapping to channel was serial # - 1 and events had to
    come in isolated by separate BTN_TOOL_DOUBLETAP/TRIPLETAP messages.
    
    With newer MT kernel driver, MT slot 0 == 1st finger and MT slot 1 ==
    2nd finger.  Take advantage of this straight mapping to channel.
    Code will ignore ST-style events then MT packets will write to
    either channel 0 or 1 or both.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ccd06c6e358a28213cf29268730132ce8ee2f297
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 21 11:50:59 2010 +1000

    Fix BIT() macro for 64-bit longs.
    
    1 is an integer, left-shifting it more than 31 places is undefined. Force it
    to be an unsigned long, so for a sizeof(long) == 64 we're still ok to use
    the macro.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 3bf705039353300deb31ed8c1e802c6f7195fe4c
Author: Ajay Ramaswamy <ajay@ramaswamy.net>
Date:   Sun Dec 19 14:46:26 2010 +0530

    Add support for the built-in digitizer in the Lenovo W700
    
    Submitted-by: Ajay Ramaswamy <ajay@ramaswamy.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 3bcf901d30ef21ccce23a270313a01e91422ff19
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 15 16:11:40 2010 +1000

    Initialise all pad axes as absolute axes.
    
    Now that the pad is absolute, we can initialize it the same way as the other
    tools.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit ce98b0a20862291892fc7a3110e4779cd69dd5ba
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 15 15:40:34 2010 +1000

    Switch the pad to forced absolute mode.
    
    The pad was in relative mode because we kept submitting x/y axes along with
    the other data (and x/y was always 0/0). Hence the pointer always moved to
    the screen origin when the pad was used.
    
    With the recent changes, we only submit valuators 3, 4, 5 for the pad and
    can thus switch the pad to absolute mode.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit b7f062284aebfab99c2684641fb23702beab26bd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 09:26:59 2010 +1000

    Switch wcmSend(Non)PadEvents to use first/num valuators
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit cd6eb526ecbccaab2887ab831068189d9303aced
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 13 15:37:57 2010 +1000

    Invert condition from if (!foo) bar() else foo().
    
    A bit easier to read, no functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit e81da00a831a0951b40ffdacc59102f0a7ff9609
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 08:52:59 2010 +1000

    Move non-pad event processing into wcmSendNonPadEvents()
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 7fe6247ba92694b41863a45dbf0dbce76ad2f317
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 08:47:54 2010 +1000

    Move pad events into wcmSendPadEvents().
    
    No functional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 7e351a1ec942dfce85a45a0b9ade189c89f6a722
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 26 08:34:54 2010 +1000

    Copy valuators passed into xf86Post*EventP.
    
    X servers pre 1.9 used the data passed in directly and modified it in the
    process. A call of e.g.
        int valuators[];
        xf86PostMotionEventP(..., valuators);
        xf86PostButtonEventP(..., valuators);
    
    would thus post garbage data for the button event. Work around this by
    copying the valuators before passing them in.
    This is only needed for ABI < 11, server 1.9 duplicates the data passed in
    before processing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 485137ef7524aad7d081669736b3a507e8833b13
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 16:10:18 2010 +1000

    Switch to first_val/num_vals/valuator coordinate passing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 85ebaefab2906d1dd0560ec7210501c8b2295eb9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:56:58 2010 +1000

    Only delta the values for non-PAD devices.
    
    We claim the pad is a relative device, but only because we had troubles with
    the cursor landing at 0/0 in the past. Pretend we're still a relative
    device, but post the values as absolute ones to the server.
    
    Note that the device mode is to tell how the device _behaves_, it doesn't
    specify how the device sends valuators. Thus, a relative device may only
    post absolute coordinates and vice versa.
    
    This applies to motion events only, button events for the scroll ring still
    have the wrong valuator information.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 340760d8547614e07e44574e410d6a0bd217ea7a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 13:58:34 2010 +1000

    Use xf86Post{Motion|Proximity}EventP() for Pad tool.
    
    Only post the valuators we actually have, not fictious x/y valuators. The
    server will fill those in for us.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 1e4d3d7060a1c438ac619cb64febb44bc45b47ed
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 14:13:51 2010 +1000

    Remove wcmInitialCoordinates, move into wcmInitAxes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 1da851810cac797ebd576a312b029f2d9b6812ab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 14:02:23 2010 +1000

    Move wcmRotateTablet() out of wcmInitAxes.
    
    And remove erroneous comment in the process, wcmRotateTablet only sets the
    rotation value, nothing more.
    
    Note that this changes the logic. Previously, the rotation was not set for
    the Pad tool, now it is. Since the pad never sends x/y coordinates though,
    this is irrelevant.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 9c173b153593d70b616c9e8f06830a9dde6255eb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 13:59:41 2010 +1000

    Split axis initialization into wcmInitAxes.
    
    And clean up the code to use less ABI ifdefs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 184809445f29a70f4b8dbcf4a659fa8e51be8c9d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 11:13:21 2010 +1000

    Initialize third axis on pads as unknown relative axis.
    
    The pad doesn't actually send events on the third axis, it simply acts as a
    filler so that client's don't misinterpret the actual axis the device has.
    Initialize it as relative axis, because the rest of the pad is relative too.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 6ef1127f8476135a009f4ef135c98c33de6a19a7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 09:21:23 2010 +1000

    Don't call xf86ScaleAxis for relative devices.
    
    If the axis range is invalid, don't try to scale into the axis range. This
    supresses and error message emitted by xf86ScaleAxis().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ae974beae0ba15678e68ca7684b12ccc143e6273
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 13 11:38:58 2010 +1000

    Don't reset the flags on init.
    
    In ABI 12, flags are used by the server and may contain attachment
    information. Don't reset the flags, we'd end up with floating devices.
    Since at least server 1.6, the InputInfoRec as calloc'd and flags is thus 0
    by default anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 51bbd26a542b12209d9fa5bcaf2ae5ca9acf5790
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 9 16:24:23 2010 +1000

    Resolution needs to be in units/m
    
    The X Input Extension requires resolution be exposed in units per m.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2115880799be10021247598680b88851c8a63b72
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 10 14:47:37 2010 +1000

    Fix compiler warning.
    
    wcmValidateDevice.c: In function 'wcmOptionDupConvert':
    wcmValidateDevice.c:319:2: warning: 'Xprintf' is deprecated (declared at
    /opt/xorg/include/xorg/os.h:271)
    wcmValidateDevice.c: In function 'wcmDuplicateAttributes':
    wcmValidateDevice.c:362:2: warning: 'Xprintf' is deprecated (declared at
    /opt/xorg/include/xorg/os.h:271)
    wcmConfig.c: In function 'wcmPreInit':
    wcmConfig.c:515:3: warning: 'Xprintf' is deprecated (declared at
    /opt/xorg/include/xorg/os.h:271)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4768309e7633152d4b6fb45bfef7d5faf4868165
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 11 12:43:46 2010 +1000

    xsetwacom: change "list dev" output format to something human-readable.
    
    Three changes:
    - Extend device name padding to 32 characters, 16 isn't enough for
      auto-assigned names.
    - list the type as "type: <type>" instead of directly after the device name.
    - list the device ID as well
    
    The three fields (name, id and type) are separated by tab characters to ease
    parsing. Example output is:
    
    Wacom Intuos4 6x9 eraser                id: 12  type: ERASER
    Wacom Intuos4 6x9 cursor                id: 13  type: CURSOR
    Wacom Intuos4 6x9 pad                   id: 14  type: PAD
    Wacom Intuos4 6x9 stylus                id: 15  type: STYLUS
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7c667678783741c4694ad023be9d381431449b3f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 9 15:38:56 2010 +1000

    WCM_TPC also implies WCM_LCD, set the bit accordingly.
    
    Shuffle PAD up to fill the hole.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit de04fe18a63563def569e0d718d121a39bab5fde
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Dec 8 14:27:31 2010 -0800

    Log messages specific to the device
    
    No real code change. Only updated xf86Msg so device specific
    information is posted.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a8e9bc43bcd11496b952c34aba4f307fa7300bb7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 8 16:11:44 2010 +1000

    Don't close devices on read error.
    
    If the devices were removed, the hotplugging code will take care of them and
    remove them. If the devices had some other error happen to them, leave them
    there and hope whatever it was comes back.
    
    If a statically added device was unplugged, the user needs to trigger
    DEVICE_OFF and DEVICE_ON manually to reopen (e.g. VT switch).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 799bbf2cf9cd54942c66f9117df319e933bbd10b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 8 16:07:13 2010 +1000

    Don't free the device info on a failed PreInit.
    
    This data is later freed when the xserver calls UnInit().
    Freeing too early means we segfault later when trying to dereference
    null-pointers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 646fc3656242199bf7a6d52138b69df810dd73f3
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Dec 7 12:29:36 2010 -0800

    Touchscreen includes TabletPC and display tablet
    
    We assumed TPC == LCD in the capacity check.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 65bd54a65d3b9b3bc2ec7a5a497cae35a608a81f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 8 15:34:05 2010 +1000

    Document the tablet feature bitmasks.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit d46e99e1db656a2655edb3bf69fbfcd1e68387ef
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 29 12:41:59 2010 -0800

    Use BTN_TOOL_FINGER for generic touch devices
    
    As discussed at linux-input, BTN_TOOL_FINGER should be used to
    report single touch events. Update tool type and event process
    accordingly.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b80d658d2c3a3def87a3c9819535a06274abf3b9
Author: Camille Moncelier <moncelier@devlife.org>
Date:   Mon Nov 29 09:10:30 2010 +0100

    Removed touch resolution check as it is broken for CapPlus devices
    
    Signed-off-by: Camille Moncelier <moncelier@devlife.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 43933eb06c1782067027b3329490c7113c7039a5
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 30 15:02:41 2010 -0800

    Don't normalize the abswheel unless it's from an airbrush
    
    Due to the limitation of number of valators we can use, Airbrush
    wheel and Art Pen rotation share the same fifth valuator. But
    they do not have the same range of values. So, we normalize the
    airbrush wheel (0, 1023) to the Art Pen rotation (-900, 899).
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6a1372676f4daea36028fdcffd32d9090d979cc6
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Thu Dec 2 17:11:41 2010 -0500

    config: missing randr extension not detected
    
    Problem introduced in commit 8f1dd625e00c182ec1b6a92b277214d1b8f88986.
    
      # Store the list of server defined optional extensions in REQUIRED_MODULES
      XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
    
    The role of the driver check macro is to supply the name of optional extension
    to the PKG_CHECK_MODULES through the REQUIRED_MODULES variable.
    By reversing the order of the statements the variable is empty.
    
    The real fix would be to have 2 PKG_CHECK_MODULES statements, one to ensure
    the server is present at the correct level and one to check the dependencies.
    
    This won't be necessary as the RANDR extension is not optional,
    it is always present. It can simply go next to the others.
    
    All the xorg drivers have this flaw.
    
    This undetected missing randr ext problem only happens with server 1.8 or prior,
    as a new Requires.private statement has been added to server 1.9.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a474d4069f8622b5b158152c16c02118f2a4d415
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 2 10:28:53 2010 +1000

    xsetwacom: fix buffer overflow when printing button configurations.
    
    str[10] is not enough to hold a string of e.g. "+Control_L ". Bump to 32,
    that's probably enough for all keysym to string conversions.
    
    Reported-by: Marco Funk <thewiz4rd@arcor.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Marco Funk <thewiz4rd@arcor.de>

commit dc010f3a620192e59d1349cb432cd4e6ab1ec619
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 1 15:40:11 2010 +1000

    Fix segfault in case of unplug during PreInit.
    
    If the device is removed between wcmHotplugOthers() and the end of PreInit()
    of the first device, the close(fd) call at the end of PreInit("stylus") will
    cause a SIGIO on the file descriptor.
    
    The read call (wcmReadPacket(), usually on the last hotplugged device, e.g.
    the pad) will then result in an error, causing this device to close all
    associated devices through wcmDevProc. The parameter passed in is
    essentially pInfo->dev. This leads to a NULL-pointer dereference, as
    pInfo->dev is not yet set up for the first device since we're still in
    PreInit. Call stack is something like this:
    
    PreInit(stylus)
            wcmHotplugOthers()
                  PreInit(eraser)
                  PreInit(cursor)
                  ...
            close(fd)
    ......... unplug device here.............
            wcmReadInput(pad)
                  read error
                  wcmDevProc(stylus->dev)
                  NULL-pointer dereference
    Server sets stylus->pInfo->fd
    
    Segfault only happens when the device is unplugged when the pad is already
    active but the stylus is still before the server assigns pInfo->dev.
    Reproducible test-case: set a break point on the close() call in PreInit for
    the stylus, then unplug the device before continuing.
    
    This patch adds a check whether the device is already set up before calling
    close. If not, skip it. The DEVICE_INIT following PreInit will see a ENODEV
    on the fd and thus remove the device and its dependent devices anyway.
    
    Reported-by: Camille Moncelier <moncelier@devlife.org>
    Reported-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7731411ac572438d23ead812c801ff380e65bc2c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 1 10:19:37 2010 +1000

    xsetwacom: assume xorg.conf format for "get all"
    
    A list of parameter options is rather pointless given that the order of the
    parameters is pretty random. Assume xorg.conf format by default for
            xsetwacom get <device> all
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit af17bb81c5d74b1f75ce5e90068c263cddf6a325
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 1 09:29:19 2010 +1000

    xsetwacom: don't try to get write-only parameters in "get all"
    
       xsetwacom get <device name> all
    should list all parameters, but not write-only ones (currently MapToOutput).
    While the normal code path through "xsetwacom get <device> <parameter>" had
    a guard condition there, the "get <device> all" did not. Add it, to skip
    those properties that cannot be read from the driver.
    
    Reported-by: Marco Funk <thewiz4rd@arcor.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 770d13f4399218528535deff4dfa8f050eb83436
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 30 15:35:20 2010 +1000

    xsetwacom: fix property offsets for gesture tap and rotate.
    
    Reported-by: Marco Funk <thewiz4rd@arcor.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Marco Funk <thewiz4rd@arcor.de>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 6f5f29b49a6ebda7ae13ca9c32e6e16cf3181fc2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:21:16 2010 +1000

    Purge screen coordinate storage.
    
    Input drivers monitoring screens doesn't work out well, all we need to do is
    use xrandr to change the screens and our driver deals with wrong
    information.
    
    Note that this patch breaks KeepShape (if it worked before), shape
    proportions should be exported as a property and be controlled by the
    client instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8713147d76e225d28eef941b332ef64baa3f770c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:19:20 2010 +1000

    Remove numScreens field.
    
    Most setups these days only have one ScreenRec, RandR outputs don't show up
    as ScreenRecs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ab868bd9b03aa52ccd31227cd27729d56de3072
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:17:05 2010 +1000

    Remove currentScreen, it's write-only now.
    
    With the recent multi-monitor removal, this field wasn't used anymore.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4ffd3c64ca29a637bf1d2c69b11e360e8d8a82f5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 15:02:15 2010 +1000

    Purge ScreenNo handling.
    
    The definition of ScreenNo isn't clear, given that we have RandR screens,
    ScreenRecs and protocol screens, not all of which overlap totally. Let the
    mapping of the tablet to a given area on the available desktop be handled by
    a client.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 910dc6378c5e1883145a93ce15d92efa91d8fa79
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 14:56:07 2010 +1000

    Remove display toggle switch.
    
    Which display do you want to toggle in between? The ScreenRecs or the RandR
    outputs?
    
    Let's not have any multi-monitor handling in the driver, push it to the
    clients to handle this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72628cf965203eb2c625bf62b3f2c2324ba1fbeb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 24 14:47:05 2010 +1000

    Purge MMonitor option.
    
    Use the coordinate transformation matrix instead, see xserver
    commit 6cccf0131c8464d8838cae2200730873d7dd9e45
    Author: Peter Korsgaard <peter.korsgaard@barco.com>
    Date:   Tue May 25 11:03:28 2010 +0200
    
        dix: add 3x3 transformation matrix xinput property for multi-head
        handling
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d678efb371ead5421031e32e590ef6f796e664a4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:31:58 2010 +1000

    Print the type_name for debug messages.
    
    Instead of a quadruple-nested ternery operator, just print the type_name.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit d528d6e9fd9120cf16b8290aa545ff0b3bdf4c5e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 25 15:25:18 2010 +1000

    Print debug level for DBG statement.
    
    Seeing which message is printed for which level makes it a lot easier
    to pick a debug level to narrow down on the data that's interesting.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 6d162d220fd162084e7f8d9ee9abde509d71cdd1
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Nov 23 15:11:12 2010 -0600

    Use single filter routine for all tools.
    
    Combining filter routines to reduce upkeep and
    keep all step step of filtering aligned.
    
    There are two steps in filtering. 1) Storing filter and
    2) filtering samples.
    
    Stage #1 is storing X/Y and optionally storing
    tiltX/tiltY based on HANDLE_TILT().
    
    Stage #2 is filtering value.  It uses device specific
    callbacks to filter.  There are 2 ways currently.
    Both ways filter X/Y use same math but second also
    filters tiltX/tiltY.
    
    It seems reasonable to do tiltX/tiltY filtering
    decision at runtime using HANDLE_TILT() to align
    both steps and reduce duplication.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3a3f94c2be798634629e92b3f4d14cdde445aafb
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Nov 23 15:11:11 2010 -0600

    Make npoints really track samples in filter window.
    
    I assume npoints means number points so align with that.
    Its really only being used as boolean value for init phase
    in todays code but that may change.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6fc0cb7415dc09fb96b242c146466a569b505f85
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Nov 23 15:11:10 2010 -0600

    Stop resetting filter window each sample processed.
    
    Up until recent commits there was an if() statement inside
    reset function which prevented window being reset while
    in proximity.  That got removed which caused a bug were
    sample size was always size of 1.
    
    Remove the blind reset call and rely on existing conditional call
    while entering proximity.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a3efb69eac1b2c1082304f5d145527cf52495544
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 23 17:30:21 2010 -0800

    Update new device types
    
    Added a few new ones in wcmDeviceTypeKeys
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 038886431562ed5fedc265c4a79b323c11fb329e
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 23 14:29:59 2010 -0800

    Skip area check for pad tool
    
    Since Pad tool does not emit motion events, there is no area defined
    for pad. Skip those steps in commonDispatchDevice.
    
    Signed-off: Ping Cheng <pinglinux@gmail.com>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 23ec620249d6dda5876a7f7404c360124368fbb5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 23 14:07:06 2010 +1000

    Don't allow the deletion of active button action properties.
    
    If a button action property is currently referenced by the driver, refuse
    the deletion of it. Clients must unref the property first before they can
    delete the property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit a2d4620d6f77f5a1f355656d66a52e58612dd8fe
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 21 18:13:40 2010 -0600

    Revert part of BTN_TOOL_FINGER removal.
    
    It was not allowing BTN_0 or BTN_FORWARD events to be
    processed for any tablet.  Not sure if other negative
    behavior existed.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fed765ab1fb90a6c5e48e9a84b787e4e88853f90
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 21 18:13:39 2010 -0600

    Add missing MT Bamboo Touch buttons
    
    Newer MT Bamboo drivers send BTN_LEFT, BTN_RIGHT,
    BTN_FORWARD, and BTN_BACK instead of BTN_0, 1, 2, 3.
    
    BTN_LEFT/RIGHT already were handled for mouse tools.
    
    Add BTN_FORWARD/BACK and treat same as BTN_SIDE/EXTRA
    mouse buttons.  This is good because by default these
    go to buttons 8/9 which some apps treat as forward/back.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a0d650011367e4a5f814bdf936ee533c7a200a2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 21 18:13:38 2010 -0600

    set npadkeys correctly for touchpads
    
    Its natural for newer touchpads, such as Bamboo Touch,
    to report buttons that overlap with mouse tools.
    
    These will get remapped to pad device based on previous
    patches but button count was not correctly initialed
    to account for this remapping.
    
    Now, make sure minimum nkeypad value is based on
    maximum mouse buttons when it detects supporting
    one or more mouse buttons.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a44680f3747a7eb6a884555d96acb830b3427f7d
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 21 18:13:37 2010 -0600

    Set maximum tool button count to correct values
    
    The code to set nbuttons for non-pad buttons was checking
    for a lot of buttons that no current wacom tablets send
    or that is understood by xf86-input-wacom.  Remove that
    dead code.
    
    The remaining logic seem to be trying to detect mouse
    versus other tools (stylus mainly) and set button count
    based on that.
    
    Changed to look for BTN_TOOL_MOUSE to work with wider range
    of tablets without special checks.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a5d1ae65e40590ada78a63ce7794af161203362
Author: David Foley <favux.is@gmail.com>
Date:   Sun Nov 21 20:46:45 2010 -0600

    wcmValidateDevice.c: add 3-new-bambooPT-models
    
    Prevents the Xorg.0.log filling with multiple error lines "No touch device found".
    
    Reported-by: IRIE Shinsuke
    Tested-by: IRIE Shinsuke
    Signed-off-by: David Foley <favux.is@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 13466334d77bc50986c7392099bd6a8319f72b31
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 22 09:37:12 2010 +1000

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

commit ea47ab69573fd6dbc13e89f6b33c9cac46ce23d0
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Nov 20 12:20:44 2010 -0800

    Accidently removed checking type with wcmType[j].type in wcmValidateDevice.c
    
    2 steps forward 1 step back? What a great three-step waltz!
    
    Reported-by: David Foley <favux.is@gmail.com>
    Tested-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    
    Introduced in 4e17f170bc31ed9572be743c6f5d7d705b447c7d.
        "BTN_TOOL_FINGER no longer a valid type for pad tool"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a9d521802ee56c01362164f57516bfd9d7f0d2c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 10:41:53 2010 +1000

    Fix release script for sourceforge shell service.
    
    sf requires the creation of a shell before any operations, see
    http://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service
    The shell creation always requires a username, so take that from $USER.
    
    Leave the shell open at the end of the script (i.e. don't forcibly shut it
    down) in case the user needs to go in and do additional changes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ede7e5263dfea48ba9fbf8d225c00c71b601f58d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 09:49:15 2010 +1000

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

commit 1397c99713e05f705753b083eb46c7c5e9159524
Author: David Foley <favux.is@gmail.com>
Date:   Wed Nov 10 11:21:58 2010 -0600

    wcmUSB.c: 3-new-bambooPT-models
    
    Adds 3 new Bamboo Pen & Touch models.  Supporting changes to linuxwacom
    wacom_wac.c also needed.
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit aff73f14eff3fc314412fb4c4d020c185df92801
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 18 14:33:39 2010 -0800

    Add WCM_PAD as a tablet feature
    
    Not all tablets have tablet buttons. Add WAC_PAD so TabletHasFeature
    can tell us if the tablet has pad tool or not.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cd8259fc1cb3989578f42a5984c6b329acb43760
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 18 14:24:32 2010 -0800

    Change wcmDeviceTypeKeys to usbProbeKeys in wcmUSB.c
    
    A copy and paste error, I guess.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1bfe863e1abb1bb731edce375ade675d484e5d65
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 19 08:44:46 2010 +1000

    xsetwacom: rename ClickForce to Threshold.
    
    Click force is a normalised scale from 0 - 21 for the pressure threshold. If
    we want to expose this, let the client UI's do this in their respective
    interfaces, not in xsetwacom.
    
    Rename to Threshold, which is the normalised threshold in a 0-2048 range
    and the data the device actually puts out.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 98e7d4a1c7b1c1c1154a70779c7a02a56f1da367
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 18 13:51:51 2010 -0800

    Remove BTN_TOOL_FINGER from wcmUSB.c
    
    Since it is no longer used for pad, update the comments and code too.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4e17f170bc31ed9572be743c6f5d7d705b447c7d
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 18 11:42:32 2010 -0800

    BTN_TOOL_FINGER no longer a valid type for pad tool
    
    BTN_TOOL_FINGER is used by mouse driver for the first finger.
    Before a new BTN_TOOL_ is added in input.h for pad tool, we
    don't have a BTN_TOOL_. However, we still need to configure
    those tablet buttons and strips/ring. Let's detect the actual
    buttons we are going to receive to determine the existence
    of a pad tool.
    
    BTN_0 and BTN_FORWARD are the two unique BTN_s that we use for
    tablet buttons in the kernel driver.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 203d66651ef8d231e266e29e337f76a92e8ef7d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 18 14:58:16 2010 +1000

    xsetwacom: correct default pressure threshold (ClickForce)
    
    Since 659daa11dc558a45bfad1b9548f1757fab226ad7 we normalize the threshold
    into a 0-2048 range. The default is 2048/75, i.e. 27.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c23a3a320120069367e067f11973e9d4bacc3b1b
Author: Ping Cheng <pingc@wacom.com>
Date:   Wed Nov 17 13:48:15 2010 -0800

    Add 5 new devices
    
    Added DTU2231, DTU1631, Intuos4 WL, and Cintiq 21UX2 tablets.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9d47e17623630b5d53b3b131440f2065fc77eee7
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Nov 16 13:07:03 2010 -0800

    Do not initialize (x,y) valuators for pad tool
    
    Pad tool does not emit motion events. Leave (x,y) alone. Other
    valuators, even the pressure, may be used by pad to pass raw
    data to clients.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 647355a888507122078a37d075bb106391f69a5b
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 14 11:08:17 2010 -0600

    Ignore return code from filter calls
    
    It does not seem like a good idea to ever discard events
    based on filtering logic.  Filters generally should smooth out
    values and not cause us to discard whole window of samples.
    
    Currently, all filter routines hardcode return to 0 anyways
    and so this dead code only caused some confusion.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 66f8e091932df6fa82df134de8e5550a5ac14823
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 14 11:08:16 2010 -0600

    move storing of raw samples into wcmFilter filer
    
    This helps abstract out filtering better and also allows
    custom behavior on storing of samples as well; such as not
    moving avg window if no X/Y values have changed in current
    event cycle.
    
    Intent of this change is refactor only (no behavior change).
    Most off diff is moving logic over to wcmFilter.c.  There is minor
    flow difference because RawFilter() and wcmCheckSuppress() needs
    to be kept in wcmCommon.c, and so outside logic that stores samples,
    but intent is same results.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4080e04ca7535635800deb1af68fab6b37bfa69b
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 14 11:08:15 2010 -0600

    Ignore events that occur while out of proximity.
    
    When out of proximity, changes to values to X/Y/etc are not
    meaningful.  Some non-wacom tablets will send these values while
    out of proximity.
    
    Although we correctly ignore their values elsewhere, its more
    efficient to ignore right away.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 22349586a3579bea0c51a2bb42291fb3d432b0ae
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 14 11:08:14 2010 -0600

    Removed unused filter variables.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 69cd5d502c9879b8db66adabb343a24529879e4c
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 14 11:08:13 2010 -0600

    Reset filter window when entering proximity
    
    Old logic was relying on multiple sync windows occuring while
    out of proximity to reset averaging window; which doesn't always happen.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 08834f051c20b9b794e58a1e2a44d5d7b83ecc68
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Nov 14 11:08:12 2010 -0600

    No need to filter X/Y values when out-of-prox
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9cdb8123a552df881cf8117f6913791e0b586c9f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 11 13:36:14 2010 +1000

    Don't initialize the area property for the pad.
    
    The pad tool doesn't send any pointer events, so we don't really need to
    have a area for it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 9947959a3f224dc927ccf53de975eabdfd74230d
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Nov 4 20:01:41 2010 -0500

    Use self describing logic for generic touchpad btns
    
    Changed logic to dispatch 1 or 2 channels events to be
    based on value of wcmBTNChannel instead of based on protocol
    used.
    
    Although previous logic worked, this way is clearer to reason
    why wcmEvent() needs to be called for 1 or 2 channel's.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 791de526725abebfa33e1b41097c3e60b500f7f1
Merge: fd618588 c6dcc3a1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 4 09:21:53 2010 +1000

    Merge branch 'next'

commit c6dcc3a1f78b6eb2e3d0ac1b7074ec5b94d5c209
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 25 10:40:16 2010 +1000

    Input API 12 requires a valuator mode for each axis.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Chris Bagwell <chris@cnpbagwell.com>

commit ea392a15560e19d28caf082f113e58edb6e56132
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 10 09:39:14 2010 +1000

    Use xf86OptionListDuplicate under input ABI 12.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d086b320fef1bde7db149309a6d77f072f8cbdb1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 2 12:51:05 2010 +1000

    Adjust to new input PreInit from API 12.
    
    New PreInit prototype streamlines the process a bit, leaving most of the
    task up to the server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fd6185880c0f414971adfd67fb34256f73a82f87
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 3 14:29:58 2010 +1000

    Avoid use of unitinialized variable fakeKey
    
    There's a path in getWheelButtons() where fakeKey is not set. Check for
    that.
    
    Reported-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Jon Neal <reportingsjr@gmail.com>

commit 75bfb52f6c36afe9354061de92538c7966d784b9
Merge: ab71355f 09445a03
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 29 15:25:26 2010 +1000

    Merge branch 'usb-cleanup'

commit ab71355f6e251833f422cf5c591ed42208cf3f91
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 29 11:43:00 2010 +1000

    Limit debug level max values to 12, not 10.
    
    Let's do what the man page says.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit ee470480f986470555dbd7b04c53cbc85f7dc779
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 29 10:43:26 2010 +1000

    Enable debugging by default.
    
    If a distro doesn't want it, they can always disable it. Most of us building
    from source definitely want it enabled.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit cded861562ff05a622609ec76882434940cd5d4f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 29 10:40:32 2010 +1000

    man: reword man page for DebugLevel and CommonDBG
    
    - The log file is not in /etc
    - Don't use "define", it's confusing given that DEBUG must be
      defined to get it.
    - CommonDBG doesn't enable debugging for all devices on the tablet, just for
      common code paths.
    - Note that debugging must be defined for the options to work.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 09445a03c765df0eef1b70e082058b229767e00f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 10:51:09 2010 +1000

    usb: split parsing the SYN event into a separate function.
    
    My attention span is too short to handle long functions :)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 0cc05a9f6a437d90451188c35f5b3a7ea41a3bbc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 10:52:27 2010 +1000

    usb: Fix a confusing comment
    
    "Fall through to dispatch" is arguably better, because that's what we're
    going to to next and there isn't a guarantee yet that we're actually
    delivering an X event.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 72786ae0c8d6c1ce2c95741f65de5d11763099bb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 10:47:10 2010 +1000

    usb: USE_SYN_REPORTS_FLAG is always set these days, purge it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit a5268935f86046cba74631a9e81cdedd9672274a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 10:38:36 2010 +1000

    usb: Use ARRAY_SIZE macro instead of manual size calculation.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 9809863d8ee3931395e245e855b97073566fb7e1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 10:30:46 2010 +1000

    usb: move private allocation up.
    
    This is the only failure path, might as well get it out of the way quick.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 856b2891c4dd73e60b7ed59b8aa595ab1e32812a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 10:08:37 2010 +1000

    usb: Compress USB model definitions.
    
    Use a DEFINE_MODEL macro to de-duplicate the common intializations for the
    WacomModel struct.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 8d69f6ec166e6165652ec2379a6c9405d5607278
Merge: f27cb29c cdfedc95
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 28 14:49:03 2010 +1000

    Merge branch 'xsetwacom-buttonmaps'

commit f27cb29c088b4a2cfe5e6c1d4de1f305a0ac5dff
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Oct 24 14:40:18 2010 -0500

    Support tablet buttons without serial #'s.
    
    The core of xf86-input-wacom strictly enforces buttons
    on tools that are out-of-proximity must be cleared except
    for the special case of the PAD device that is always
    considered in proximity.
    
    Generic tablets (non-wacom) and touchpads will send button
    presses associated with tablet itself even if no tools
    are reported as in proximity.
    
    Work around this by forcing all non-styus button presses
    to be routed to hard coded PAD channel and post multiple
    channel events per sync window.  This is for generic
    tablets only and wacom tablets continue to process events
    the same way.
    
    MT packets could be implemented using same concept and
    routing to hard coded channel 0 or 1 based on finger #.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit cdfedc95017c0c80f7b1dc5b4dcbb47863ad66aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 14:20:07 2010 +1000

    xsetwacom: unset special button mappings when switching to simple ones.
    
    After a special button mapping was assigned, allow switching back to a
    simple button mapping.
    The following sequence now works:
        xsetwacom set <device> Button1 key a b c
        xsetwacom set <device> Button1 1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 86449bee044b4887b1341b3db5e51fb84087de80
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 14:10:02 2010 +1000

    xsetwacom: fix an outdated comment, map_button only has two variants.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 345db498a60fd788d7bb4d43a3ce05d3a7706434
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 11:16:56 2010 +1000

    xsetwacom: for button mappings with keycodes, print the keysyms
    
    This isn't really accurate as it relies on the current keymap, but then
    again, that's what you get for having keysym handling in the driver...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 194b76b9ca716f277c5753d159c446e162c90233
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 10:56:04 2010 +1000

    xsetwacom: print special button maps.
    
    If a device has something more complex than a simple button mapping for a
    given button, print it.
    Note that this doesn't simplify the mappings, so
        xsetwacom set <device> Button1 "button 1"
    will print as
        ... "button +1 -1"
    instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit d95ac5e1789841347b458cf95056033f41ad91a6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 10:49:35 2010 +1000

    Deprecate AC_DBLCLICK - use two button clicks in the client instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 077d24850fcf36c5a7c56e9a9a56fcc2c4a50a4c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 10:06:27 2010 +1000

    Comment AC_CORE as deprecated.
    
    Leave it in for now in case someone relies on it but it'll likely be removed
    in the future. Drivers don't decide on whether to send core events since
    1.7.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 09862c15874162c56e7d310f9e5385a76eb616a2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 27 09:20:54 2010 +1000

    xsetwacom: Extra tracing for button maps.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2a050b9798dec401311dc8758c903ed6175e07c2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Oct 24 14:40:17 2010 -0500

    Only call wcmEvent() if valid event received.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 972c3cd6dc580b97565c51cb4260128cc8095c94
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Oct 24 14:40:16 2010 -0500

    Increase MAX_CHANNELS to 3 to handle Bamboo's max.
    
    This must have been missed during merge of Bamboo and gestures.
    It requires 3 channels to track 1st finger, 2nd finger, and pad
    device.  Gestures will not work correctly without this.
    
    BTW: This means Intous1 and Intous2 devices can now have 3
    tools in proximity at once to match max on kernel side.
    I assme this works fine since linuxwacom xdrv has increased to 3 as well
    but I'm unable to test on that device.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d4c0c4a1602fa652a10f96e47776a6c0689a6bf9
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Oct 24 14:40:15 2010 -0500

    document special logic done while going in-prox
    
    There is an implied agreement between kernel drivers and
    user land to work around event filtering issues.  Document
    our current approach since it seems not so obvious the
    importance of a memset().
    
    Our current approach works great with wacom tablets but
    has some issues with non-wacom tablets.  List some TODO's
    to aid those developers in the future.
    
    Also, forcing in proximity handles a few corner cases fine for
    all wacom devices but document the preferred approach for
    possible future patch.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 95c8d204070a7e88e71f49542c64047ffd5061d2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Oct 24 14:40:14 2010 -0500

    Centralize validating of event queue sizes.
    
    Changed !type check to type == EV_SYN to make it clear what its doing.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e077311a1678ddcdf6cf50bd4c72a4a11ac7820b
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Oct 24 14:40:13 2010 -0500

    Refactor channel selection logic
    
    usbParseEvent() is for queue'ing up events until a full sync
    window occurs.  It was also selecting a channel related
    to all queued events.
    
    Move channel selection logic to function that processes all events
    (usbParseChannel()) since its more related to that logic than
    to queuing logic.
    
    Also, rename to usbDispatchEvents() since some WCM_PROTOCOL_GENERIC
    devices can send events that need to be placed in multiple channels.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Thu Sep 30 02:40:30 2010 +0200

    Correct TPCButton property inversion
    
    The property had the inverse meaning (TPCButton on actually meant
    it was off). Correct this.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Jason Alavaliant <alavaliant@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ef7345fb3d0fce48d7968bbdd108755113a24035
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Wed Oct 13 21:15:58 2010 -0500

    Partial support for Bamboo Touch MT-style interface.
    
    Initial changes to support Bamboo Touch input device
    reporting values using a touchpad-like event interface
    and MT events for multitouch.  This change is backwards
    compatible with original "serial #" style multiplexing of
    touch data used by Tablet PC's and Bamboo Touch's.
    
    This change allows a generic touchpad to function with
    xf86-input-wacom; including basic 1 finger gestures such as
    tap-to-click.
    
    Tablet buttons do not work while finger is out-of-proximity.
    They need to be rerouted to always-in-proximity PAD device (last
    channel) to work with current framework.
    
    MT events are not processed yet and its 2nd finger events need to be
    rerouted to channel #2 if wacom gesture logic is to work.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 680b9a9a31c2e2cec994e348402af153bd573be5
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Wed Oct 13 21:15:57 2010 -0500

    Use enums for defining protocol used.
    
    There is possible plans to support at least one more "protocol"
    for sending events from Linux input devices to xf86-input-wacom
    (GENERIC). In preperation for this, switch to enums which allow
    using names to indicate totally unrelated protocols.
    
    Also, add better documentation on what Protocol 4 and Protocol 5
    really means in wcmUSB.c.
    
    This patch shows that usage of wcmProtocolLevel in
    commonDispatchDevice() is questionable (hopefully,
    no protocol specific logic needed in common functions) but
    that is left for another patch set.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bfffbce420afa57ea7135078938904c13ce6c4a8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 13 08:51:12 2010 +1000

    Only initialize CursorProx property for the cursor/puck tool.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 19c24dc4e852bae384f16411d5f59add487be5f0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 8 08:49:22 2010 +1000

    Rework rotation and scaling into tablet areas.
    
    For each event, scale into the the range defined by topX, ..., then rotate
    and invert the axes as required.
    
    Don't mess with the topX, ... properties when rotating, the man page claims
    they apply to the physical topX, ..., regardless of rotation.
    Since we don't modify these anymore, rotateOneTool() is obsolete and
    wcmRotateTablet() a lot simpler (to be removed out in the future).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit c505eca885b8b4f1743b158414236034757eac58
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 7 14:45:28 2010 +1000

    Don't change axis ranges after rotation.
    
    Don't change the axis range at runtime, clients cannot cope with that and
    will process data in a wrong manner. Rotation needs to happen inside the
    driver, with the rotated axis ranges being squashed into the respective axis
    ranges announced at startup.
    
    Note: This temporarily breaks tablet rotation until the real scaling has
    been set up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit fdc4e91212d0d0fbd5d93e94b0faa9fc6ee72f44
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 7 14:42:10 2010 +1000

    Don't replace the TopX, etc. options when rotating.
    
    These options should always refer to the physical tablet's coordinates.
    Besides, I don't think anything actually accesses these options after the
    init process.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit b05b13fdd9dbda2bf1b5c56e5464c55b2cd93849
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 7 14:36:24 2010 +1000

    Don't reset the axis range when changing the tablet area.
    
    The axis range must not be modified at runtime. XI2 allows for it (we don't
    have the hooks for it in the server though), but changing the axis range
    after a client has started up means the client processes events wrong.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 20edad000c0b3ffdeb19494c7a5b888f64fed454
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 8 08:25:53 2010 +1000

    Explain why name must not be moved in the WcmCommonRec/WcmDeviceRec.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f4a46bcd99cdaeddb26c2ec5e07f2f7fd03cce77
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 7 14:32:35 2010 +1000

    Rename wcmRegisterX11Devices to wcmDevInit
    
    The latter didn't do anything but call wcmRegisterX11Devices, so we might as
    well skip this step.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f2588f9ba25f5b86f9fdbc87ef302ef1cb612e72
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 7 15:46:08 2010 +1000

    Silence two compiler warnings.
    
    ../../src/wcmTouchFilter.c: In function 'wcmSendScrollEvent':
    ../../src/wcmTouchFilter.c:299:21: warning: cast from function call of type
    'int' to non-matching type 'double'
    
    ../../src/wcmTouchFilter.c: In function 'wcmFingerZoom':
    ../../src/wcmTouchFilter.c:458:17: warning: cast from function call of type
    'int' to non-matching type 'double'
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Jan Steffens <jan.steffens@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 78e955996eb01d952acd9212dfcaef6060130877
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 1 11:27:03 2010 +1000

    Purge STopX/SBottomX config values and the screen property.
    
    Input drivers are not in the business of exporting screen coordinates.
    Especially since these are likely to be incorrect in the light of RandR 1.2
    and later.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2a4447f9d84beac78bc256d436b93a5f8fcc55a7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 27 15:33:02 2010 +1000

    Purge TwinView driver support.
    
    TwinView is a video driver feature that, quite frankly, screws everyone. It
    exposes only a single ScreenRec but we need to pretend we have 2 when it's
    activated. We can't get the dimensions of the screen and rely on the user to
    set it, hoping that everything works in spite of that.
    
    For single ScreenRec setups (including RandR multiscreen), we can use the
    Coordinate Transformation Matrix property to achieve tablet-to-screen
    mappings (see commit 239822f9f4 "xsetwacom: add "MapToOutput" parameters.")
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9ddd9ce76bafd77588de87096c8445fa2719e303
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 14:28:41 2010 +1000

    Remove wcmSetScreen(), it's not working.
    
    The current behaviour on a single _protocol_ screen is working fine (this
    includes RandR 1.2 multi-monitor setups).
    
    The behaviour on a multi-ple protocol screen is broken, with the center area
    of the screens being unaccessible. Given two monitors in a left/right
    layout, the pointer will jump half-way through the first screen to the
    center of the right screen and continue from there. The areas marked with x
    in the diagram below are inaccessible.
    
    +-----------+ +-----------+
    |     xxxxxx| |xxxxx      |
    |     xxxxxx| |xxxxx      |
    +-----------+ +-----------+
    
    Remove the wcmSetScreen() call and let the X server handle the screen
    crossing. This isn't quite perfect yet as the pointer gets stuck on the
    rightmost screen but it's better than the current behaviour.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a598ba47028075c0192533e12b825490e361e698
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Oct 7 15:30:58 2010 +1000

    Remove refcnt initialization from InputDriverRec.
    
    Removed from the server with
    commit 6130170e7e9b64c611ee942ec3455dd1a185193d
    Author: Adam Jackson <ajax@redhat.com>
    Date:   Sat Sep 18 06:41:35 2010 -0400
    
        xfree86: Remove unused refcounting from input drivers
    
    And given that it was unused, we don't need to ifdef it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fd3c86ee1e17df2b186aa52977be71772f7f360a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 9 14:58:22 2010 +1000

    Use the device's name directly, not conf_idev.
    
    conf_idev is slated for removal in the server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0b9756915d44d9b1f19eb4317533a05295637d52
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 3 16:18:45 2010 +1000

    Don't init close_proc, the server doesn't call it anyway.
    
    Also scheduled for removal.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit a65857d6e30aec1f8a819b60834d14621f67514d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 3 16:16:58 2010 +1000

    Don't init pInfo->atom, the server will init it for us.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 95aea505990716c1b7d635e5d34a86b37832c173
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 1 15:38:10 2010 +1000

    Don't set private_flags if we don't use it.
    
    Scheduled to be removed in the server and neither the server nor we need it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8674a77acb141c2e861edbacfd527f32c84a28fd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Oct 5 16:04:13 2010 +1000

    man: fix typo in man page "list mods" → "list mod"
    
    Reported-by: Alex Hamon
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f138922837c89bd0b32df64c69cc4cd75821248
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Mon Sep 6 19:42:31 2010 -0500

    Fix Bamboo touchpad "freeze" issue.
    
    Remove part of code that tried to detect invalid packets coming
    from touchpad because of known issues from filtering of events
    in Bamboo Touch drivers that do not use MT kernel interface.
    
    The size BAMBOO_TOUCH_JUMPED is to small and can hit logic
    during normal finger movements.  To end user it will look like
    touchpad freezes until they remove their finger.  This freeze
    has been reported by at least a couple of end users to mailing
    list.
    
    This is REALY noticable issue when working with MT version of
    Bamboo driver because its scalled up the reported X/Y values
    and ANY movement will exceed BAMBOO_TOUCH_JUMPED.  Unless code
    is removed, Bamboo Touch MT can not work with xf86-input-wacom.
    
    Removed code instead of trying to fix it because it can't be fixed
    without also breaking gesture logic and the new MT driver solves root
    issue.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0f409708e745eb20d753ee6e3f18186c9c06d627
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Mon Sep 6 19:42:29 2010 -0500

    Allow valid case of 2 events per sync windows
    
    The check to find event sync windows with to little information
    was to agressive.  For example, if only pressure is changing
    then only two events will be sent: ABS_PRESSURE and EV_SYN.
    
    The previous logic would discard in this case.  This is also
    in preparation for simplier tools which do not report serial
    numbers and in general will send small total events per
    sync window.
    
    Also, fixed comment since MSC_SERIAL events are not strictly
    required.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1b9a7c2823080d59c7bc8749aa2d52e5722d8773
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Mon Sep 6 19:42:28 2010 -0500

    Refactor usbParseChannel.
    
    The function was getting to long and mixing both event
    processing and device_type validataion.  Now, usbParseChannel()
    is mostly about device_type validation.
    
    The intent is no change in logic.  Switch to case statements
    instead of if()'s from precieved increase of readability.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c0f7b2e7f1ed6601392c39c0eda3c4c96326c86a
Author: Nikolai Kondrashov <spbnick@gmail.com>
Date:   Sun Sep 26 18:14:06 2010 +0400

    Add isdv4-serial-debugger to tools/.gitignore
    
    Add isdv4-serial-debugger to tools/.gitignore to avoid git messages about
    untracked files.
    
    Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b2aae07353d55eb5f8cdee3ff74f9f253a1b83ed
Author: Xing Wei <weixing@hanwang.com.cn>
Date:   Sun Sep 26 21:22:45 2010 +0800

    make hanwang tablet handled by xf86-input-wacom
    
    Add support for hanwang tablet in the file .conf.
    
    Signed-off-by: Xing Wei <weixing@hanwang.com.cn>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0bd1b1c623866f5757e595f632ecf4fcd01fe127
Author: Nikolai Kondrashov <spbnick@gmail.com>
Date:   Sat Sep 18 15:40:16 2010 +0400

    Add tabstop=8 to vim modelines
    
    Add tabstop=8 to vim modelines in source code files to avoid incorrect
    shifting if the editor has other tabstop setting.
    
    Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c5675de9e4aeb3c4bb65735d1135567046f58ec1
Author: Xing Wei <weixing@hanwang.com.cn>
Date:   Sun Sep 12 16:01:43 2010 +0800

    make hanwang tablet handled by xf86-input-wacom
    
    This trival patch make Hanwang Art Master III tablet handled by xf86-input-wacom driver in the X system.
    
    Signed-off-by: Xing Wei <weixing@hanwang.com.cn>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3a8a601f1b73a7b7d56d2a1635a7522751477fdf
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Tue Sep 7 23:27:26 2010 +0100

    Remove "curve" from debug message - trivial fix
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f968420695d72240ef6cb56febd195f8724b9f6e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 6 13:36:03 2010 +1000

    Allow 0 for TwinView resolution if TwinView is NONE.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 045a4c3635dbcad9bd0a06aff78b0a960e405c95
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 1 13:22:02 2010 +1000

    Remove custom keymap assignment.
    
    Any client that applies keymaps after the device was detected will overwrite
    this custom keymap. This is the case with e.g. GNOME, so going through the
    effort of defining a keymap is short-lived.
    
    If a special keymap is required, the XKB options can be set accordingly
    though they will suffer from the same issue described above.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2515103d4672c1cdf4c2d0ac6e7a55ab1201da24
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 1 14:15:17 2010 +1000

    Don't set old_x/old_y on init.
    
    These fields are unused and to be removed soon anyway. Don't init them, we
    don't access them at any time.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ae868c4eecb71b99f2c3f6c54af88ef4e553f391
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 31 11:31:09 2010 +1000

    ISDV4: support FUJ02e7 serial device in isdv4ProbeKeys
    
    Device supports two-fingers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Jorge Juliá <jjulia@gmail.com>

commit 038087940b764abc4ffc69eafff6b5b2de1ec9af
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 31 11:25:09 2010 +1000

    ISDV4: rework WACf id matching to be more generic.
    
    Preparation work to match other vendors as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Jorge Juliá <jjulia@gmail.com>

commit 602c64950c11138b76a3c9b5d1bb14f64a3525ba
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 27 13:42:04 2010 +1000

    Remove unused prop_screen_area property.
    
    prop_screen is the one used for the screen area configuration.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e74d5977127641d4406a9d6f6a8b80feabf4c826
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 27 11:04:44 2010 +1000

    xsetwacom: merge TVResolution into a single command
    
    Instead of TVResolution0 and TVResolution1, merge them into a single 4-value
    command. This saves us from guesswork in xsetwacom where we have to figure
    out what the remaining coordinates may be.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 7ed7906ee51b17cc26e49d34321d77ba96f149dc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 27 10:45:59 2010 +1000

    xsetwacom: set the TVResolution property to some sane values.
    
    When TwinView is changed, init the TVResolution property to some sane
    values. The user can always change them afterwards.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Przemo Firszt <przemo@firszt.eu>

commit 642d2d6dec01ba7b57a10c953368dfb0ffe02596
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 27 13:23:32 2010 +1000

    xsetwacom: fix property offset for TVResolution1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0cfee57dccaf7e32804341ac87669c78fd3d47f8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 25 15:21:04 2010 +1000

    xsetwacom: add parsing for prop_nextra items in property.
    
    Automatic handling of properties that take several items, eg. TVResolution0
    and TVResolution1.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6eb3084ba5df9c29ec75d58ab328a505b700a021
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 25 14:55:48 2010 +1000

    Remove superfluous checks for TVResolution property values.
    
    A CARD32 is unsigned and cannot be less than 0. Remove the checks and move
    the one leftover check down to the switch statement.

commit d542c1015ab58cc49b933c6b96b9792c85ae308a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 25 14:54:23 2010 +1000

    Fix up value check for TVResolution property.
    
    The properties cannot match up in height _and_ width, only one of the two.
    Which one depends on the TwinView settings.
    
    We also require that at least one resolution matches the screen resolution
    and that neither of the values is larger than the screen resolution for the
    given dimension.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c606980e2a6d65f26d03d3baa26bfbf47a174da7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 18 13:13:51 2010 +1000

    xsetwacom: support aboveof, belowof, leftof, rightof in xsetwacom TwinView.
    
    I don't actually know what this is really supposed to do in the end, the
    driver does the same thing irrespective of whether leftof or rightof is
    specified.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Przemo Firszt <przemo@firszt.eu>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 4307dc3522ce6948cf943d4c5b51d4714a630216
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 18 13:11:18 2010 +1000

    Update a comment in the light of the driver sending keycodes now.
    
    The property values now refer to keycodes, not keysyms.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 71a16329df21bf8451eabb090f2785061cbe2573
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 18 12:51:14 2010 +1000

    xsetwacom: fix up error message for TwinView setting.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 50ac409a986237f5ed1975a9a7ff51cf92143e57
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 17 16:07:03 2010 +1000

    xsetwacom: add super and hyper to modifiers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Revieved-by: Przemo Firszt <przemo@firszt.eu>

commit 239822f9f4973dc2b3a51fd8af74bfda0349dece
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 9 15:19:19 2010 +1000

    xsetwacom: add "MapToOutput" parameters.
    
    Provides a new xsetwacom parameter to restrict the tablet to a given RandR
    1.2 output. The output has to be active. The command
    
      xsetwacom set <device name> "MapToOutput" VGA1
    
    maps the coordinates of the tablet to the given output. This is a once-off
    effect only. xsetwacom does not track the output for reconfiguration. If the
    output is reconfigured, re-running the command will re-configure the tablet
    with the new configuration. A list of outputs can be obtained with e.g.
    xrandr.
    
    If used together with rotation, the tablet must be rotated before being
    mapped to the output.
    
    Requires the "Coordinate Transformation Matrix" property to be present and
    handled by the X server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ba77b532e6c2a0b7b05ab129009c1f614b089c37
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 9 12:14:00 2010 +1000

    xsetwacom: always update the parent property for wheel/strip actions.
    
    With the new support for wheel actions, the actual action would be delayed
    by one invocation, i.e. any action would always reflect the last xsetwacom
    command, not the current one.
    
    Caused by the driver now calls XIGetProperty() during the update but the
    property hasn't actually set the value yet. Hack around this by always
    updating the parent property, triggering a reload of all actions.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e3e122be074df52ce62ed7146410979c5eb03734
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 9 11:38:17 2010 +1000

    Remove unused skeys2 field.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0ff60c02ed5e3e0b16cc3b214e6d81890cc706f7
Merge: 9f5a39c5 3299bf3b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 9 10:39:04 2010 +1000

    Merge branch 'wheel-keys'

commit 9f5a39c56d0bb7b4372cdf965f83c6b245b0c1ca
Author: David Foley <favux.is@gmail.com>
Date:   Sat Aug 7 13:02:10 2010 -0500

    xsetwacom: add Tab key to special keys
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fdc825b8ca6f4e60d964ac567edcbadf13e5e4a4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 6 16:12:25 2010 +1000

    Add a FIXME about the fixed value of naxes.
    
    naxes is always 6 and parts of the code rely on this. Making it less is
    probably alright, more will definitely make the driver do misc things.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 3299bf3b4bde4f605a7ac6e9c632e4b4149af0e4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 6 13:55:54 2010 +1000

    De-duplicate wheel/strip action assignment code.
    
    Use a temporary struct to assign the pointers we need to set based on the
    property and pass that one around. Removes the need for two virtually
    identical functions.
    
    Should probably be fixed with better refacturing, but for now it does the
    job.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1a0ab20624038869b95b0017f71cc5e50507af69
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 6 13:45:31 2010 +1000

    Use ARRAY_SIZE instead of the maxbutton define.

commit eea34fadf7d04eda413b8632503ed0967a111241
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 11:13:45 2010 +1000

    xsetwacom: support action mappings for wheels.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b987cb048c8a15488e7e075f9175704efab10e08
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 4 16:20:01 2010 +1000

    xsetwacom: split button property handling from actual property setting.
    
    Preparation work for wheel/strip button/key event parsing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0827722beb04cb6a073670edd579808f2105c573
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 4 16:07:23 2010 +1000

    Support actions for wheels and strips.
    
    This patch adds key support to wheel and strip events, allowing for e.g.
    xsetwacom set <device> AbsWDn "key a b c"
    
    Requires an update for wheel/strip properties to allow for either 8 or 32
    bit values. 8 bits aren't enough to hold messages of type AC_. Allow for
    either 8 bit integers (normal button assignment) or 32 bit Atoms modeled
    after the same principle as button events.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c47165dcbd9669c3330b37fad9d2b22f57eddc0d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 14:03:27 2010 +1000

    Return the key array from getWheelButton().
    
    Instead of just the button, also return a pointer to the array containing
    the actions for wheel and strip events. Then use this array to send action
    events if required. Note that clients cannot set those arrays yet, this
    commit provides no user-visible functionality.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 889f300f534148adb75844ceb35648145d3edcfb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 10:20:30 2010 +1000

    Reshuffle struct for wheel/strip key actions.
    
    No-one is currently reading these values, this commit is a noop.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 37307256f3df51bdce3f8ab767a7d730a268cf9f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 13:04:54 2010 +1000

    Move property sanity check up.
    
    No real changes, just work to integrate wheel/strip action properties later.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9591a62b5ea395836fa8ba9943b0284edfc5a151
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 12:26:13 2010 +1000

    Rename mask to "press" in sendAction.
    
    It's not actually used as a mask here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 624c1f4b40e54933fc6fadfd59a01974a48ff6b7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 12:16:32 2010 +1000

    Split sendAButton button action processing into sendAction.
    
    Signed-off-by:  Peter Hutterer <peter.hutterer@who-t.net>

commit e28ace8578c6749255ca2f06b632884ba3ed9238
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 10:42:11 2010 +1000

    Split button action property setting into a separate function.
    
    wcmUpdateButtonKeyActions updates the device's key actions from the given
    property. Work needed for wheel/strip action property support.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit df41ad586a3fb464c58c6b0d09423d12a5b0e5e9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 10:31:23 2010 +1000

    Split action property updating into a separate function.
    
    Modularization work for wheel/strip action property support.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit eda27ecc1aba9bdbed11409b07225c69402cfa25
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 10:17:09 2010 +1000

    Split property sanity checking into a separate function.
    
    More modularization work for wheel/strip action properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 52c63720929e1cae2a74478823abb436a21bb559
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 10:13:19 2010 +1000

    Split action property lookup into a separate function.
    
    More modularization work for wheel/strip action properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15a7eecc06072f1c4364c72874695e6d636f4553
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 09:43:46 2010 +1000

    Split action property checking into a separate function.
    
    No functional changes, just modularization work.
    Prepration for wheel/strip action properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 04f76b16dd6b34c2f9edb60df236c940fb7b5cda
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 5 10:04:55 2010 +1000

    Exit early if the the btnaction wasn't found.
    
    No functional changing, just reduces one shift level by changing code that's.
    
    if (foo) {
       do stuff
    }
    
    to
    if (!foo)
       return
    do stuff
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit aa93e8c6352779b23cb91b4cfbf36fe6b361b018
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 2 12:40:49 2010 +1000

    Rename LocalDevicePtr local to InputInfoPtr pInfo.
    
    The LocalDevicePtr is removed with the upcoming input ABI 12. InputInfoPtr
    has been around for several years so we don't need to safeguard here.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Przemo Firszt <przemo@firszt.eu>
    Tested-by: Thomas Spura <tomspur@fedoraproject.org>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 9a51dd110c72726a5b78265011cb610e7d526074
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 2 13:08:08 2010 +1000

    Remove usage of COREEVENT_FLAG - it's write-only.
    
    No-one seems to care if this is set or not.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 74645df081575eaff7e2ce2c8325df9d47261dfb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 2 12:40:24 2010 +1000

    Remove usage of XI86_CORE_POINTER and XI86_POINTER_CAPABLE..
    
    This flag has been write-only since server 1.4.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f14e8a710c17b1c15412911bf910e0d318609225
Author: Rafi Rubin <rafi@ugcs.caltech.edu>
Date:   Wed Jul 28 20:04:10 2010 -0400

    Add ntrig vendor and device codes.
    
    Signed-off-by: Rafi Rubin <rafi@ugcs.caltech.edu>
    Tested-by: Thomas Spura <spurath@students.uni-mainz.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a101e07e1c94940b37244bdeccde4673d563d31
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jul 27 21:07:46 2010 -0700

    Use wcmUSBData to access USB-specific information
    
    We defined it. Let's use it.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 56a2eaeed466145b0f39eb80e7237638bbc8b940
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jul 27 21:03:57 2010 -0700

    Reset wcmLastToolSerial when tool is leaving
    
    wcmLastToolSerial should not be reset by every event. It is valid
    for the whole life of a tool when it is in-prox.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 92fa84ea9563716d5d3e0a12432416bcb2d62c4f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 28 09:55:44 2010 +1000

    Add a release script for xf86-input-wacom
    
    This is a modified copy of the release.sh script from X.Org's util/modular
    repository.
    
    http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ed7332094f56b30f1eb3fef4fc50089476b9801f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Jul 26 23:40:25 2010 -0700

    Purge serial number as an input for usbChooseChannel
    
    Serial number is stored as wcmLastToolSerial in common. No need to
    explicitly introduce it to usbChooseChannel as an input.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cbcd2af677e339de5d925b64b062363ed3aa74e4
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Mon Jul 19 05:43:51 2010 +0200

    Use IsStylus template
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 56d258a8fd70f386d3ff285ae69f10ad4ce7657c
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Mon Jul 19 05:31:08 2010 +0200

    Eliminate TPCButtonDefault
    
    The code to set TPCButton in wcmUSB.c should be redundant, as it is
    already handled by wcmParseOptions. In that case, we can eliminate the
    TPCButtonDefault member completely.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7c24037457076446aff7e51c94a52b50d2594238
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Tue Jul 20 01:19:16 2010 +0200

    Fix CintiqV5 type
    
    The LCD type was overwritten later, in what appears to be an obvious
    bug.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ccea1e7be7daa42464d1aa140fde068ce797a8b0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 26 14:39:29 2010 +1000

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

commit d45d6dbaefe03b466a9a631f400d8e252efbb754
Merge: bcc477d0 03a1f3cc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 26 14:33:09 2010 +1000

    Merge branch '19200-issues'

commit 03a1f3ccce1abe592665b5dab52a7a6193c035b7
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Sat Jul 24 03:06:01 2010 +0200

    Create a new function wcmFree to free wacom data
    
    Fix a segfault in wcmPreInit introduced by the previous commit.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a1b00d8f73c496ee724bc8509047082e055988f
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Sat Jul 24 02:26:24 2010 +0200

    Do duplicate device detection before wcmOpen
    
    Opening the device using xf86OpenSerial would reset the baudrate,
    so don't do it if we're going to reject the device anyway.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 87f93ada66dcd4e0930927afb50b010436c9c560
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Mon Jul 26 02:53:52 2010 +0200

    Disallow sending more than one QUERY to the device
    
    This was broken by c771159. Restore the old behavior by introducing
    a second variable.
    
    This unbreaks multiple devices in a non-hotplugging config.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0419aee87127fe7269f5d23af482e99a83c8a50f
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Wed Jul 21 20:47:44 2010 +0200

    Create a single exit path in isdv4GetRanges
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bcc477d08b93b59e93c32940a721ecedfad4cfb6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 22 14:49:00 2010 +1000

    Gesture: send ctrl + scroll wheel events instead of +/-.
    
    The number of apps supporting scroll wheel zoom events is higher than the
    ones supporting ctrl +/-. And the ctrl key can be assumed on the same key
    for most keyboards, leaving us with a more stable zoom gesture than the
    previous approach of hardcoding the position of +/-.
    
    Suggested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8b2d4ea4718f4cd8750e44cbd4258e936daaeab0
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Mon Jul 19 06:07:49 2010 +0200

    Swap stylus buttons 2 and 3 for Tablet PCs
    
    There are only a few TPC pens with 2 buttons, and arguably right-click
    is more useful than middle-click.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ef4d20f98e53d181dcdec4cab34dbf391e919586
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 15 11:04:53 2010 +1000

    Don't load keysyms into the driver, use keycodes instead.
    
    This addresses a hang in the driver when buttons are configured to send
    keystrokes. The current code calls XkbGetCoreMap() which allocates during
    the signal handler, causing server hangs.
    
    This patch changes the driver to use keycodes instead of keysyms. There are
    a number of reasons for this:
    - XkbCoreMap() only hands us a core keymap, not the XKB one that everyone
      uses these days. There are some differences between the core and the XKB
      map (mainly the use of modifiers), hence we should be focusing on the XKB
      map anyway.
    - Parsing the XKB map manually in the driver is complicated and not
      something we want to do, especially when trying to maintain ABI compat
      with multiple X server versions. On the other hand, the client-side API
      for XKB is frozen like all of Xlib.
    - The driver is not notified of XKB layout changes, thus a cached map would
      potentially be out of date. Moving keysym to keycode conversion to the
      client avoids this.
    - The server does not communicate through keysyms to any client, keycodes
      are the only information. It is up to the client to pick the keysym (and
      glyph) based on the keycode.
    
    Note that this changes the property API. Clients that would write straight
    to a button mapping property will need to change. AFAICT, only xsetwacom
    does this at this point and xsetwacom is updated with this patch.
    
    Note that the current xsetwacom implementation will only focus on level 0
    keys. It will not automatically fill in the modifier states. Thus, to get
    e.g. a string of "aBc", the following configuration is required:
        xsetwacom set "device" "Button1" "key a +shift B -shift c"
    
    xsetwacom releases modifiers at the end of the configuration, thus to get a
    single uppercase letter (or multiple letters), the following is enough:
        xsetwacom set "device" "Button1" "key shift A"
    
    Note: this breaks Ctrl+/- zoom support for keyboard layouts that have +/- on
    a different key than the 'us' keyboard layout. Did I mention that hacking up
    gestures in the driver is a bad idea?
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0b6096ec3b536bba240539c1a6b3f4cd11ba459c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 10:04:25 2010 +1000

    xsetwacom: implement "--list mod" to list specialkeys and modifiers.
    
    Not exactly the same output as the old xsetwacom but it's close enough.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit fa5669719e0fc2a7754015f42a23237dd611d4a9
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Tue Jul 20 01:23:35 2010 +0200

    Make 19200 the default baud rate for 0x90 TPCs
    
    This implements using 19200 as a default baudrate for some tablets
    instead of always using 38400.
    
    The baudrate switching logic in isdv4GetRanges is extended to be able
    to switch to 38400 as well. It also now outputs a warning.
    
    My WACf004 needs a baudrate of 19200, and is included in the 0x90
    tablet_id. This seemed like the easiest way, but I'm unsure whether
    all 0x90 tablets use 19200.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 864ca6138b46e0db8798cf9f562cfe31db6a6d7d
Author: Jan Steffens <jan.steffens@gmail.com>
Date:   Wed Jul 21 03:28:19 2010 +0200

    Make sure the baudrate is properly set
    
    If the BaudRate option isn't set, X will use the default, which issues2
    9600. Make sure we properly set this option.
    
    Also make sure the it is set properly before we try to query the tablet.
    
    Signed-off-by: Jan Steffens <jan.steffens@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8c13a91089b35f3ec7d36ce5f6bef0928ff2e8be
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Jul 17 21:31:06 2010 -0700

    Normalize Airbrush absolute wheel to ArtPen rotation
    
    So they can share the sixth valuator.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6c5a0d71e23c925b2cc0af75e08c8049f6ea7c3f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 10:11:38 2010 +1000

    debugger: don't send trace messages to stderr.
    
    Send them to stdout instead, they're already prefixed with ... for grepping
    anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 20daf76d154cc8fb9e095c97824a747e9cb80324
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 20 10:11:26 2010 +1000

    ISDV4: use case range statements instead of nested ifs.
    
    Just to make it a bit easier to read on a glance.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit eb8d83f63f255f27c7116ac3d57e986501bd482d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 15:50:02 2010 +1000

    ISDV4: if the BaudRate was autodetected to 19200, replace it in the options.
    
    xf86OpenSerial() uses the BaudRate option to set the serial port. If the
    baud rate was autodetected to 19200, replace this so that the next DEVICE_ON
    call will use the right one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit de7c2ee2d5411c7394a38d13dea274e6b04e51a0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 15:44:45 2010 +1000

    ISDV4: don't overwrite the baud setting for 19200 tablets.
    
    This patch changes isdv4Query to just execute the query passed in and do
    some additional sanity checking. If it fails, return the failure to the
    caller isdv4GetRanges().
    
    isdv4GetRanges() can then change the baud rate and re-query if required. If
    the query at 19200 succeeds, skip the touch query. All touch devices have
    38400.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 764ea40f32827f27112ffa44ca42ab592398faae
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 15:44:06 2010 +1000

    ISDV4: document the init process.
    
    List which order the functions are called in to avoid having to re-read the
    code every single time I look at this...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 49fc694e0d2db4d5ef8d26def9d07c497e1bfb9c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Jul 17 21:31:06 2010 -0700

    Normalize Airbrush absolute wheel to ArtPen rotation
    
    So they can share the sixth valuator.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0c4e029a99292c93db984dd07e604af7b26c881f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 10:11:38 2010 +1000

    debugger: don't send trace messages to stderr.
    
    Send them to stdout instead, they're already prefixed with ... for grepping
    anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 999da490cb43f0606a9142f6c97916c8ec088db3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 19 10:00:02 2010 +1000

    xsetwacom: implement "--list mod" to list specialkeys and modifiers.
    
    Not exactly the same output as the old xsetwacom but it's close enough.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6d0b11e16c32c0b7704dbf673d6566b4522be58a
Author: Rumen Zarev <rzarev@math.columbia.edu>
Date:   Sat Jul 3 19:35:56 2010 -0400

    Fix pressure curve size in "xf86WacomDefs.h".
    
    Since the possible levels are 0 to MAX, need to allocate MAX+1 entries.
    Otherwise, when the pressure is at maximum, it reads as some random value
    (one of the control points in this case).
    
    Signed-off-by: Rumen Zarev <rzarev@math.columbia.edu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f1dd625e00c182ec1b6a92b277214d1b8f88986
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 16 14:27:20 2010 +1000

    configure: use XORG_DRIVER_CHECK_EXT after xorg-server has been found.
    
    Reported by Pablo Castellano, patch modified for current tree. From the
    tracker:
    "It was crashing like this if xserver-xorg-dev wasn't found:
    ./configure: line 11635: syntax error near unexpected token `XINPUT,'
    ./configure: line 11635: `XORG_DRIVER_CHECK_EXT(XINPUT, inputproto)'
    
    Now it's shown a message saying that the dependency is not found,
    which is more intuitive."
    
    https://sourceforge.net/tracker/?func=detail&aid=2960774&group_id=69596&atid=525126
    
    Reported-by: Pablo Castellano <pablog.ubuntu@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fc649a2f7c5ee774974481d9c4ea46460f7a402f
Merge: 00f56eda ef45111b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 14 13:01:10 2010 +1000

    Merge branch 'serial-debugger'

commit ef45111bb2e2cdcfce63172b66fdc20962cfde84
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 13 10:21:38 2010 +1000

    ISDV4: don't set the tablet_id in isdv4InitISDV4.
    
    Since the new init process, the tablet ID is set during isdv4ProbeKeys().
    Hardcoding a tablet_id of 0x90 here overwrites the previously set value.
    Since the tablet_id is used for determining if a device has two-finger touch
    and other features, this loses the ability to perform gestures.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 00f56eda2c1eca5cfd9aafd5e0483c19c58d8d42
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 12 15:03:12 2010 +1000

    xsetwacom: allow for numeric Rotation value.
    
    Allow for values 0, 1, 2, 3 as rotation setting in addition to NONE, CW, CCW
    and HALF.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 7131fed2580843ea423f406a62282de25e0e2571
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 12 18:41:19 2010 +1000

    Open the device as serial device in PreInit.
    
    A simple open(2) call works fine for USB devices but for serial devices
    the right port parameters need to be set. By luck, sometimes these may
    be correct and the device works, other times it won't, leading to
    unpredictable serial tablet behaviour.
    
    wcmOpen() already does this for us correctly with xf86OpenSerial().
    Re-use it to get the right port parameters. xf86OpenSerial() ignores
    serial parameters for non-serial devices, thus it is safe to use on USB
    devices as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 364d37fd6ed22bd76af8714bcd034ef6a1e08594
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 9 23:01:06 2010 +1000

    ISDV4: after stopping the tablet, discard any data still on the line.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 3546d8ab1bf8e2a22e285c377df9a363a79b78b0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 6 22:52:11 2010 +1000

    tools: add isdv4-serial-debugger test program.
    
    Simple program to debug the serial output and analyse the behaviour a
    client needs to have to get data off a serial device.
    Run with
      $> isdv4-serial-debugger /dev/ttyS0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit a09bee1d307bf1f91fb637dbd4ee68d801f1cda7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 12 17:26:14 2010 +1000

    ISDV4: move isdv4 parsing header to the include/ folder.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 6babd5be57adf4f03d870d5bac96ea4397848274
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 9 19:28:28 2010 +1000

    ISDV4: make all parser functions take an unsigned char*.
    
    This currently requires casts in the callers but they can be fixed up
    eventually.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit d2d02d60cb605004e14f53b35864e5d9833b3f29
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 9 19:13:23 2010 +1000

    ISDV4: memdump the data array in case of an error.
    
    Aids debugging.
    The DBG macro isn't suited for this kind of printing, so we need to do
    it manually.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 75a08052db2afa16550b9c8e65f70d1385f6ebdc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 9 18:51:45 2010 +1000

    ISDV4: print debug messages for query parsing errors.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 3587a8bac50aaf2c317288be5704cccc53916aad
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 7 23:12:18 2010 +1000

    ISDV4: externalise ID to packet length mapping.
    
    For touch devices, the serial ID corresponds to a packet length. Add
    that to a lookup table (and since the ID's are sequential, just use an
    array).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 5d1a904ca41a69df60c6ea9b47c72e406787cb6c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 6 22:55:38 2010 +1000

    ISDV4: move ISDV4 parse functions into a separate file.
    
    Make them available for other in-tree tools to.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit e2fcc4440f3d3f5636b33dd005ccaf9358eaa4f2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 12 17:15:18 2010 +1000

    ISDV4: add RESET command.
    
    We don't use it in the driver, but it's there nonetheless.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit ae95888fa9220e0c88e6089065259ea9b783c914
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 6 22:03:20 2010 +1000

    ISDV4: move ISDV4 control commands to header file.
    
    They can be used by the soon-to-come auxiliary program.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit c771159c0bb7c478434745a414ff8cc7c34bcc47
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 2 17:00:20 2010 +1000

    ISDV4: don't start the tablet until the last device is enabled.
    
    Only send one SAMPLING command to the tablet for the last device. If
    sampling is started before the last device was enabled, that device may not
    work.
    
    This is a quickfix, there is bound to be a better way to solve this but
    meanwhile we might as well try to make the tablet work again.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit da95e23c1b0fc548992d49f3da410718ecd0900f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jul 2 16:44:46 2010 +1000

    ISDV4: Calloc, not malloc the private data.
    
    This could explain inconsistent behaviour, intialized was accessed
    uninitialized (oh, the irony!).
    
    For good effort, calloc _and_ initialize "initialized". Two zeros are more
    than one, after all.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit 09f37e253b889ad4a2f0adb690f6323c8a5db24d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 12 11:02:25 2010 +1000

    Squash compiler warning "unused variable priv".
    
    priv is only used if DEBUG is enabled.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6d5a4bea3319901ab872550ddfd703d601b873e9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 5 14:27:36 2010 +1000

    xsetwacom: fix button mapping for button clicks.
    
    Misplaced scanf caused button mappings to always be 0 if no + or - was
    specified or the button number was < 10.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8d10fa406c5c98e3c34f29a2043cfc3de7b0aa42
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Jul 4 09:46:51 2010 -0400

    config: check for an xserver >= 1.7.0
    
    The support statement is for server versions 1.7 and above.
    Builders save time when a problem is detected early.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2acb91f0292ac07cf1c89d7264a1f02b618a4b70
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Thu Jul 1 20:54:23 2010 -0400

    config: add comment regarding MAN_SUBSTS variable usage
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e7bbe77a021a379756957fdb8d722092826e365e
Merge: b97a6702 ef82a62b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 24 15:21:43 2010 +1000

    Merge branch 'serial-rework' of git://people.freedesktop.org/~whot/xf86-input-wacom
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit b97a670276ac4d2675af1c5b90abcd8809b1817a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 12:54:46 2010 +1000

    Debug message format - remove line break.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 23698917748419185217cf891b6aef03dedab093
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 24 13:55:20 2010 +1000

    Fix build error against current master - ScreenRec has changed.
    
    dixScreenOrigins was removed in xserver commit
    commit a83cff9f4d622b069c96a68b4e87a669bf1f6446
    Author:     Jamey Sharp <jamey@minilop.net>
    AuthorDate: Sun May 23 10:11:47 2010 -0700
    
        Move each screen's x/y origin into ScreenRec.
    
    the x/y fields were moved into the ScreenRec. The ABI  wasn't bumped (thanks
    guys, ...) , so we have to resort to this ifdef check. This leaves us with
    unbisectable state between a83cff9f and 1.8.99.901 (83 commits) where the
    patch has to be manually applied. Sorry.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ef82a62b771a0465afcec65cba156b38cc3539bc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 12:06:15 2010 +1000

    Move ProbeKeys() into the respective backends.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5664bc804f65fb06afcc26da8887211e136ec81a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 12:03:24 2010 +1000

    Move device class detection up.
    
    This is one of the first things we need to know about our device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fa4462582418582fcfaae758db723b98a4965fc0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 11:54:24 2010 +1000

    Return the shared common struct from wcmMatchDevice.
    
    This reduces the need for variable juggling in the caller and the caller
    knowing about what happens in wcmMatchDevice().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 34a0af1f085a99300a944716eb17552bccf9095a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 11:48:16 2010 +1000

    Avoid "common" juggling to prevent future errors.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d8154ed5711d8df109abbc2c281cf81d1b032fda
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 11:45:01 2010 +1000

    Remove superflouous linebreak in DBG message.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 95c5777f87db35ad0191af9139e3a1daca7eb0d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 11:40:34 2010 +1000

    Remove wcmAutoProbeDevice - it's not doing anything anyway.
    
    Call wcmEventAutoDevProbe() directly. The latter returns the path to the
    device file and we can use that
    
    At the time wcmAutoProbeDevice is called, the common pointer is the generic
    one allocated during wcmAllocate. Hence, there's no way it can compare
    itself with any of the other devices anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4131383c9ca618c3a25592dea6bff97de43f11df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 11:36:48 2010 +1000

    Remove AUTODEV_FLAG - was only set, not read.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 19e0951239f9a24c60469bf1bf7f872358bd4e78
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 21 16:19:02 2010 +1000

    Only execute GetRanges() once for ISDV4 devices.
    
    ISDV4 tablets don't seem to like multiple query commands in a row, the reply
    for those are garbage. Hence, put a barrier in to prevent this. Since the
    isdv4data is shared between all devices off the same port, this simply skips
    the work of the isdv4GetRanges() and returns early with success.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cc4aa77eddbbe02ab7c9263dfd75ecf45f89fb96
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 16:06:47 2010 +1000

    Move baud rate into ISDV4-specific backend.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 69d53ac51115af9f34a48451e13b717e48c06079
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 15:40:20 2010 +1000

    Move class-specific option parsing into the device classes.
    
    This is only the BaudRate for ISDV4 devices but nonetheless, it's nicer
    abstracted this way.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3ecabe9bd95b666fdd2a913ef1623751263e221d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 15:32:37 2010 +1000

    Purge ForceDevice option - unneeded.
    
    We're smart enough to detect if the device is running off a serial port or
    off a USB port. The only thing we did with the ForceDevice option was to set
    it once (based on a serial ioctl) and then check for it later during the
    BaudRate xorg.conf option parsing.
    
    Get rid of the field, parse the BaudRate for all devices even though we
    don't actually care about it in the USB code. So setting an invalid baud
    rate for a USB device will fail the device init but then again - don't do
    that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit aa382e6c8818e97538b2dad5d9b121a9cb533ed7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 15:22:50 2010 +1000

    Factor out device class detection.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4e363076599b038ad032805f2a3023dd9f46826b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 15:16:28 2010 +1000

    Remove serial class detection into the serial code.
    
    Both ISDV4 and USB have their model class with a Detect() function. Use it,
    instead of having parts of the serial code in wcmConfig.c.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b5c27a694278641a0507e8d8cf883f02bdf69a49
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 17:00:42 2010 +1000

    Split model probing, DEVICE_INIT and DEVICE_OPEN into separate functions.
    
    Probe for the model during PreInit and get the important bits off the device
    here.
    During DEVICE_INIT, just register the X server bits required for the device
    to be a device.
    DEVICE_OPEN actually opens the device, but by then we already know
    everything about it anyway.
    
    A large hunk of this patch is just whitespace change due to a indentation
    level change in wcmRegisterX11Devices.
    
    This also removes the need for wcmDevOpenCount and wcmInitKeyClassCount.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d3e71615529aaa843b8005ab3b04fdf425a26f64
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 16:47:02 2010 +1000

    Move the EVIOCGRAB to the model-specific Start().
    
    Don't grab until the device is being enabled. This is a preparation work for
    the DEVICE_INIT, DEVICE_ON split.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit abd3dc68c8d4008b80eb1f71aa9af8275c17a3d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 21 14:57:12 2010 +1000

    Implement basic refcounting for the common struct.
    
    Introduce three new functions to create a new common struct and add/remove
    references to it. This fixes the occasional ABORT caused by double-freeing
    the common struct.
    
    A better approach for this may be talloc(3), but for now this will do.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15abfc592377ad444edfae6f4ddd90f0fa7ecafc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 16:16:29 2010 +1000

    Remove superfluous fd check.
    
    wcmOpen() has no path where it can return Success and the fd is -1.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b49bd935c0be4cb0e4b5976093eabf6c5b77bdef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 16:15:06 2010 +1000

    Don't auto-probe the device on DEVICE_OPEN.
    
    Autoprobing happens during PreInit already, probing again during DEVICE_OPEN
    (when the device is enabled) is superfluous. If you need this for
    hotplugging, use hotplugging instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ee7b2142d83d02b0c3d99748957e9be3bf44f409
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 16:00:17 2010 +1000

    usb: plug memory leak - backend storage only needs allocation once.
    
    usbWcmInit is called for each tool, only allocate the event data store once.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fc9b60c6926f887a5b341927e70502addabcb126
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 17 16:36:13 2010 +1000

    Remove stray misplaced comment.
    
    Looks a bit lost there, let's send it home to papa.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 14c4f5044e0e49bbce39796e255045c35ac816a0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 08:14:34 2010 +1000

    Rename common->wcmDevice to common->device_path.
    
    common->wcmDevice stores the device path.
    common->wcmDevices stores the WacomDevicePtrs.
    
    This is slightly confusing in the code, rename wcmDevice to point
    "device_path" instead. That's slightly less ambiguous.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d284a2a884ff44ab49819215d0b163ed09481667
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 08:04:53 2010 +1000

    Reassign common after wcmMatchDevice().
    
    wcmMatchDevice() may modify "common" if it finds another tablet hanging off
    the same port. If that's the case, "common" is freed and points to an
    invalid area. Move this assignment down to after wcmMatchDevice().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e11332120daa1e04be5b5321cbdf4bac7fbdde1c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 22 10:02:16 2010 +1000

    Add some vim tags to the header file.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3770aaf4a4b91454e9c6894e240583dace2afbbc
Author: David Foley <favux.is@gmail.com>
Date:   Mon Jun 21 11:07:11 2010 -0500

    xsetwacom.c: Add BackSpace key to special keys
    
    Signed-off-by: David Foley <favux.is@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 92c8ce2c9baf0a138ca563acc068d6e07a44878f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 21 16:49:17 2010 +1000

    Add missing linebreak in error message.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 75868adf0e83318a13ff2924c338c02bfe6730a0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 21 14:40:08 2010 +1000

    Use Xprintf instead of malloc + strcpy.
    
    Xprintf() is the X server's version of asprintf(3) - the latter isn't
    available on all platforms. We could in theory use asprintf but given that
    there are patches for solaris floating around we might as well not prevent
    those.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 9e15b6273b1d836bacf136d0335cda3c9c5f84b1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 18 16:18:48 2010 +1000

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

commit ef091d0d88df268e387f0bf59590d7c8fc8cc875
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 18 10:04:54 2010 +1000

    Always initialize pressure curve.
    
    Since we always allocate the pressure curve now, make sure it's filled with
    reasonable values if the config doesn't specify otherwise. The default is
    the linear pressure curve.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 94843eb2db5a066f27923ebfeb21646310cf3beb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 18 07:59:11 2010 +1000

    Revert "Silence compiler warning if DEBUG is off."
    
    priv is used again without DEBUG since 55ef4e1ad841dda08161009.
    "Revert "Don't pass the axes around to sendCommon() and friends."
    
    This fixes the following build error with --disable-debug:
    wcmCommon.c: In function ‘sendWheelStripEvents’:
    wcmCommon.c:671: error: ‘priv’ undeclared (first use in this function)
    wcmCommon.c:671: error: (Each undeclared identifier is reported only once
    wcmCommon.c:671: error: for each function it appears in.)
    
    This reverts commit 8f69888a353e75a41abc90e85fba61805b9b97bd.
    
    Conflicts:
    
            src/wcmCommon.c
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 119fda6af71707495a79d566bce78851ec16a95d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 15:30:48 2010 +1000

    Always test if pad proximity events needs to be sent.
    
    Both USB and ISDV4 backends fill in ds->proximity. Hence, if it's set and we
    don't have a previous proximity event, send ProximityIn. Likewise, send
    ProximityOut on the opposite case.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 485b5b6904ca55ab059edd94054b4737bdbbda6e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 15:04:21 2010 +1000

    Don't check for dev->proximity, it's always set.
    
    Judging by wcmRegisterX11Devices, we always register a proximity class and
    fail if that fails.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit d446c321e11e5c8984fa94719201aab5f10577e1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 14:51:37 2010 +1000

    Don't mangle proximity state for the pad.
    
    When the pad is relative (i.e. always, since we force it to), the first
    value from the abswheel is stored in priv->oldWheel and then subtracted from
    the current state - leading to a v5 of 0. That again leads to a dead wheel,
    since we never get any values but 0 from the wheel.
    The pad provides proximity values anyway, so don't hack around it
    - accept what the hardware says.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 55ef4e1ad841dda08161009c7466afbfd2cd6cf6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 10 16:27:47 2010 +1000

    Revert "Don't pass the axes around to sendCommon() and friends."
    
    This patch (the one reverted hereby) had an interesting side-effect.
    Since the valuators were passed down to the button event, they were included
    in the XI events. Thus any client listening to button events would also
    obtain the current coordinates with that event. Once the valuators weren't
    passed down anymore, there was no way for clients to get the current state
    of the valuators with the event itself, they'd have to listen to motion
    events and interpolate from that the positions during the button event.
    
    Patch reverted, so that button events include the coordinates again.
    
    This reverts commit 579f31c628f0b0036f3c238cc7f32ccfc32adab1.
    
    Conflicts:
    
            src/wcmCommon.c
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f0191b406b879a403dfdb831be2a119128a4b580
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 16 14:47:07 2010 +1000

    commonDispatchDevice: return early if no device was found.
    
    This patch has no functional changes, it simply reduces by one indentation
    level. Instead of
    
        if (pDev) {
           <huge amount of code>
        }
    
        return;
    
    It now does:
    
        if (!pDev)
          return;
    
        <huge amount of code>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f00df659cec57309acc5e6eeafcde2cc09a00f56
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 15:50:19 2010 +1000

    Move numScreen initialization into option parsing.
    
    Let's not hide it somewhere else, parse and set all options and defaults in
    one place.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f1d3c1b1486c99ef64d0a34f354d7f89c3d181c8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 14:57:48 2010 +1000

    xsetwacom: support "displaytoggle" as special button event.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit c07573ae8e975185ae8e904402baeda3b9a2926a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 4 13:25:54 2010 +1000

    Don't reconfigure the axes when switching mode.
    
    Run-time axis configuration is not really allowed. The XI2 protocol permits
    it but it's forbidden for XI1 clients since they have no notification
    mechanisms. And we don't have any server APIs for the XI2 stuff yet.
    
    If a client issues ListInputDevices and the driver reconfigures _after_
    that, the client assumes wrong coordinate ranges, causing possible scaling
    issues. The right way to handle axis reconfiguration is to scale _inside_
    the driver only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit eb07751c929ea458c9512683b8aa890a4c0e4dff
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 11 09:18:59 2010 +1000

    xsetwacom: change storage for getopt_long return value to int.
    
    char is unsigned by default on PPC, so getopt_long's return value of -1 for
    "end of options" isn't interpreted properly and xsetwacom always displays
    the usage() output.
    
    man page for getopt_long says it returns an int anyway, so let's conform to
    the man page.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f69888a353e75a41abc90e85fba61805b9b97bd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 11 12:37:18 2010 +1000

    Silence compiler warning if DEBUG is off.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ec6866c717c5824c7a6be2da2af59305089b9413
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 16:14:56 2010 +1000

    Reshuffle error handling in wcmDevProc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 1f973e3a630165a76b17463a6925c61aaddd5d7b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 16:11:57 2010 +1000

    Update an error message, if the DeviceProc mode is wrong it's not our fault.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit a9e91d5d3e8dad176938449c66351ef141157dd6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 16:00:23 2010 +1000

    Update comment describing wcmDevProc.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ca901f3b3b566c601b07bf7659d708ef02d428c7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 15:51:34 2010 +1000

    Reshuffle and group some code to make it easier to understand at a glance.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f934866ab79570602fae3ebf953b81e3ac15ba86
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 3 16:01:24 2010 +1000

    Remove wcmScaling - it is unused and always 0.
    
    Has been hardcoded to 0 since the fork at least.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 9ae676e4646dc5ec0f3c411c3fe54f9803a28a9a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 3 14:39:30 2010 +1000

    Remove superfluous option setting.
    
    Setting this option after the driver has been initialized has no effect.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit c5a2829459df2d95a60527f1e5af279150a28fd9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 10 09:56:31 2010 +1000

    xsetwacom: support up/down/left/right as special keys.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 522c2ae930ccb046a78cc0c64f73474f283714b4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 16:12:35 2010 +1000

    Remove superfluous break.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f05af0e5a5b8489233df1d43b1485fd8ca484fb3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 16:08:08 2010 +1000

    Purge support for X server 1.5 and earlier.
    
    Driver still supports 1.6, 1.7, 1.8 and the upcoming 1.9. That should be
    enough.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit cceb65940448c0c7c780e2314a369261cd767adb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 9 16:04:56 2010 +1000

    Revert "Don't add the OutOfProximity flag to the axis mode."
    
    This reverts commit 060ad78cf464508f1d123c00b7340838a27f19e3.
    Error on my side, this mistake was caused by a bug in the X server code when
    listing XI2 devices.
    
    According to the XI1 protocol spec, the device mode for a ListInputDevices
    request may only be Relative or Absolute, the mode obtained from a
    QueryDeviceState request may be binary OR'd with OutOfProximity. The server
    uses the same field (dev->valuator->mode) to store this information but
    returns only the LSB from ListInputDevices. The XI2 code missed this part,
    returning the mode field as a whole, thus sometimes causing clients to
    misinterpret the mode field.
    
    Conflicts:
    
            src/xf86Wacom.c
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 8df8899a6b11aa5e85c949a9cb8bb94f8388a8f0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 9 11:44:21 2010 +1000

    Move wheel button initialization into wcmParseOptions.
    
    This isn't strictly correct since it's not an option, but the IsPad() during
    wcmAllocate() doesn't do anything - we only have the required bits set later
    during wcmSetType().
    
    Result was that the pad never had the wheel buttons initialized, leading to
    a broken wheel on Intuos4 series tablets.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 35c5e283d606febfbbfe2270b034e8f5e0827162
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 9 11:05:18 2010 +1000

    Remove two empty lines with whitespaces.
    
    No changes, just a sed -e "s/^ *$//".
    If you're using vim, set c_space_errors=1 in your vimrc to help spot these
    errors.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 83714d87560e70c3fbf3aeb19bf28aae10da79c0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 9 10:47:46 2010 +1000

    Add is_absolute() and set_absolute() utility functions.
    
    And get rid of manual priv->flags handling. Only exception is in the inital
    per-type assignment of the absolute flag, the flag setting is left there so
    the code is more obvious.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 0c2d24d47218368f769355fc49042cbebd40fc57
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 9 10:33:55 2010 +1000

    Remove some superfluous variables.
    
    These ones were always set to whatever the device state (ds) contained.
    Unlike the others (x, y, tx, ty, etc.) they didn't need adjustment on a
    per-type basis.
    
    Drop them to make the code a bit more obvious to read.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 52d95845b0912cc4d72c6abcb99fc4bed82e489e
Merge: fb46bef0 b42bdad2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 10 15:09:02 2010 +1000

    Merge branch 'pingc'

commit b42bdad2a799f573447ea953b3fa416f979cbe57
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jun 8 17:50:59 2010 -0700

    Default touch tools to Absolute mode
    
    Touch tools for all LCD devices, not just Tablet PCs, should be
    in Absolute mode by default
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 96929dbf32d573234d50bfec8c581db8e22e9c88
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jun 8 17:46:17 2010 -0700

    Retrieve device type from the kernel
    
    If a tool is on an USB tablet before the driver is loaded, the driver
    loses the initial state of the tool since kernel input device driver
    filters repeated events. To initialize the tool with the proper
    device type, we call EVIOCGKEY to retrieve it from the kernel.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 6fc592969a14fa6fe442567dce8b4676f3a1564d
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jun 8 16:57:45 2010 -0700

    Add PAD_DEVICE_ID to the device_id switch in commonDispatchDevice
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit d71e81a63bdecd352065654ce885dce777b75619
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jun 8 16:51:17 2010 -0700

    TabletHasFeature is associated with tablet_type not tablet_id
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 6f92c53fab330bd1491dba8d8724cff0ee988508
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Jun 8 16:32:45 2010 -0700

    Free toolarea and common->private
    
    Changed the freeing order to free inner items first;
    Free toolarea that is associated with the priv instead of the
    whole arealist that are of the same type;
    Free private of common before we free common.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit fb46bef0b54211be0a0a58a58dc484c33fe815e2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 7 15:05:17 2010 +1000

    Append first type name to device.
    
    Dependent devices get their type append already ("eraser", "cursor", etc.)
    but the first device is unmodified. For consistency and to allow easier
    match rules, append the type to the first device as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 86a1ff5ede952228d23502cbee1053956ea88d17
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 8 16:55:16 2010 +1000

    Revert "Append first type name to device."
    
    Sorry, merged the wrong patch. This one leads to segfaults or simple hangs
    when a device is removed or on server shutdown. Only the parent device may
    free it's name, the rest must leave them as-is.
    
    This reverts commit d360214713b54faeba954f1d21d51c3747b466f9.
    
    Reported-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d360214713b54faeba954f1d21d51c3747b466f9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 7 15:05:17 2010 +1000

    Append first type name to device.
    
    Dependent devices get their type append already ("eraser", "cursor", etc.)
    but the first device is unmodified. For consistency and to allow easier
    match rules, append the type to the first device as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 034eec8cd606cd38b8774a8f792f8fbebcaa6eff
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sun Jun 6 09:49:12 2010 +0100

    Plug memory leak - some structures were never freed.
    
    "Common" struct is allocated in wcmAllocate, but it was never freed.
    The same comment applies to priv->tool->arealist and priv->tool.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>

commit 282f7a33cd5f36753cbbcb3772fae04b049234a5
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Wed May 19 20:10:11 2010 +0100

    Add backend-specific data allocation
    
    The data allocation takes place in usbWcmInit (for usb devices).
    Release of the data is part of wcmUninit (for all devices).
    Structure wcmUSBData is not used yet, but it's required to allocate memory.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c1567fc48cec0251b61942532c689737c21f5961
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Tue May 18 20:35:53 2010 +0100

    Introduce pointer to backend specific information
    
    This pointer will handle backend specific data that shouldn't be part of
    WacomCommonRec structure (like usb event queue). Pointer will be initialised in
    usbWcmInit/isdv4Init and relased in wcmUninit.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0862aa3d74378abbf9f23289ab864a4d07305d0d
Merge: 370cd8bc 7581a5f6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 3 14:02:37 2010 +1000

    Merge branch 'master' of git://people.freedesktop.org/~gnadon/xf86-input-wacom
    
    Conflicts:
            configure.ac
            man/Makefile.am

commit 370cd8bcce46a091da2479fdb8171b1b58a8616c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 2 13:45:42 2010 +1000

    Drop pressure back into the state after processing.
    
    In the cleanup in 659daa11dc558a45bfad1b9548f1757fab226ad7 "Normalize
    pressure sensitivity", the line to drop the calculated value back into the
    state got lost.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 28149d660f0b4b7f30da9c2fdfe44442bbb075c0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 2 13:19:47 2010 +1000

    Always allocate pressure curve.
    
    There was only one malloc for it and that was hardcoded. Just add it to the
    struct as-is.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit f4e060d450bddb93a9d0f8c3c00c7309db80c880
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 2 12:05:57 2010 +1000

    man: add myself to Authors.
    
    I think I've done enough work on the driver now to justify this ;)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 312e8565b1d9dff4455a5c92aee8a1242c7b0959
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 2 11:48:46 2010 +1000

    man: explain how the pressure curve works.
    
    Including some mini-formatting to get rid of some excessive space.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 48bbc89e7cc4e263a04287fff68ac109a8727910
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 1 16:13:06 2010 +1000

    xsetwacom: support "modetoggle" keyword.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 20715a4a066435b1d785a5b5df50b96c7bc5dcb5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 1 15:40:45 2010 +1000

    xsetwacom: "core" as keyword is not supported, tell users so.
    
    The driver has no say whether a key is to be sent as core event or not, the
    attachment of the device will decide this (since X server 1.7).
    To let users know that their old configurations may not do the same thing,
    print a notice.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit de4a3690c25b822d0bdc54602befa9a09c2af54b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 1 15:31:07 2010 +1000

    xsetwacom: add Escape key to special characters.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 7aea4b8a96b7562cba828b703d70c288eac29938
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 1 15:27:07 2010 +1000

    xsetwacom: remove "not implemented" labels.
    
    We've implemented/kicked out all parameters that weren't implemented.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 7581a5f62697b8a49cff1d534bc2713f33612e7c
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Jun 1 10:21:45 2010 -0400

    config: comment and layout adjustments
    
    Fix warning for AC_HELP_STRING
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 158edda13853dbd977acce55b173756e12ef4377
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Jun 1 17:47:20 2010 -0400

    config: use automake "dir" pattern for simplification
    
    configdir is where the config file is installed
    dist_config_DATA lists the filename
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit c82218973ab7ab47e11d9ae76a9d5e2a246bf420
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Jun 1 17:40:05 2010 -0400

    config: close a loophole where user input means x server has a feature
    
    If a user provides a path in --with-xorg-conf-dir,
    the configuartion assumes the server does have a config path which may
    not be the case.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit a8d9fb1c59ef2e7ce4bbaaab30b43ca3d00e93de
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Jun 1 09:09:02 2010 -0400

    config: remove check for compiler characteristics
    
    Further analysis shows that these checks suggested by Autotools
    are not relevant to the platforms supported by xorg.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 28a45cd759051ad13bfa5e8c9c13e729472f3e20
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon May 31 16:28:05 2010 -0400

    config: wacom driver requires xextproto and kbdproto
    
    These protocols are required to compile the driver.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 0464db90a874af87d299bb2f0a5b17f337913a34
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon May 31 16:22:30 2010 -0400

    config: wacom depends on RANDR through xf86.h
    
    The xf86.h file contains external declarations specific to RANDR
    If this extension is defined (installed) wacom will not compile
    if randrproto is not installed under the same prefix.
    Because this is an optional extension, XORG_DRIVER_CHECK_EXT
    must be used.
    
    move inputproto check to PKG_CHECK_MODULES:
    The XORG_DRIVER_CHECK_EXT macro conditionally adds inputproto
    to PKG_CHECK_MODULES if this extension is defined in xorg-server.h.
    It allows a module to use ifdef XINPUT if the extension is available.
    In the case of inputproto, it is part of server and always defined.
    In this module, the extension is required and not optional.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 0a4c5228ccb65b672ea96d06d6508da66db902f7
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sat May 29 10:24:41 2010 -0400

    config: xsetwacom: specifying -lm is redundant.
    
    It is added in LIBS by AC_CHECK_LIB
    No need for per target LDFLAGS
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 0d000207e80832a66bc5c30089dfec730adb66d6
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri May 28 10:15:50 2010 -0400

    config: remove AC_PROG_CC as it overrides AC_PROG_C_C99
    
    XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls
    AC_PROG_C_C99. This sets gcc with -std=gnu99.
    If AC_PROG_CC macro is called afterwards, it resets CC to gcc.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit f93ad73accf06799ab027d82655677391725dc65
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri May 28 10:10:30 2010 -0400

    config: use AC_PROG_INSTALL now supplied by XORG_DEFAULT_OPTIONS
    
    It depends on util-macros 1.8
    The existing statement can now be removed from the configuration file.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 9e24d7c75e4ae0adc5360e75e431faefdeb29f7d
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Fri May 28 10:09:17 2010 -0400

    config: upgrade to util-macros 1.8 for additional man page support
    
    Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS
    The value of MAN_SUBST is the same for all X.Org packages.
    
    Use AC_PROG_SED now supplied by XORG_DEFAULT_OPTIONS
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 17016ade9269cdfdd85bd1c4f1b76ca211fd63d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 1 15:03:58 2010 +1000

    Add a man page for xsetwacom.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 88e9fe19e307b18cac176e7e8815dd5640e9aa8b
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue May 25 20:08:00 2010 -0700

    Add two finger gestures for Bamboo with touch
    
    Both src and tools/include are updated. This "feature" will be removed
    when gesture is supported in X server or in desktop environment.
    
    Peter Hutterer's comment:
    
    "just for the record: I am deeply opposed to implementing gestures in the
    driver. This way every driver needs to cook their own soup, there is hardly
    any possibility to let clients configure the gestures, clients won't know
    when a gesture has been applied or when a gesture should be skipped instead,
    there is virtually no chance of standardization of gestures as all drivers
    will end up using slighlty different parameters, etc. the list is rather long.
    that's also why I kinda pretend that the code doesn't exist and do cursory
    checks only (I can't test it anyway).
    
    having said that, I realise that the lack of gesture support in the server
    is currently blocking any other attempts. So I'll reluctantly keep saying
    yes to this gesture approach, but expect it to be temporary only."
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0aef8254c96a8f299411fd7fc115b8ad694c600e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 24 12:34:41 2010 +1000

    Duplicate the InputAttributes for dependent devices.
    
    This allows for the configuration of dependent devices by creating the
    appropriate match rules. Note that for the input attributes - just as for
    the device name the type is simply appended to the end of the product name.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 63be00c8a4faadd2251b5f695e6b049d70943ae3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 1 13:55:17 2010 +1000

    xsetwacom: remove XSCALING parameter.
    
    XSCALING was compile-time defined as either 1 or 0 and a workaround for a
    bug in the X server release 1.4.0 (not 1.4.1) that required special scaling
    handling. It's not needed for xf86-input-wacom.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 49d7635e1905fd33a59581232418a6c7d5edc77f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 31 13:21:44 2010 +1000

    In relative mode, subtract the old pressure value from the new one.
    
    Otherwise the pressure builds up to the maximum and stays there, even when
    the pen is lifted off the tablet. Same goes for tilt, wheel and
    rotation/throttle
    
    https://sourceforge.net/tracker/?func=detail&atid=525124&aid=2996451&group_id=69596
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 579f31c628f0b0036f3c238cc7f32ccfc32adab1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 31 14:41:53 2010 +1000

    Don't pass the axes around to sendCommon() and friends.
    
    The only events generated here are button events, there's no need to send
    the axis values around.
    
    This also fixes a bug where axis values are sent twice to the X server:
    The following call order is possible in wcmSendEvents
    xf86PostMotionEvent(..., axisvalues[])
    -> sendCommonEvents()
        xf86PostButtonEvent(..., axisvalues[])
    
    This is fine for absolute mode but in relative mode this would result in the
    axis values applied twice. By not passing the values down, this bug is
    avoided.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit a36262f30418c5b57d9dd21aafe0b95d81bbf7d7
Merge: 6569c057 8916bf83
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 31 10:54:56 2010 +1000

    Merge branch 'waltop'

commit 6569c0577b04c3c8b7ddc737cbc030893fe0fe0e
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue May 25 20:07:59 2010 -0700

    Add a new define (WAC_LCD) for tablet_id
    
    WCM_LCD is added to distingush the tablets that are used as LCD digitizers,
    such as Tablet PC and Cintiq/PL series. They have common features that
    regular tablets may not have.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b19576fc4fa7939bf0774aa8f49a90ebbfe1a6e8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 27 14:13:26 2010 +1000

    xsetwacom: remove unimplemented NumScreens setting.
    
    AFAICT, NumScreens in linuxwacom returns screenInfo.numScreens - the same
    value as reported by ScreenCount(3). If this is 1 and TwinView is enabled,
    this value is hardcoded to 2. This logic can be replicated in the client,
    there's no need to export this from xsetwacom. The driver does not export
    this anymore anyway - was unimplemented since the fork.
    
    Note: the driver does not export this setting as input driver do not hook
    into the RandR notification mechanisms. The input driver thus would not be
    notified when a new screen is plugged in, resulting in stale values being
    stored in the driver.
    
    Note: this logic is incorrect if RandR 1.2 drives multiple screens.
    Although there are two physical screens, there is only one protocol screen.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8916bf839dff04d1db551ee962ee68608fc42885
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 8 16:10:58 2010 +1000

    Add a whole bunch of Waltop device IDs as "supported".
    
    These are taken from Waltop's driver download page, a bit more info might be
    nice.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ce763b3299c78f6824ff7ff7c3fc8a26106c597
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 8 15:56:23 2010 +1000

    Add Waltop as recognized vendor ID for autoprobe.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a8e535d4bcb56e20b172c2cb7559b72557f9c88e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 8 15:57:55 2010 +1000

    Incorporate the vendor ID into the model descriptions.
    
    This opens up the way for more vendor IDs to be matched with the right
    options.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 14f64d9837160cd4b0c0d63ed2e05e7babfc2db8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 20 14:54:54 2010 +1000

    xsetwacom: print an error if the property does not exist on the device.
    
    Custom get_funcs that do not have a property name skip this part and go
    straight to the get_func, all others get the property tested.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 3c7af6a1aaab296620b442d93375f02f050e65d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 24 08:05:37 2010 +1000

    xsetwacom: add a descriptive comment on how xsetwacom works these days.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 9ab46c7113ecda88bcf40b936b147dbfcd87d996
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 24 08:06:39 2010 +1000

    Fix typo in usage output.  } should be ]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 44f4b81300b63fb01857197a96993bd85cc873ea
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 21 22:10:26 2010 +1000

    Remove libc wrappers.
    
    The X server is just deprecating them from the headers and the wrapping
    never had the desired effect anyway (which was to have alternative
    allocation implementations).
    
    This patch brought to you by sed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit b3143b525d3e91e616b8b5329966b559f1c24a86
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed May 19 22:42:14 2010 -0700

    Centralize TPCButton/Touch/Gesture initialization
    
    Moved TPCButton initialization from other routines to wcmParseOptions
    of wcmValidateDevice.c. For hotplugged tablets, TPCButton will be
    initialized once since wcmParseOptions will only be called once. For
    tools defined through xorg.conf, we only allow stylus to define this
    option.
    
    Moved wcmTouch inside ISBITSET BTN_TOOL_DOUBLETAP check since only
    the devices that support touch would have this option. Same rule
    applies to wcmGesture. For hotplugged tablets, these two options
    will be initialized once since wcmParseOptions will only be called
    once. For tools defined through xorg.conf, only touch can change
    these options.
    
    If a tool other than touch tries to set those common touch options,
    a warning will be reported and the option will be ignored.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fcd8a63993c0fb81b5c9f6246ebd40105c245cee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri May 21 22:07:30 2010 +1000

    Revert "Remove now-unused variable oldButton."
    
    I applied Ping's patches out-of-order, this variable is needed for the next
    patch.
    
    This reverts commit dc81246c2ff6d38a09ee438e6c490df5c9b50c1f.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 060ad78cf464508f1d123c00b7340838a27f19e3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 20 16:41:02 2010 +1000

    Don't add the OutOfProximity flag to the axis mode.
    
    The server and many clients tends to check for Absolute and/or Relative, but
    don't use Absolute as a flag. The XI protocol spec only allows for 0 or 1
    (Relative or Absolute), not for an extra flag.
    
    As a result, a device set up with (Absolute|OutOfProximity) will be
    interpreted as Absolute by some clients and relative by others.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit dc81246c2ff6d38a09ee438e6c490df5c9b50c1f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 20 14:36:39 2010 +1000

    Remove now-unused variable oldButton.
    
    Obsolete with 62ae0d30494577b2a9de2d440b0f728e85b13e2a.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 62ae0d30494577b2a9de2d440b0f728e85b13e2a
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue May 18 17:44:05 2010 +1000

    Purge unnecessary option check
    
    xf86SetIntOption will get and set the button value as needed. No need
    to call xf86SetStrOption first.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 80cca0796f727a68e7695d5e82c57167471533a0
Author: Rafi Rubin <rafi@ugcs.caltech.edu>
Date:   Fri May 14 10:07:36 2010 +1000

    conf: force second button on N-Trigs to be right click.
    
    N-Trigs styli only have two buttons, having a middle click is less useful
    than having a right click.
    
    [split out into a separate commit by Peter]
    
    Signed-off-by: Rafi Rubin <rafi@seas.upenn.edu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit aa95e1364cf2fcaba6514f6b10c9f8ee30855c7f
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon May 10 21:18:50 2010 -0700

    xf86-input-wacom: Button 4 and 5 events are only for touch ring
    
    Only absolute wheels on the pad (normally touch rings) can send
    button events. Absolute wheels that are defined for the stylus,
    such as airbrush wheel or ArtPen rotation should only report raw
    data. It would be up to the client/application to translate those
    raw data in a way they like.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ea2769f8efbffffb13d2971a7f829a5590daee6d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 11 08:24:14 2010 +1000

    Revert "Always init wheel buttons to 4/5."
    
    This commit leads to weird button events on tools like the Art Pen.
    http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTil9O7b5Q7k03-zBWS_mSEJ79dDuh0ZqsBhuOI2v%40mail.gmail.com&forum_name=linuxwacom-discuss
    
    This reverts commit 0fbd3e34d792cb17163c1974d7e8ce93c24242a0.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 24caba4577364a6b7fad2eb1a39964598c9e5e01
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Wed May 5 19:34:48 2010 +0100

    Remove redundand MAX_USB_EVENTS definition from xf86Wacom.h
    
    There is no need to define MAX_USB_EVENTS in xf86Wacom.h as that definition is
    not used anywhere in the code.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 83db7fb4a71c6460ac2aaee3476fb49c36f9cbb6
Author: Rafi Rubin <rafi@ugcs.caltech.edu>
Date:   Tue May 4 12:00:36 2010 +1000

    Adjust N-Trig pattern.
    
    The old pattern is the default name set by hid and along with some other
    changes I added descriptive names for the event devices.  For people using
    the older versions of the kernel driver, they are probably better off just
    using the wacom driver to support both pen and touch.  For the current
    versions of the driver, there isn't much of an advantage to continue using
    wacom for touch, and some distinct advantages to moving to evdev
    (particularly as MT support matures). The wacom driver is still better for
    the pen.
    
    Signed-off-by: Rafi Rubin <rafi@ugcs.caltech.edu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5178eec046e160218df088363394b4b117976725
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 29 14:40:27 2010 +1000

    wcmUSB: add some parentheses where parentheses are due.
    
    No functional change, just improving readability. Let's not have constructs
    like
    
    for (....)
      if (....)
      {
      }
    
    If a block is multi-line, always surround it with parentheses.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit 1d0f629f8f95621f107ff3031b805613447ed275
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Apr 24 21:59:54 2010 -0700

    Replace Bamboo touch tablet_id check with tablet_type
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cda653b2690f5ed99ca48fcaf33c24539b5529e3
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Apr 24 21:33:59 2010 -0700

    Change WacomModel->name check to WacomModel->tablet_type
    
    tablet_type will be used to decide tablet common options.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit df7f16509194b7c778f2b823fd480043a2dbce86
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Apr 24 21:26:02 2010 -0700

    Add tablet_type to WacomModel
    
    tablet_type is introduced to distingush the specific features that a
    group of tablets supported. It will be used to replace the
    wcmModel->name check.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit de3953f34c5da03baee443186c64f852ea675fef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 14:34:49 2010 +1000

    Facture out state resetting from the device state.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit cde6ce3ab13d158b2f7b4d725ae84d36cfc33f02
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 11:58:01 2010 +1000

    Fix minor style issue.
    
    No changes, just whitespace fixes to make the else block look more like an
    else block and less like the start of an unrelated one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit 120ca4e2846c2fcc12f6f67105da5c17886b73f0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 11:55:50 2010 +1000

    Use 'buttons' instead of hardcoded 0.
    
    No functional change, it just makes the code more obvious.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit ec90c6d93561f1acbf574b45b75312b1079f2815
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Apr 27 13:51:17 2010 +1000

    conf: add WACf, FUJ02e5 and FUJ02e7 to serial identifers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pingc@wacom.com>

commit c5543682306775f1ba42e44cd8b3db4eb460f20d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 22 13:20:54 2010 +1000

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

commit 68f30e01567278cb474b9d54bb14ec74766584ab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 22 14:26:33 2010 +1000

    Fix some indentation in xf86WacomDefs.h.
    
    Every time I look at it this confuses me...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ca4f2a860c16f1181cb9e82ad27a5f890f165d4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 22 13:46:14 2010 +1000

    conf: move 20-wacom.conf to 50-wacom.conf.
    
    alnum sorting with a 2-digit prefix gives us 100 different possibilities for
    distro/driver provided configuration files.
    
    Let's move the config towards the middle to allow for convenient pre- and
    post-placement of other configurations.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b5084f000d05d5f14d3ba272b6b7ac145002b771
Author: Ron Lee <ron@debian.org>
Date:   Sat Apr 17 18:25:47 2010 +0930

    Install 20-wacom.conf to the sysconfigdir variable exported by the server
    
    Don't install the .fdi if we're using the xorg.conf dir.
    
    Based on a patch from Julien Cristau <jcristau@debian.org>,
    based on a patch by Peter Hutterer for xf86-input-synaptics.
    
    Signed-off-by: Ron Lee <ron@debian.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9be9ab331210aed2a3045f60d3d8a0d13d9ea0ef
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Thu Apr 15 17:58:07 2010 -0400

    config: fix checking for extensions section
    
    A hidden dependency on statement order was discovered.
    The REQUIRE_MODULES variable was removed but needed.
    Comments added to clarify the situation.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 659daa11dc558a45bfad1b9548f1757fab226ad7
Author: Ping Cheng <pingc@wacom.com>
Date:   Wed Apr 14 21:38:28 2010 -0700

    Normalize pressure sensitivity
    
    Instead of reporting the raw pressure, the normalized pressure from
    0 to FILTER_PRESSURE_RES (which is 2048) is reported. This is mainly
    to deal with the case where heavily used stylus may have a "pre-loaded"
    initial pressure. This patch checks the in-prox pressure and subtract
    it from the raw pressure to prevent a potential left-click before the
    pen touches the tablet.
    
    Left click threshold and pressure curve are updated accordingly.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c853f3230a28c75c06bde20606b37ce28afc356b
Author: Ron <ron@debian.org>
Date:   Fri Apr 16 02:01:03 2010 +0930

    Don't match WALTOP in the wacom.conf just yet
    
    On the advice of Timo about how ready it is right now.
    
    Signed-off-by: Ron Lee <ron@debian.org>

commit d65004559e21150fdc12bf58d03d3ddfe861efd6
Author: Ron <ron@debian.org>
Date:   Thu Apr 15 16:09:21 2010 +0930

    Use 20-wacom.conf instead of 10-
    
    This leaves a bit more space for people to override things if needed.
    
    Signed-off-by: Ron Lee <ron@debian.org>

commit 32ebba3eeb537dc70e1dfa45496bc65e66aeb9a2
Author: Ron <ron@debian.org>
Date:   Thu Apr 15 16:06:44 2010 +0930

    Rename the fdi subdir to conf
    
    Signed-off-by: Ron Lee <ron@debian.org>

commit ff59bc20e8ed549ca7ef17801851777907af79b1
Author: Ron <ron@debian.org>
Date:   Wed Apr 14 22:19:17 2010 +0930

    Add an initial xorg.conf.d snippet for xserver 1.8
    
    Drop this in the fdi subdir for now, just to keep all the config together.
    That dir can be renamed later, as the .fdi will eventually go away anyhow.
    
    Signed-off-by: Ron Lee <ron@debian.org>
    Acked-by: Ping Cheng <pingc@wacom.com>

commit 7813328083de1d6f6d9bd028ff4c18f222e81ff3
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Apr 12 13:05:49 2010 -0400

    config: comment usage of PKG_CHECK_MODULES
    
    There are two separate targets for which config should not be mixed.
    Follow-up from review.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c36de6947dfb23946926d041aa08d482ffd96a0f
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Apr 12 13:05:48 2010 -0400

    config: disable inadvertently re-enabled static library creation
    
    AC_DISABLE_STATIC must be places before AC_PROG_LIBTOOL,
    requirement which is not documented in libtool.
    This will prevent the creation of src/.libs/wacom_drv.a
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2795fc26832ee31546216f07ff5f3616cb2dea95
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 8 16:29:17 2010 +1000

    Use SETBIT and CLEARBIT macros to set the tool types.
    
    Macros like this are in common use in the kernel, X server, etc. and are
    slightly more readable than the |= and &= ~ expressions.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pingc@gwacom.com>

commit 42e8b791249b3d5c40d1117696deec8966c2e7e1
Author: Pengcheng Chen - Sun Microsystems - Beijing China <Pengcheng.Chen@Sun.COM>
Date:   Fri Apr 9 09:00:05 2010 +1000

    Remove duplicated definition: ARRAY_SIZE
    
    Signed-off-by: Pengcheng Chen - Sun Microsystems - Beijing China <Pengcheng.Chen@Sun.COM>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5087865cbea0ff16e3edbcc532ed9776434b9e0f
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Mar 29 10:44:47 2010 -0700

    All user defined types are valid
    
    Since there are types that we can not decide during device initialization
    stage, we allow all types defined in xorg.conf pass wcmIsAValidType check.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d83ad3afe27feb1d055cfeeef448d5045089c6f0
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Mar 29 10:00:05 2010 -0700

    TPCButton is on by default for ISDV4 devices
    
    The recent updates for ISDV4.c missed this bit.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 037eafa0240b342fd6ab35bd88edab6d2b66c30a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 14:46:25 2010 +1000

    xsetwacom: handle special button mappings.
    
    As with keystrokes, this handles usecases like
    "button +5 4 -5" for a button 5 down, button 4 click, button 5 up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 76544c491821aa5208371324872e7759d7f087b8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 14:30:33 2010 +1000

    xsetwacom: refacture button mapping code.
    
    This loses the ability do do "xsetwacom --set Button1 button 5" to make
    Button1 do what button 5 does. Really, just run the command twice...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 47d00b15a2a1afbff08d2899d2c071fbeff61b33
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 13:57:00 2010 +1000

    xsetwacom: rearrange keyword matching for future multi-keyword assignment.
    
    In the future, xsetwacom should support a --set Button1 "key a b c button 1
    key a" mapping. This is the first step towards it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 967f90c75a7ad17c8e26bb89f5b348c43bbd146e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 11:18:59 2010 +1000

    xsetwacom: fix strjoinsplit.
    
    silly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8a911e348fb17ad40cc0130d4ad4d862d0dd096d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 11:21:24 2010 +1000

    xsetwacom: trace the special button key mapping if running verbose.
    
    Output is something like:
    ... Key map 97 ('a') [press,release]
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit eabc771985c88fcf99dbc12d84705cf2faace3da
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 11:07:25 2010 +1000

    xsetwacom: fix offset for special key mappings.
    
    offset was always 0 + nitems which wasn't a problem as long as we don't
    support multiple keywords ("key a button 1 key b"). If multiple keywords are
    supported, the offset needs to move to the current, otherwise we overwrite.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2bc39947855842a04f1e40d8004fe094f44f62ee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 15:07:00 2010 +1000

    Split button action property handling into two static functions.
    
    No code changes, just making the SetProperty handler less of a beast.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 132504227b487a7fdfa6e4e6964f5d7058c0e794
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 09:59:56 2010 +1000

    Factor out retrieving the wheel button.
    
    No functional changes, just making code hopefully more readable.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 476b5da0ae5a8fa7c72dc5086f46a28184a0f79f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 24 16:52:08 2010 +1000

    Remove unused wheel key assignment.
    
    keyP isn't actually used anywhere.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 5f4bc4d43bce84dd84192d3cc9fb7a9ad5b1031d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 26 10:52:45 2010 +1000

    Don't allow the pad to be switched to absolute mode.
    
    See 2038ad187823b "Always put the pad in relative mode" for a more detailed
    explanation.
    
    Reported-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 30c8356cb98536e539bbc81e72e3dd7e1e9e255d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 11:22:06 2010 +1000

    Fix build error with --enable-debug.
    
    Introduced with 09e01eda07de "Call wcmRotateCoordinates only when we get
    real motion events".
    
    wcmCommon.c: In function ‘wcmSoftOutEvent’:
    wcmCommon.c:1646: error: invalid use of void expression
    
    This patch also changes the message to the usual DBG format (the DBG macro
    will fill in the device name and the function name automatically).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 2038ad187823b770fcb3b5e77dacf4bad27617e6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 25 10:49:02 2010 +1000

    Always put the pad in relative mode.
    
    Fixes Intuos3 scrolling issues.
    
    The pad cannot be in absolute mode as it sends the axis values to the
    server. Since the pad never gets x/y coordinates from the tablet the server
    will fill in the defaults (0/0) for it - even if first_valuator is always >
    1. This results in the pointer being reset to the screen origin each time
    the pad's scroll strip is used.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 09e01eda07decdbd2350fa46aea8c705bbdd968b
Author: Ping Cheng <pingc@wacom.com>
Date:   Wed Mar 24 15:14:01 2010 -0700

    Call wcmRotateCoordinates only when we get real motion events
    
    Out-prox events don't send reliable motion events. So, don't rotate
    those coordinates.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 898caa97dec7af1cae3bf05ae6eb598732aa1141
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Mar 23 22:13:37 2010 -0700

    Add wcmSoftOutEvent and wcmGetPhyDeviceID
    
    wcmSoftOutEvent is used to send an out-prox event for the current invalid tool
    before switching to a new tool.  This routine will be used by new gesture code.
    
    wcmGetPhyDeviceID is called by wcmSoftOutEvent and wcmSetType.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 40f344803460f7f1e5e07a67d4e10e7c6d2fcdc8
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Mar 23 17:43:53 2010 -0700

    Move BTN_TOOL_TRIPLETAP to the header file
    
    Move BTN_TOOL_TRIPLETAP definition from wcmUSB.c to xf86WacomDefs.h
    since it is also used by wcmValidateDevice.c and wcmISDV4.c
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0bdabe85a09b4c522b4237a0ee95326cbcb23740
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 15:36:24 2010 -0400

    config: layout and comments change.
    
    No functional changes.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 43ee2f9907a82018eff3a7103eed22e0fc01a444
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 15:32:38 2010 -0400

    config: separate sdkdir assignement from distcheck workaround
    
    sdkdir in needed for other purposes.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 0eb3ddb627487bb37be354c2dd943d03525f395e
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:57:59 2010 -0400

    config: bump Autoconf version to 2.60
    
    This version matches the content of the configuration as it was before
    this patch series.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 82cb6c9cd5d8e3fb1a9e63aa101699a3d8c97731
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:55:45 2010 -0400

    config: AC_OUPUT with parameters is obsolete
    
    Use AC_CONFIG_FILES
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit bf45c3c546bbd672a8b604ed6924b4c862888419
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Mar 22 19:16:57 2010 -0400

    man: use $(SED) for better portability
    
    $(AM_V_GEN) is for Automake 1.11 silent rule.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 8f28c5640b8e33719b52ae7ae9b6843104cc2032
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:52:47 2010 -0400

    config: add portability macros
    
    As suggested by autoscan for this module. These will provide
    default values if none defined on the system.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit d184685aca7fe27a7c5c9403c5a993d761bece35
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:51:27 2010 -0400

    config: add libm.a library check used by xsetwacom
    
    As suggested by Autoconf. Checked with SunCC compiler docs.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 1d6d34e905d297f6dbf91f6703f874f16262c233
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:45:02 2010 -0400

    config: remove unrequired defines for ISO C90 header files.
    
    Autoconf: This macro is obsolescent, as current systems
    have conforming header files.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit ca2502dc24801d58bb7c9a285a668631df596211
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:40:49 2010 -0400

    config: remove unrequired auxiliary config dir
    
    By default, autotools scripts are generated in source dir
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit a2b8b5207909a23550461467ba82f7e68f44b70d
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:38:13 2010 -0400

    config: move foreign option to AM_INIT_AUTOMAKE
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit ba708b40fb607ea6defdd55aef29b0837a076fed
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sat Mar 20 14:40:07 2010 -0400

    config: obsolete AC_HELP_STRING is replaced with AS_HELP_STRING
    
    Fix autoconf warning.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit e84d1f61dce03b04a90b3430c3fa1f571f37e0dd
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:35:35 2010 -0400

    config: AC_FATAL is obsolete, use m4 ac_fatal
    
    Update util-macros level to 1.4 due to INSTALL file.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit e67658fa5685527d3ec2d0d1863380e37903fe19
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:33:25 2010 -0400

    config: obsolete AM_CONFIG_HEADER replaced with AC_CONFIG_HEADERS
    
    Fix autoconf warning
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 1b7dd740d42aaa6559439b26f5ffd6adc94cbb32
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:30:41 2010 -0400

    make: rename INCLUDES to AM_CPPFLAGS
    
    Fix autoconf warning, INCLUDES is deprecated.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 47082e462e35a25b1e6413e0347d5fca252f3250
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Mar 22 18:59:07 2010 -0400

    make: remove unrequired EXTRA_DIST for headers
    
    The automake primary HEADERS distribute headers by default.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit e8b6829c273f44bd871944d1bd5fdaf187c7d4f7
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Mar 22 18:45:48 2010 -0400

    make: remove unrequired EXTRA_DIST for wacom.fdi
    
    The dist_fdi_DATA statement takes care of distribution.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit f32cd91496a8d7aa3dfee00eb694195a60ae936e
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:22:38 2010 -0400

    config: remove unused AH_TOP #include xorg-server.h
    
    It has been included in xf86Wacom.h for over a year.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 8ed7d6955d934d9c0e9b5ee20aa5c61bbbd41f34
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Mar 23 14:21:20 2010 -0400

    remove unused DEBUG Automake conditional
    
    This is not related to AC_DEFINE DEBUG used in C source code.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit 70de32b0454a03eff4881653c5254b4bcddd1336
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sat Mar 20 14:46:28 2010 -0400

    config: remove unused $REQUIRED_MODULES variable
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

commit e19d72ac82efc83b47b7772aa07c56a683b95ecb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 22 14:17:19 2010 +1000

    man: remove linuxwacom reference, replace with current version instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 51bd71db2d6f508489d792ddb16d1bcbe21b41f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 22 11:56:53 2010 +1000

    ISDV4: unify warning/error messages in the <device name>: <message> format
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 11a9a43f6fb5f01c5b7d3d0df24be4631625decf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 22 11:42:44 2010 +1000

    ISDV4: replace loop with memset.
    
    If the comment is correct, then it would be a bug in libc. Which would need
    to be investigated but for now I'm giving it the benefit of the doubt and
    claim that memset works equally well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 62197a303a36a8dbeda69c8867617ce3bfb6380d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 19 14:59:51 2010 +1000

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

commit e4069c2a7b3b74eebe3d8a30e3121f52730320c8
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Mar 18 20:57:54 2010 -0500

    Do not send button presses for touchpads.
    
    Now that we support touchpads (Bamboo P&T), the old logic
    for button presses on touchscreens needs to consider this.
    
    I chose looking at tablet_id instead of ABSOLUTE/RELATIVE setting
    because we would have to do a for() loop to find correct private
    structure for touch device.
    
    Eventually, we will merge over touchscreen gesture support
    from linuxwacom which will centralize all gesture logic
    in either wcmCommon.c or wcmTouchFilter.c.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3055024b89c5b274a6c7d2cf128ec390fe0ffad3
Merge: fb458cab 70e490a5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 19 11:36:28 2010 +1000

    Merge branch 'isdv4-cleanup-stage2'
    
    For the patch series merged:
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Tested-by: Timo Aaltonen <tjaalton@ubuntu.com>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fb458cabf07932f7862edbb769f9865ea32e9694
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Mar 18 14:18:32 2010 -0700

    Change Copyright
    
    Change "Wacom Technology" to "Wacom" to cover all regions
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 246244fc724b4457e0602a494dfe72bfb9fc254e
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Mar 18 14:13:19 2010 -0700

    use wcmKeys to check tool type
    
    Since wcmKeys can be accessed from usbWcmGetRanges, we retrieve
    the supported tool types instead of product ID for touch devices
    that also report pad data. This change makes the code generic to
    all touch devices that report pad data.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 87f2ff0397223c557650ccb1e0aac4bb497a7a93
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Mar 18 14:10:46 2010 -0700

    Make keys into wcmKeys
    
    Tool type and other device/tool specific characters can be retrieved
    through the supported events, defined in keys, from the kernel. Make
    this variable an attribute of common so we only need to retrieve it
    once in wcmPreInit.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7a078d10266155f87b32b05803d90c62d65fee73
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 19 08:29:55 2010 +1000

    ISDV4: add missing linebreak after wcmWriteWait error message.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bd1c20ca8f8187b30d70b3310b5b086f6fc124ed
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 18 17:09:05 2010 +1000

    Pressure threshold must be smaller than maxZ, not 21.
    
    21 is a copy-paste error from the ClickForce setting. The default for the
    pressure threshold is maxZ * 3/50 (245 on my tablet), 21 thus isn't quite
    sufficient.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 61392ced1f604d81a6e7d27036784eb19b595313
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 18 10:08:20 2010 +1000

    Fix build error with --enable-debug on.
    
    To reduce the number of ifdefs, a slight reshuffling of the code.
    
    Reported-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 70e490a5e7a16639f4a2c2f98d0b203bc6ddec16
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 18 14:49:20 2010 +1000

    ISDV4: print tablet ID after assigning it.
    
    Bug triaging is easier if the log file contains the tablet ID assigned by
    the driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bda0e2263faabac5e13ae9dee968bd67555d8809
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 17 23:26:42 2010 -0400

    ISDV4: Parse touch and coordinate data packets.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c6efe6b87d72448dd7b18bb6f056a064b587bc23
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 17 22:46:42 2010 -0400

    ISDV4: Move some ISDV-specific defines into the new header.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8a497d0c808ab749189501f0f360a1bf56d45770
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 10:39:57 2010 +1000

    ISDV4: move parsing code for query and touch query into separate functions.
    
    Instead of having the protocol parsing code directly in the matching functions,
    move it to a separate function and return a struct with the interesting data
    already set. This eases code readability and improves debugging between
    protocol parsing errors and general driver bugs.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72231173a14c69c30918f57f0b3be66a9bdd20de
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 16 14:16:09 2010 +1000

    xsetwacom: fix wrong option parsing for --display.
    
    Reported-by: Andrew Lofthouse
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6f98912927116fcf0067e30f010778b0e838f268
Merge: 4c2d47db d8d70c12
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 16 16:03:32 2010 +1000

    Merge branch 'isdv4-cleanup-stage1'
    
    For the branch merged in:
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
    Tested-by: Thomas Jaeger <thjaeger@gmail.com>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4c2d47db27f90907301a67c096096a80383e69d7
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Mar 15 21:14:41 2010 -0700

    nbbuttons should be <= WCM_MAX_BUTTONS
    
    The workaround that supports at least 7 buttons could cause
    nbbuttons larger than WCM_MAX_BUTTONS, the maximum number of
    buttons that is supported by the driver. This patch keeps
    nbbuttons in its range.
    
    This patch also fixes a driver crash issue on ISDV4 with touch
    systems that may be caused by nbbuttons being larger than
    WCM_MAX_BUTTONS. The "may be" is backed up by the following
    testing result:
    
    1.  linuxwacom-0.8.5-11 has the same block of code. However,
    running linuxwacom-0.8.5-11 on the same ISDV4 system (Xorg 1.6.0)
    without this patch doesn't have the issue.
    
    2.  Running xf86-input-wacom without this patch on a pen only
    ISDV4 system doesn't have the issue either (Thomas Jaeger reported
    the same positive testing result too).
    
    So, there must be some other issues behind the crash that we don't
    understand yet.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d8d70c12395f856cffaeee2dfe02a03a028d2f18
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 5 16:10:47 2010 +1000

    ISDV4: move wcmWriteWait and wcmWaitForTablet errors into those functions.
    
    Instead of cluttering up the rest of the code, just complain where it
    happens. This needs a slight change to the two function signatures so we can
    print the device name too.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 120e7514aef71aa6f2c32d0143f8466479ce02e7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 5 16:10:47 2010 +1000

    ISDV4: move stopping the device out to isdv4StopTablet()
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6d7395dceb215a8b14ebdb1b2903115e4e8a48bd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 5 16:05:03 2010 +1000

    ISDV4: use wcmWriteWait for the start/stop commands.
    
    If we already have a wrapper function, we might as well use it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b9317f264230c7aaad909cc83bf6f8d512df22c3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 5 11:59:04 2010 +1000

    ISDV4: Rename the ISDV4-specific defines ISDV4_foo
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit baafd08d3cfbb9dfee2b84cb74ca480d4e5606c7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 10 11:07:18 2010 +1000

    ISDV4: use wcmSkipInvalidateBytes from wcmSerialValidate.
    
    Untangle the double if inside the loop to perform the same functionality:
    first check the header byte and if it has the magic bit set. If not, skip
    along to the next byte that does.
    Then, check that the remaining bytes don't have the magic bit set. If not,
    skip up to the first byte that does have the header bit set.
    
    This patch also changes the function signature so we can print the name of
    the device where it happens.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 523af161bef98745e0d18814c09f0a22e8f2d453
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 10 10:46:53 2010 +1000

    ISDV4: skip bytes until the next HEADER_BIT if necessary.
    
    This is similar to what wcmSerialValidate() does but only does the skipping
    of an already started invalid packet. At this point we don't have the packet
    length defined yet so this is just an early exit path.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b945afc82e83aab24d9d3d3320717e58c23b5c8f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 9 15:13:56 2010 +1000

    Fix invalid buffer handling in isdv4Parse().
    
    Check the first byte of each packet for the bits that define the packet
    length, not just the first byte in the buffer.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 62e14f05308fb0585fed771cc96280aef717bd91
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 14:26:31 2010 +1000

    Remove ISDV4-specific code from wcmReadPacket().
    
    The packet length only matters on ISDV4, the code should be in the matching
    part of the source.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 60dd6923f6b2df0d3c995c592b2c672960123fcb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 14:15:51 2010 +1000

    Pass the length of the buffer into the parsing code.
    
    Just handing down a data pointer is risky, since we can't do any
    model-specific checking for buffer length in the actual model-specific code.
    So instead, for any buffer size, call the parser. The parser then can return
    0 if the length of the buffer isn't sufficient.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit f979ad42ef7c571d71f2e4dc9fb69042b276e59a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 16:16:26 2010 +1000

    Remove a bunch of now unused defines.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 6703e6c60728cc080f6b194bcaa8f03795afab6a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 14:07:35 2010 +1000

    Purge Read() abstraction from the device models.
    
    We only support ISDV4 and usb tablets and both use the same read method.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 91d806950738b4cd376066f09836c8fe951249cf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 4 13:59:54 2010 +1000

    Fix a superfluous linebreak.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>

commit 546a2ee94aee8278dad5c1cdc9babe82caac94ff
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sat Mar 6 20:58:46 2010 -0500

    wcmISDV4.c: error on AMD64: conflicting types for int64_t
    
    The header <linux/serial.h> should come after xf86Wacom.h
    as it did when it was in wmValidateDevice.c
    Problem was introduced by commit 3d5f67417a0939d30a19e581a4f76091cfad4a5d
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bdf6e5239ca4c7e8ab2a9b7c921176473d1e80c2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Mar 4 19:41:57 2010 -0600

    Fix usbGetRanges() for any load order of touch/pad
    
    For Bamboo P&T devices, both a touch and pad type are
    shared for single input device and can be called in any
    order based on xorg.conf.  And normal HAL order is to
    invoke usbGetRanges() from pad first.
    
    This meant all logic related to IsTouch() was not
    correctly running.  Updated to treat pad type as
    touch in special case of Bamboo P&T.
    
    This is applies to devices that have both BTN_TOOL_FINGER
    and BTN_TOOL_DOUBLETAP which currently is limitted to
    Bamboo touch devices.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by:  Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 83f932844c8f21e6e4d461a1b754256844dd58d7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 1 22:08:48 2010 +1000

    Fix pressure curve application check.
    
    4865c30bf0a22ce4083161b1dd953508189b2091 unified the check for when to init
    the pressure curve. Unfortunately, it didn't actually do so, introducing a
    wrong if condition.
    
    Reported-by: Bryan Hundven <bryanhundven@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d863ffd142919b24bd15fcdde31a9ee19cee39bc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 1 13:45:56 2010 +1000

    static-ify usbWcmInit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 836d30f6eee0e82b7ef874de0deb491ec0b17645
Merge: 701521e9 c1457421
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 1 09:58:09 2010 +1000

    Merge branch 'init-process-revamp'
    
    For the patch series merged in:
    Tested-by: Chris Bagwell <chris@cnpbagwell.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c1457421d417f496949362f7fd858bae0f0a3bed
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 15:51:56 2010 +1000

    man: update pressure curve documentation.
    
    Setting is only applicable for stylus and eraser.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4865c30bf0a22ce4083161b1dd953508189b2091
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 15:48:36 2010 +1000

    Unify the check for application of pressurecurve.
    
    The property code and wcmParseOptions should use the same condition for
    readability. Outcome is the same - the pressure curve is applied only to
    stylus and eraser.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 37fa3c2e29a0ca6eadd0e7f054a17bd9c194ad0a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 15:46:19 2010 +1000

    Move the check for pressure curve value sanity into its own function.
    
    Instead of duplicating the check, move into a single function to avoid the
    usual bugs of one occurance getting updated but the others don't, etc.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fb4f167c80290dd7be5c0a47f1e649115b157681
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 14:14:46 2010 +1000

    Clear up some ambiguity in the comments for wcmIsDuplicate.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 35b3129889b7b51aae8d0b8dba130dad2a9b6a54
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 14:07:41 2010 +1000

    Refacture wcmMatchDevice to iterate over the devices.
    
    No functional change, it just removes complexity from wcmPreInit into
    wcmMatchDevice to make the former easier to read.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 196cd5033311e9b3d30d121ed1e45046a1a99725
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 14:00:16 2010 +1000

    Purge wcmEraserID - unused.
    
    This field was only ever set, but never read from anywhere. It seems to have
    been removed with commit 088dab520184: Support dual Cintiq with TwinView setup
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cd9793f484c1f70b630a5cad3556c4966f1984ed
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 13:51:24 2010 +1000

    Revamp device PreInit process.
    
    The new init process:
    - allocate the generic struct used by all device types.
    - if no device is given, auto-probe for one (find a wacom device
    in /dev/input/event?
    - open the device file
    - probe the device
    
    The allocation process is different now, the common settings are allocated
    for all devices, type-specific settings are set once some information about
    this device is available.
    
    The auto-dev probe is now invoked for each device that does not have the
    device option set. For this to work, we need the common->wcmDevice to be
    initialized to NULL.  An option "Device" "auto-dev" is _not_ supported, it
    would be interpreted as file path and fail. Something for the future maybe.
    
    Probing could still be improved by getting more information from the device
    now instead of during open. Something else for the future.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0fbd3e34d792cb17163c1974d7e8ce93c24242a0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 13:24:10 2010 +1000

    Always init wheel buttons to 4/5.
    
    Regardless of the type, we can init the wheel buttons since other device
    types don't generate them anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 43ce982801d6d3d84b98a8f5550df900c621b3b5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 25 09:32:17 2010 +1000

    Init the pressurecurve property with the values from the device.
    
    Don't hardcode the defaults into the property code, use the stuff from
    priv->nPressCtrl (the actual device's values) instead.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fa2981ff91fe044b780225edcbe29bb63b66a52c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 16:52:09 2010 +1000

    Open the fd only once during PreInit.
    
    Instead of having every function open and close the fd, just open it once
    towards the start of PreInit and then close it at the end again. Anything it
    between can just re-use it.
    
    This reshuffles some of the code in PreInit that was supposedly working when
    "auto-dev" was set. It wasn't, so this just emphasises the brokenness.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3d5f67417a0939d30a19e581a4f76091cfad4a5d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 16:38:24 2010 +1000

    Split wcmDeviceTypeKeys into usb and isdv4 version.
    
    The rest of the driver tries to split USB and ISDV4 interface and specifics
    into the matching source files, let's do the same with the probing.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 211792fede6c5422f7cd767a2356b26dd89ba990
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 16:23:30 2010 +1000

    Rename wcmInit to wcmPreInit.
    
    The hook the server calls is named PreInit, so use the same name to avoid
    potential confusion with what this call actually does. Since we have misc.
    wcmInitializeFoobar as well, wcmPreInit somewhat expresses the intent a bit
    better.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cb3e41b9c7709d1943d1bfebc463fe274eeb1a45
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 16:16:29 2010 +1000

    Untangle triple-nested ternery condition.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 701521e9ce99dc7d0d276291539e2ee2abf8111c
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Feb 23 20:55:38 2010 -0600

    Remove user setting of MaxX/MaxY/MaxZ in xorg.conf.
    
    Any values specified by user in xorg.conf for MaxX/Y/Z
    and the MaxTouch* versions were always being overwritten
    during call to device->GetRanges().
    
    This is a cleanup to remove this broken feature since users
    really should not need to touch this.  Removing is much
    easier then getting user override values to work correctly
    for values that are set so late.
    
    This broken interface was not document to user in wacom man pages
    and users are more interested in BottomX/Y and pressure curves
    then the hopefully rare case of trying to debug new hardware.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by:  Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c5425f05394082798207ae53fe0c4e034e59fffc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 13:56:33 2010 +1000

    man: remove reference to "USB" option.
    
    We don't parse this option anymore, it's implied unless ISDV4 is given.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e07c501eb27357e70af85a930556948d5f1d3ac2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 13:53:21 2010 +1000

    Update comment - wacom tool type property is read-only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ee4bb8e381bd52ef2cbaa04b57a07d6adfe5a0fa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 24 11:21:14 2010 +1000

    Only init pressure curve property for stylus and eraser.
    
    The mouse doesn't really have a pressure curve. And the pad doesn't either,
    so no need for this property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ab5672640586ee8b8e92e61b7b0b369768970f92
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 21:24:04 2010 +1000

    Only init strip and wheel buttons for the pad.
    
    AFAICT, there's no pens with scroll strips out there.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 87c1d287b96bf335e16a96ecaf8a91ca085bf738
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 18:01:21 2010 +1000

    Only allow absolute mode for pads.
    
    The driver doesn't really know anymore whether a device is a core device or
    not since it may change at any time after an XIChangeHierarchy() call. Even
    then, a device is never a core device anyway - the master device it is
    attached to is.
    
    This code can't be triggered in server 1.7 or higher anyway, just purge it
    and return an error when trying to set the pad to relative mode.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a3d4c8c5d0fa9eb30f201bd3e85584eb91ff9d98
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 18:03:04 2010 +1000

    Return XI_BadMode instead of BadMatch.
    
    BadMatch may "occur if an XSetDeviceMode request is made specifying a device
    that has no valuators and reports no axes of motion." XSetDeviceMode(3)
    
    This isn't the case for us, it's an invalid mode that has been selected
    here. Return XI_BadMode instead, the server will return this as BadMode as
    of:
        commit 02d1116e7eb84068fa32477f1640d29b0a81b638
        Refs: xorg-server-1.7.99.901-12-g02d1116
        Author:     Peter Hutterer <peter.hutterer@who-t.net>
        AuthorDate: Mon Jan 11 16:35:36 2010 +1000
    
        Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5a5370eda068e0d5271a61cee29e6c9658e242df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 17:50:15 2010 +1000

    Remove option replacement on SwitchMode call.
    
    I don't quite know why this is there but it strikes me as really really
    weird and the commit message for this code gives no indication on why it's
    necessary.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 57fdd26c39eefa1c55437e5e1a8d02c51f74d104
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 17:36:35 2010 +1000

    Purge conversion proc and reverse conversion proc.
    
    The field is still there (for ABI reasons) but the server hasn't called
    either of these two since about 1.4 or so.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4a6760f71ca1dd5cd9ab0961c7b3519573dd5de1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 15:54:00 2010 +1000

    Fix labelling in wcmInitialCoordinates.
    
    The axis lable describes the physical axis, not how the axis is currently
    used. Hence, the labelling for x/y on a wacom device is always for an
    absolute axis, even if the usage mode is relative.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d8be906ae0509d8e2af30bcfd8398e656374d022
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 15:51:09 2010 +1000

    Rearrange wcmInitialCoordinates.
    
    Instead of a giant if/else block with essentially the same code, just work
    on both x/y and then just trigger for the right axis. This call isn't that
    expensive and readability trumps here.

commit 521da1f0aa93dc239012149deef235d65b440bcd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 15:42:54 2010 +1000

    Be more explicit about axis check in wcmInitialCoordinates.
    
    Don't treat axis as a boolean variable, treat it as a number of 0 or 1 and
    error out if it is neither.
    Also - typo fix, "axes" is plural.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ba90433d47d42f85cd135242bca9d580d270fd2c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 14:27:38 2010 +1000

    Purge unused fields from WacomModel struct.
    
    The following fields are not actually supported by any model we currently
    support, so the hooks are unused:
    Reset, EnableTilt, EnableSuppress, SetLinkSpeed
    
    since the WacomModel isn't exported ABI, we can just add it again if we ever
    need it in the future.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6cb822b7f7814059dc1302791721d021d843e4c9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 14:24:00 2010 +1000

    Remove obsolete comment.
    
    wcmWait is not an XFrer86 V4 function.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 68111d0bfa5813aae34d49dc894f5abb21fa0dce
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 23 11:16:51 2010 +1000

    man: update man page for ButtonM option.
    
    Notes the usage of the driver-internal button mapping in more detail and
    updates the new default accommodating scroll wheels.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5780e59c43634a1458bb727fd90b63af228edfff
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 19 13:27:32 2010 +1000

    Take scroll buttons into accounts when allocating buttons.
    
    X expects buttons 4-7 to be the scrolling directions, hence if our device
    has more than 3 buttons, we need to add 4 to the actual number of buttons
    reported. If the device has 3 buttons only, use 7 anyway so we can scroll.
    
    This affects the internal default button map as well, physical buttons need
    to be offset by 4 after the first three.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 9f9333c9a14c691cd4d9db483df63c69183c577d
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Tue Feb 23 20:55:39 2010 -0600

    remove unused wcmUserResolv* variables.
    
    Cleanup.  Variables not referenced by any real code.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 00d77e5a913f619a206930009161f0a2da846d92
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:52:53 2010 +1000

    Remove keysym.h include - already included by Xwacom.h
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0f3e76dc2c62c3befd8f49a0e7498fa9bb183f60
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:52:25 2010 +1000

    Remove unnecessary fcntl.h include.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 102d57d618195cedb9cf90157e05eb282987345f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:50:57 2010 +1000

    Move exevents.h include to the files that need it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 10e98ff6f6841a35ab5a89d2bb3202320e0cb32d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:48:35 2010 +1000

    Remove misc.h include - not needed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit c5c82b0fb4fdfccdc4a5e57684b9a359c9a488b1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:46:35 2010 +1000

    Remove xisb.h include, use unistd.h instead.
    
    What we really need is usleep() and close(), both in unistd.h.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 49a633ea2913cf3df4c76a75760dc49224dc7818
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:45:33 2010 +1000

    Move xf86_OSproc include to the files that need it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 8464a563ff9733d4c9f157c110328e2022ae4027
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:42:56 2010 +1000

    Move linux/input includes to wcmUSB.c
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0bb106dd19d3efea6a2bca21569f943a60ba2599
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:34:50 2010 +1000

    Move RESET_RELATIVE into ISDV4 code.
    
    This macro isn't needed anywhere else.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 705b881397589ceae57027e1b0840d25ed44cbac
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:29:12 2010 +1000

    Remove QNX support defines.
    
    I doubt anyone has tested this driver on QNX for a while. Support for QNX
    was removed from the server in July 2008.
    (X server commit 0ff5bc404842f7264a8e77f9e2a0bd8d0b051356)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit f1fb5c2037508fde409fd6f00bfaa62c4eb7cf69
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:27:45 2010 +1000

    Include config.h from wcmTouchFilter.
    
    Not including config.h may lead to quite interesting effects, often on 64
    bit boxes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit d1fdc839fd1a0bbbb70c2063c2bd36f78c5bcf88
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:25:35 2010 +1000

    Declare functions once, then include the header files.
    
    Instead of declaring functions in the C file and externing them from
    wherever they are used, just declare them once in the header file.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit e6d2b3c8a7c09c4258e5d25f11bcca1c8c4d5501
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 22 15:12:40 2010 +1000

    Remove unneeded function declaration.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit 0815cc870bc242756b6b9743d975f3c5dcb9d7e4
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Feb 18 10:54:28 2010 +1000

    Fix copy/paste error in license header referring to LGP instead of GPL.
    
    xf86-input-wacom (and linuxwacom) is licensed under the GPL, not the LGPL as
    the first paragraph of the license blurb states:
    
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * as published by the Free Software Foundation; either version 2
     * of the License, or (at your option) any later version.
    
    The reference to LGPL to see the details of the license was the result of a
    copy/paste error and has spread through all source files thanks to more
    copy/paste.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cd2ed486b739c1b240a85394e819a93e55cd119c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Feb 17 16:36:26 2010 +1000

    Remove unnecessary static declaration.
    
    This function is defined just three lines down, we don't need a declaration
    for it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 58c9e59b03c7e439b81bb5c05841bbb02883404f
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Feb 14 15:14:46 2010 -0600

    centralize setting default values to single place
    
    Setting relative mode default for bamboo was delayed only
    because common->tablet_id wasn't avaliable early enough.
    Now that its value is around, move setting default values to
    single location.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2805bae9797104b641db32740b5ba41d4642d5c6
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Feb 14 13:43:43 2010 -0600

    Find tablet_id earlier in init sequence.
    
    common->tablet_id is used in wcmInit() to decide things
    like defaulting to relative mode for bamboo P&T's but
    it is not set until after return from first call to
    wcmInit().
    
    Now query and store the tablet_id at same time that we are
    discovering its other features.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 052efcae93994eb17bbe7532c3bbbfb3443b37ab
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sat Feb 13 13:15:09 2010 +0000

    Fix typo ; -> , in xsetwacom.c
    
    The typo is in xsetwacom: .prop_offset = 10; should be .prop_offset = 10,
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 12ad08b854b631556171e7a9c1028aa51082f038
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Wed Feb 10 22:31:14 2010 +0000

    Add missing .prop_offset = 10 to SBottomX2 property
    
    Another one attached
    --
    Przemo
    
    From 058aa88f7b320d743f3642b8f543be6736d33192 Mon Sep 17 00:00:00 2001
    From: Przemo Firszt <przemo@firszt.eu>
    Date: Wed, 10 Feb 2010 22:19:41 +0000
    Subject: [PATCH 3/3] Add missing .prop_flag to SBottomY2
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a6620e2c8b04482e52d5674623deac2c00c2e4e2
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Wed Feb 10 22:08:58 2010 +0000

    Add missing .prop_offset = 10 to SBottomX2 property
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a7b543f4fa2c09df52db5c0819ef7684eee9e442
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Feb 8 20:42:23 2010 -0500

    config: move compiler flags to src/Makefile.am
    
    The -fno-strict-aliasing option was added in CWARNFLAG some times ago. Aside
    from the issue that it isn't a warning flag, being in this macro had the
    side-effect of affected all modules when just a few needed it.
    
    The plan is to transfer this option back to the module that are actually
    using CWARNFLAG. Each module can then decide if they really want it or not.
    This patch is just prep work.
    
    The net change will be that strict aliasing optimization will be performed
    (by default in -O2) and -Wstrict-aliaing=2" will be added to flag suspicious
    code. This has not been submitted for review yet.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2ceff910bfe6d7a8a92ff3d7373e5ff4d0a19105
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sat Jan 23 20:32:04 2010 +1300

    man: remove leftover CVS tag.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit e90cb9a4ebaf68d4b417b71feee0a26d17d12349
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 8 11:35:36 2010 +1000

    xsetwacom: shut up compiler warning.
    
    d cannot be used uninitialized given the code flow, but gcc doesn't know
    that.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit cbc8e88b1440af3f9206797a199374a8c6f991d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:58:59 2010 +1000

    Remove a few excessive braces.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 065ba1d4d90e4cbeb38a8475a75217c2081ad0b1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:52:59 2010 +1000

    Remove a bunch of unused defines.
    
    Looks like they became obsolete with
    b3cba4e3543a98103282ba8fa55bf38012d23d9f.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit cf182bb4c65c0a43dad15bcff48c0c17fb652506
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:22:11 2010 +1000

    wcmDeviceTypeKeys: use sscanf instead of manual conversion.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 939bb7e9dad031926252e9da6f329f62b2366bcd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:12:57 2010 +1000

    wcmDeviceTypeKeys: Move some serial-only stuff into the serial condition.
    
    Neither the strstr nor the memset is needed for USB devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 59e9e97e6e21fbb01856e89b5a2dfe7ede0a7823
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:09:12 2010 +1000

    Add explanatory comment about what wcmDeviceTypeKeys actually does.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 3402bd24b91f651215cc60f255cd9678f24a64fe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:07:08 2010 +1000

    Un-nest ID check.
    
    This doesn't have a functional change, but it makes the code a tad easier to
    read.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit a8d82d4a94b06b715f55d686d567cc6d34f87968
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 5 15:04:24 2010 +1000

    Remove erroneous comment.
    
    This part doesn't test if the tool is available, it simply copies the bits
    from the kernel. Testing is done later, somewhere else.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit c90350d148d3c2feec2bceedb83c61a81608a4fc
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Sun Feb 7 20:49:55 2010 -0600

    Fix zoom gesture crash. Make emitKeysym public.
    
    emitKeysym is used by multiple files so can't be static.  Made
    public and renamed to wcmEmitKeysym to better prevent symbol
    name conflicts.  This also fixes a crash with zoom gestures.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9a25bb87e7e7dc9ddf80b842b856c9bab6641460
Author: Denis Auroux <auroux@math.berkeley.edu>
Date:   Thu Feb 4 10:27:46 2010 +1000

    xsetwacom: stop processing options after the last option was encountered.
    
    Adding a "+" at the beginning of the getopt_long parameter string so that it
    won't try to look for options after non-options (in particular, a negative
    number in a set command is no longer considered to be an invalid
    command-line option).
    
    Signed-off-by: Denis Auroux <auroux@math.berkeley.edu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f18af429dd7eddbb5df64a337d138ad9596c87c7
Author: Przemysław Firszt <przemo@firszt.eu>
Date:   Tue Feb 2 19:46:29 2010 +0000

    Rename xf86Wcm{Read,Write} to xf86{Read,Write}Serial
    
    The xf86Wcm{Read,Write} macros no longer exist, so the modified comments
    are more precise with xf86{Read,Write}Serial
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 77e3aba3ed9bf2ed09f25f277a2647887c9f23fe
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sun Jan 24 16:53:58 2010 +0000

    Rename xf86Wcm* to wcm* - part 3
    
    xf86WcmInitialToolSize -> wcmInitialToolSize
    xf86WcmSetPadCoreMode -> wcmSetPadCoreMode
    xf86WcmDevSwitchModeCall -> wcmDevSwitchModeCall
    xf86WcmChangeScreen -> wcmChangeScreen
    xf86WcmInitialCoordinates -> wcmInitialCoordinates
    xf86WcmVirtualTabletSize -> wcmVirtualTabletSize
    xf86WcmSendButtons -> wcmSendButtons
    xf86WcmVirtualTabletPadding -> wcmVirtualTabletPadding
    xf86WcmFingerTapToClick -> wcmFingerTapToClick
    xf86WcmSetScreen -> wcmSetScreen
    xf86WcmAllocate -> wcmAllocate
    xf86WcmInitialTVScreens -> wcmInitialTVScreens
    xf86WcmSendEvents -> wcmSendEvents
    xf86WcmDevConvert -> wcmDevConvert
    xf86WcmDevReverseConvert -> wcmDevReverseConvert
    xf86WcmDevProc -> wcmDevProc
    xf86WcmDevControlProc -> wcmDevControlProc
    xf86WcmDevChangeControl -> wcmDevChangeControl
    xf86WcmDevOpen -> wcmDevOpen
    xf86WcmInitTablet -> wcmInitTablet
    xf86WcmDevSwitchMode -> wcmDevSwitchMode
    xf86WcmSetProperty -> wcmSetProperty
    xf86WcmReady -> wcmReady
    xf86WcmDevReadInput -> wcmDevReadInput
    xf86WcmDevClose -> wcmDevClose
    xf86WcmOpen -> wcmOpen
    xf86WcmInitArea -> wcmInitArea
    xf86WcmRegisterX11Devices -> wcmRegisterX11Devices
    xf86WcmKbdCtrlCallback -> wcmKbdCtrlCallback
    xf86WcmBellCallback -> wcmBellCallback
    xf86WcmKbdLedCallback -> wcmKbdLedCallback
    xf86WcmCheckSource -> wcmCheckSource
    xf86WcmFingerZoom -> wcmFingerZoom
    xf86WcmFingerScroll -> wcmFingerScroll
    xf86WcmSwitchLeftClick -> wcmSwitchLeftClick
    xf86WcmSendVerticalScrollEvent -> wcmSendVerticalScrollEvent
    xf86WcmSendHorizontalScrollEvent -> wcmSendHorizontalScrollEvent
    xf86WcmUninit -> wcmUninit
    xf86WcmInit -> wcmInit
    xf86WcmMatchDevice -> wcmMatchDevice
    xf86WcmVersionRec -> wcmVersionRec
    xf86WcmPlug -> wcmPlug
    xf86Wcmplug -> wcmUnplug
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1a5dd3a205c4a3a1d5f14305f5d3e98b1573017d
Author: Przemysław Firszt <przemo@firszt.eu>
Date:   Fri Jan 29 20:13:03 2010 +0000

    Fix typo in comment: xf86WcmReadSerial is xf86ReadSerial
    
    From 482e08fd52c95a0b1197a004086907a9e6ed3230 Mon Sep 17 00:00:00 2001
    From: Przemo Firszt <przemo@firszt.eu>
    Date: Fri, 29 Jan 2010 18:42:19 +0000
    Subject: [PATCH 1/2] Fix typo in comment: xf86WcmReadSerial is xf86ReadSerial
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e756c8e0e013340e91589a5576ec83f847e5a689
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Mon Jan 25 15:38:02 2010 -0500

    config: add make target to provide the INSTALL file.
    
    The file is globally provided by the util-macros module
    through the XORG_INSTALL macro in XORG_DEFAULT_OPTIONS.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d1aaa376207b5aef6a058c5f3a4cae7121f918a0
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sun Jan 17 11:54:40 2010 +0000

    Move wcmTilt2Rotation function to wcmFilter.c
    
    wcmTilt2Rotation function is now in wcmFilter.c, so wcmTilt2Rotation.c has
    been removed.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 69aa4e1139cc81436ea7658b8e9d97f5c6860607
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Jan 16 10:12:12 2010 +0000

    Being part of the tilt2Rotation team
    
    For the fun of coding and hopefully, as a by-product, improving the
    precision
    
    Signed-off-by:  Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e4aed3e13f00d7e6fc2d2d1379a92187203413a2
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sat Jan 16 10:01:01 2010 +0000

    Remove hardcoded rotation tables from wcmTilt2Rotation.c
    
    Rotation tables are replaced with atan2 function. It gives the same
    functionality as rotation tables.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c8176267aec7dbc6cd248f9bd2a9c36df88c84cd
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Sun Jan 17 09:20:16 2010 -0500

    .gitignore: use common defaults with custom section # 24239
    
    Using common defaults will reduce errors and maintenance.
    Only the very small or inexistent custom section need periodic maintenance
    when the structure of the component changes. Do not edit defaults.
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ad4f40386739ac87adefce5493554df6a8a118e2
Author: Chris Bagwell <chris@cnpbagwell.com>
Date:   Thu Jan 14 13:32:52 2010 -0600

    Default touch Mode to Relative for Bamboo P&T
    
    Touch screens and Touch Pads are sharing same type.  Make their
    Mode defaults match normal operating behavior which means
    change Bamboo P&T default to relative.  Simplify error case and rely
    of default values from initialization phase.
    
    Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
    Tested-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d6a194c80623c5306d60ee3f234863b3b4bacc6d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 15 15:42:49 2010 +1000

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

commit edf28df08b557ea6b7edb6c721670745c9e59cb6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 24 21:18:10 2009 +1000

    Protect against input ABI 9 and the input attributes.
    
    XINPUT_ABI 9 introduced InputAttributes to NIDR.  Attributes are assigned by
    the config backend (or the configuration). Hence, by the time they hit the
    driver they've been converted into options already.  From the driver's POV,
    duplicating the options is enough, especially since the driver cannot know
    which attributes apply to the device anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 01ff37c1a0a1bf74c8efb0ad2ee7b1c1792f98df
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sat Jan 9 17:18:01 2010 +0000

    Add Meta keys to xsetwacom
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 216c61a249c73aa44d98d837f1b5ae94a5a51559
Author: Ron Lee <ron@debian.org>
Date:   Sat Jan 9 22:38:58 2010 +1030

    Install the fdi as DATA not a SCRIPT
    
    This is xml it isn't executable.
    
    Signed-off-by: Ron Lee <ron@debian.org>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d4d6dd1aca5c2b79cfb68211491c01442f7597d2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jan 6 13:14:23 2010 +1000

    xsetwacom: the capacity property is 32 bit.
    
    Reported-by: Chris Bagwell <chris@cnpbagwell.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit edf71d2a664f6ed2a3ecccf77760c31410017444
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Mon Jan 4 23:13:06 2010 +0000

    Remove duplicate comment in xf86WacomDefs.h
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 118027d6704ad8b3162ed06fc02d1dbdcc877485
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Mon Jan 4 18:48:54 2010 +0000

    Fix wacom.fdi location in Makefime.am
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e9ab3c9c35d0991fb7c7624cccd76baae4e02bcf
Author: Ping <pinglinux@gmail.com>
Date:   Wed Dec 30 21:12:47 2009 -0800

    Restore valid small data packets
    
    Protocl 4 devices may send small, such as 2 or less,
    valid events in one data packet
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1583ee5a9fd9486d540ecf639dda53d5e2e7502e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 29 21:01:43 2009 +1000

    Update README to reflect current state a bit better.
    
    This driver is an X11 driver only, and the configure options are explained
    by configure --help. Let's not mirror this in the README, it may diverge
    otherwise.
    
    Add a very simple explanation on how to set up the driver fro hotplugging
    with HAL, xorg.conf configuration is better explained in the man page.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 27addb06d4ebf6f8988a14174b2823c1a4ab1504
Author: Przemysław Firszt <przemo@firszt.eu>
Date:   Wed Dec 23 15:20:57 2009 +0000

    Rename xf86Wcm* to wcm* - part 2
    
    Rename xf86WcmTilt2R to wcmTilt2R
    
    Rename xf86WcmMappingFactor to wcmMappingFactor
    
    Change xf86WcmWrite to wcmWriteWait in comment
    
    Rename xf86WcmInitialScreens to wcmInitialScreens
    
    Rename xf86WcmDesktopSize to wcmDesktopSize
    
    Reneme xf86WcmIsWacomDevice to wcmIsWacomDevice
    
    Rename xf86WcmRotateTablet to wcmRotateTablet
    
    Rename xf86WcmSuppress to wcmCheckSuppress
    
    It's wcmCheckSuppress instead of wcmSuppress to avoid collision with variable
    with the same name used in xf86WacomDefs.h
    
    Rename some Wcm* to wcm* to keep function names consistent
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a388e56688300c437926eff2915b10e6e6a06d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Dec 27 08:27:31 2009 +1000

    xsetwacom: get "all" is a read-only parameter.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7972d9a18fba31d3f7da71aab8f10c10b84c3dd4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Dec 27 08:23:49 2009 +1000

    xsetwacom: special output for write-only options.
    
    So far we only have xyDefault as write-only option but having some more
    user-friendly output is helpful.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 25abbc8e8268466bd720378e7c1e2156206d66e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 24 21:20:48 2009 +1000

    xsetwacom: Print error message when attempting to change read-only options.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 62900e48b54855daec8a74f6b28591411c2f76fa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 24 21:07:58 2009 +1000

    Re-indent property code to what's used in the rest of the driver.
    
    All files use 8-char tab indentation, not 4 spaces. Re-indent to be conform
    with the rest of the code.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 988bc36f58da94eb67f83e33b9b1f2499acaba36
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 24 08:55:16 2009 +1000

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

commit 0ac1c3810824b43fb8439d72d116e379e01e5030
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Dec 22 18:06:34 2009 -0800

    Fix a tablet rotation bug.
    
    Caused by the misuse of maximum X and Y.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 82408de786df12efa1f5f0ec9d0f5754f9c61bf7
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Dec 22 17:59:41 2009 -0800

    Validate the active tablet area before initializing the area
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72c69cfc60d6b762415828930a63e485aa00185f
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Dec 22 17:48:09 2009 -0800

    Add local maxX, maxY, resolX, and resolY
    
    Instead of switching maximum and resolution back and forth between
    touch and penabled devices globally, we define them into WacomDevice.
    The values are initialized in xf86WcmInitialToolSize once and used
    through out the life of the device.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fe2d108ac2e2bbddc1a8dba96550e737a15aee9e
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Dec 22 17:12:05 2009 -0800

    Add routine wcmRotateCoordinates
    
    Both wcmCommon.c and wcmTouchFilter.c need to rotate x and y before
    sending X input events. wcmRotateCoordinates is added to wcmCommon.c
    so it can serve both cases.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit aa5c91c68ce9e3c758b584359f9c18f6ce88250e
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Dec 22 18:14:58 2009 -0800

    xsetwacom: update usage help for Rotate option
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 398689d3a26bd5aa4ea715e9690a233b7a02fd70
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 13:29:28 2009 +1000

    xsetwacom: make parameters case-insensitive.
    
    This replicates the behaviour of the old xsetwacom, making
    xsetwacom ... TopX the same as xsetwacom ... topx.
    
    Reported-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c68fed3f13ca1335af548b88da72c27362d10ebd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 11:25:20 2009 +1000

    Add "Wacom Debug Levels" property.
    
    This property is only present if compiled with --enable-debug and allows for
    run-time modification of the debug levels. Values supported are 0 to 10,
    with 10 being the most verbose.
    
    xsetwacom --set "device name" DebugLevel 10
    xsetwacom --set "device name" CommonDBG 10
    
    Since this is a driver-internal property clients are discouraged from using
    this property for any purpose. It may disappear or change without warning in
    future releases of the driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2e03f1cde879fb9d16d21d79f4c71fcab703a578
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 11:07:52 2009 +1000

    Remove now superfluous name prints.
    
    The DBG macro prints the device name/device file automatically.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2429513915ee11e42e44068c1f8f66ff179cd534
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 10:38:11 2009 +1000

    Auto-prepend device name/file to debug messages.
    
    Add a new "name" field to the WacomDeviceRec. This field is at the same
    offset as the wcmDevice Field of the WacomCommonRec, hence the access to
    either is the same if casted.
    
    Then use this field to auto-prepend either the device name or the device
    file wherever a DBG macro is used. The output for DBG on priv is now
    (II) Wacom Intuos4 6x9 (xf86WcmMappingFactor): X factor = 0.0258, Y factor = 0.0309
    
    and for DBG on common
    (II) /dev/input/event13 (wcmReadPacket): buffer has 112 bytes
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bdc40d1a769229082cf91f8fd344f230996a6440
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 10:25:05 2009 +1000

    common and priv both have debugLevel, just pass them in as-is.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ea0591783f7c32dc9c650bc1b1f12a7c62379991
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 10:03:16 2009 +1000

    Merge the function name into the DBG macro.
    
    Each time DBG is called, prefix with __func__ regardless of the actual
    message. An empty DBG string thus prints "function name:".
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0501b9977050dbec74c72dbd8c78f2b72df43ab9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 23 09:43:12 2009 +1000

    Merge the xf86Msg into the DBG macro.
    
    All DBG macros call this function, there's no need to have it inside the
    macro, we might as well leverage __VA_ARGS__.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2fa1308110639d89c63a197efb53bd3b3791a51f
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Tue Dec 22 19:49:54 2009 +0000

    Rename xf86Wcm* to wcm*
    
    Rename xf86WcmFilterCoord to WcmFilterCoord
    
    Rename xf86WcmSetPressureCurve to wcmSetPressureCurve
    
    Rename xf86WcmFilterIntuos to wcmFilterIntuos
    
    Rename xf86WcmSerialValidate to wcmSerialValidate
    
    Rename xf86WcmWaitForTablet to wcmWaitForTablet
    
    Rename xf86WcmWriteWait to wcmWriteWait
    
    Rename xf86WcmWait to wcmWait
    
    Rename xf86WcmReadPacket to wcmReadPacket
    
    Rename xf86WcmEvent* to wcmEvent*
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a2f89b40e54e2abc854af42453160488ff22499f
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Dec 21 16:52:28 2009 -0800

    Remove area overlap check for area property
    
    Temporarily change the area to the new coordinates, do the range overlap
    check and then change it back to the original. This is needed since
    otherwise the area overlap check always fails (since the new area will be
    mostly identical to the current one).
    
    New behaviour: all four coordinates set to -1 reset the area to the
    defaults.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 781bb48a2ccfb2f6c12f53bc93f5a123af65bc26
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Dec 21 13:32:54 2009 -0800

    Send horizontal scroll gesture with button 6 and 7 events
    
    On older X servers, button 6 and 7 don't do anything special;
    on X server 1.7 and later, they are being translated into left and right
    scroll events.  This patch changes left/right arrow to button 6/7 for
    horizontal scroll events.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e243805faabc14826bcea227c6ed2d0a13a3467a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 15 07:34:10 2009 +1000

    Use xf86Msg instead of ErrorF for debug messages.
    
    ErrorF is supposed to be used in the server, drivers are better off calling
    xf86Msg since this uses the appropriate prefixes.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c04fb18412be3908678cf3fc68a899272e6835bb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 21 16:49:35 2009 +1000

    Fix touch property out-of-bounds memory access.
    
    4fd2af39a5432eaad03af6a48cd16988a165fbbb split out the touch setting from a
    combined property into its own separate one. The index didn't get updated
    though, which means wcmTouch was assigned random garbage.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Tested-by: Ping Cheng <pinglinux@gmail.com>

commit a6ac60245f3c121979c18e70b40045aa751d6c54
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 17 11:44:38 2009 +1000

    xsetwacom: add support for "xsetwacom --get <device> all"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c6c8f23a17390d7f11d92e7cbbe70ca1a57b62e2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 17 11:43:00 2009 +1000

    xsetwacom: split get() into get() and get_param().
    
    This makes get_param() the same signature as the other, specific, get()
    functions and get() a simple wrapper around it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0937d89a8d364b1150d68097527f2e92ba2639c6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 17 10:24:00 2009 +1000

    xsetwacom: init nwords to 0 before adding to it in strjoinsplit.
    
    nwords is a return value and needs to be initialized before adding to it.
    
    Reported-by: Przemysław Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b7e90296453b536b00a2857d978fd53a72d77c0b
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Thu Dec 17 20:24:38 2009 +0000

    Remove redundant xf86WcmMappingFactor calls
    
    No need to call xf86WcmMappingFactor before xf86WcmInitialCoordinates because
    xf86WcmInitialCoordinates calls it anyway.
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 463c5d1effa3505d54a5a520d143919ad1befc69
Author: Ping Cheng <pingc@wacom.com>
Date:   Tue Dec 15 21:05:38 2009 -0800

    Support 2FGT gesture
    
    There are 3 gesture features:
    
    second finger tap to right click (GESTURE_TAP_MODE)
    vertical/horizontal scroll (GESTURE_SCROLL_MODE)
    and zoom in/out (GESTURE_ZOOM_MODE)
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dea6383b30e1695acc6183aa098a4e056640596c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 17 11:50:34 2009 +1000

    xsetwacom: don't line-break after 32 bit values and Absolute/Relative.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a11cbb104b7a511d0f1292d169a9738ae4f91476
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 15 13:48:44 2009 +1000

    xsetwacom: don't release modifiers unless explicitly stated
    
    modifiers are interpreted as "+keysym" only if the + or - are missing. This
    allows for configurations like "key shift" to work properly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dbec45bbd0d594a1f4229f6ad7e7a71890331305
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 15 13:33:51 2009 +1000

    xsetwacom: fix handling of unknown modifiers.
    
    Previous conditions were broken, key F1 wouldn't parse (key f1 would though)
    and providing a real modifier (Shift_L) would break too.
    Function keys (lowercased) are now handle like modifier keys, if a modifier
    couldn't be mapped check with XStringToKeysy if it's valid.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b9d5e7319f83ee608a216a17e9a59621bedb7e58
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 15 12:29:17 2009 +1000

    Release keys still down when a button is released.
    
    xsetwacom --set <device name> "Button1" "key +shift"
    keeps the shift key down until the button is released, allowing it to work
    like a real modifier.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b009e88c4ca2a72d286d15b44426150e792acd5d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 15 12:11:12 2009 +1000

    Fix up btnaction property setting.
    
    Buggy behaviour meant that unsetting a property got never removed from the
    property handlers. Since we only support one action per button anyway,
    simply overwriting the current one is enough.
    
    The static array isn't enough either, it's shared within the driver,
    hence updating the property on one device will update it on the other. Move
    it into the priv struct.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1721220517c2e5d4833ea1bb116b10c1e4e2fa62
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Dec 14 20:51:13 2009 -0800

    Set Touch and Gesture options during the configuration
    
    We moved the touch and gesture option check from usbWcmInit
    to wcmValidateDevice.c since usbWcmInit gets called every time
    the device is opened, which is unnecessary for option check
    in most cases.
    
    The Tablet PC Button option should also be dealt in the same way.
    But it requires extra defines to make it clean, which will affect
    more files in the driver. We'll do it in a separate patch later.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7c3c5c02cc80596f89a56b19eae40a28627162bb
Author: Ping Cheng <pingc@wacom.com>
Date:   Wed Dec 16 09:38:40 2009 +1000

    Enable Serial ISDV4 2FGT tool type in wcmDeviceTypeKeys
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c1c5e4c91b2474fc3bce7029181af61e369bd7d3
Author: Ping Cheng <pingc@wacom.com>
Date:   Mon Dec 14 21:29:53 2009 -0800

    Report time stamp for 2FGT gesture
    
    2FGT gesture needs to know the time that an event was received
    to decide what gesture mode users may want.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 44ee577ee561c4c27cf05c9c32e57b947972c982
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 15 11:56:29 2009 +1000

    xsetwacom: button numbers are one-indexed, store button action accordingly.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5e94aa26a263de8184695fb66a7e95e89a6df0bf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 14 16:42:27 2009 +1000

    Fix typo: xf86WcmVirtualTabletSize → xf86WcmVirtualTabletSize
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <pinglinux@gmail.com>

commit 7958f096a82d7c8c5f27b9a37ae1e9036343d5e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 14 16:50:55 2009 +1000

    Remove stray semicolon after if condition
    
    No wonder changing the TopY didn't work...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 05c37b09260ee0388cb4de2e0a5825df8e96b2aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 14 16:14:56 2009 +1000

    xsetwacom: don't crash on xsetwacom get <device name> without a param.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 70a1a852f62d9439cbd3ca09ca500cc95716d88a
Merge: bffe7c23 3977da27
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 14 09:01:42 2009 +1000

    Merge branch 'xsetwacom'
    
    Conflicts:
            src/wcmXCommand.c

commit bffe7c23591c0d1ae70e73a27fab669d4a190ade
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Sun Dec 13 17:28:59 2009 +0000

    Quiet gcc warning about not used xf86WcmKbdLedCallback function
    
    xf86WcmKbdLedCallback is used only for ABI < 5, so there is no need to define
    it for newer ABI.
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3977da27de9240041a64b7c8a1c731d2102b0104
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 11 11:54:16 2009 +1000

    xsetwacom: handle "on"/"off" for boolean properties.
    
    Reported-by: CJ van den Berg
    Tested-by: CJ van den Berg
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a8a0a65457d2f7516c5781bddba23acfdd263889
Author: Ping Cheng <pingc@wacom.com>
Date:   Fri Dec 11 14:21:47 2009 -0800

    Update TPCButton check
    
    Also updated some TPCButton related comments
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3c5ce9f7052c1a51208458c588c82bff56ca9ff2
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Wed Dec 9 20:17:17 2009 +0000

    Rename xf86Wcm* generic area check functions to Wcm*
    
    (xf86)WcmPointInArea, (xf86)WcmAreasOverlap & (xf86)WcmAreaListOverlaps are
    not part of X interface, so xf86 prefix is not needed.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 34042b54581ad02b64452c4a898f2307718ae511
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Wed Dec 9 19:56:47 2009 +0000

    Move xf86WcmPointInArea, xf86WcmAreasOverlap & xf86WcmAreaListOverlap
    
    Those 3 functions shouldn't be in wcmConfig.c as they have nothing to do with
    configuring the device. wcmCommon.c is much better place for generic
    functions.
    
    Signed-off-by: Przemo Firszt <przemo@firszt.eu>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 29aea09089a670141744843ea904afd500acc6c5
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Dec 10 20:37:24 2009 -0800

    2FGT data parsing was misplaced
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5040b6d74c10376edd755bbf58e97d4b45df9eb9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 11 13:25:39 2009 +1000

    Silence valgrind warning about unitialized bytes.
    
    valgrind doesn't understand the ioctl so it believes that the matching
    bitfields are unitialized. Simply init to 0 to reduce the noise.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5838c6a32dfdac7badd91e6ab3d20cef8dc2cb37
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Dec 10 20:11:04 2009 -0800

    Gesture for 2FGT devices
    
    Add Gesture option and defines for two finger touch devices
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e99834b9229734823fbe3fbc3618769224db6f37
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Dec 10 19:44:03 2009 -0800

    retrieve usb device and tool type from the kernel
    
    Touch device can be decided by checking if BTN_TOOL_DOUBLETAP
    is defined in the kernel or not
    
    TPCButton is on for all penabled TabletPCs
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a1c22a8457ad1902f313969e1f7822af61591c8f
Author: Ping Cheng <pingc@wacom.com>
Date:   Thu Dec 10 19:25:34 2009 -0800

    Move Touch and TPCButton options check
    
    Touch and TPCButton options are global.  They should
    be checked for all USB devices.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ca130158eb75947abe1d33378af9603850e975d5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 10 11:44:16 2009 +1000

    Don't set calloc'd fields to zero.
    
    xf86WcmAllocate uses calloc for internally used fields. There's no need to
    reset all defaults to zero, we can assume they are.
    
    Removing those that are initialized to zero reduces the noise, anything
    listed in xf86WcmAllocate has a default that's not zero and is easy to grep
    for.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f78f78897b8ae211b8dc8d1e9919b665c7f357ba
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 10 15:55:53 2009 +1000

    xsetwacom: handle string commands for TwinView setting
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b4fe899d1f23bf1c7caa44554b46ae64fbcf5be3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 10 15:22:43 2009 +1000

    xsetwacom: Be more flexible for multi-value properties.
    
    xsetwacom set <device> PressCurve 1 2 3 4 is the same as
    xsetwacom set <device> PressCurve "1 2 3 4"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5f442c7fd5b6f490d2ec9d4dc4efef5bc3319b00
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Dec 10 13:58:07 2009 +1000

    xsetwacom: enable -x and -s get flags
    
    xsetwacom -x get "device name" "option name" returns the matching line for
    the xorg.conf
    xsetwacom -s get "device name" "option name" returns the matching line for
    xsetwacom
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f4fbe2ebbb48391c3449fad756300c4f34e432ee
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 9 16:47:09 2009 +1000

    xsetwacom: implement xyDefault - reset to driver-internal defaults.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 73c09e8b574752239a6f6fb46da24f08e58347f4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 9 16:41:37 2009 +1000

    xsetwacom: plug minor memory leak in set()
    
    The data returned by the first xGetDeviceProperty was never freed.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6f515f56a456ff01b7df17874c1c55994518bcc0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 9 16:15:02 2009 +1000

    xsetwacom: support GNU-style for --list, --get, etc.
    
    The old interface without "--" is still supported, hence
    xsetwacom --list is the same command as xsetwacom list
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 39ed1971e19825cf164098c5896aba813fc99a1d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 8 17:05:25 2009 +1000

    xsetwacom: implement verbosity.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d5db667f469b7fe960039e6a486ff49fbced4158
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 17:20:36 2009 +1000

    xsetwacom: switch to use of named initializers.
    
    This slightly improves the mess that is the parameters list.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4b0b1c10ca53ce0b2206888fd14f93e65178b823
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 16:10:51 2009 +1000

    xsetwacom: implement get_mode.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d8e5b1f2f9aa6290de03bc9abbc593b58ba5d647
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 15:21:06 2009 +1000

    xsetwacom: support get/set rotate.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bcccd6657acc5fbd13c81461fe664bfeba693e77
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 15:08:44 2009 +1000

    xsetwacom: error out if a property offset doesn't exist.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 05200225c3f07e4745c933792a48683180bc02e6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 15:06:25 2009 +1000

    xsetwacom: a few parameters aren't implemented for get either.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6f85ae4365528d6ff7bd1bea27f68edaa40f1b5c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 15:05:20 2009 +1000

    xsetwacom: don't try to get/set nonexistant buttons.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dc990a09b03de914da94cb2423323b000a426217
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 14:59:38 2009 +1000

    xsetwacom: abstract extracting the button number.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4d2c3d19dce4822022fe84d699ce7b87d2da3f67
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 14:57:13 2009 +1000

    xsetwacom: implement "get Button1" for simple mappings.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 80afd187ee59c7adc04cf304dc428c1390d44f91
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 14:52:53 2009 +1000

    xsetwacom: Add special hook for 'get PressCurve'
    
    PressCurve returns 4 integers, needs a special hook.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 119da3793d77815f7d6419a7ea5d79fdbd95d9f1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 7 14:41:23 2009 +1000

    xsetwacom: split func into set_func and get_func.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0f722b17964e095cabcc8e6986034ab553093a32
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 4 16:20:24 2009 +1000

    xsetwacom: add "-" and "+" notation and modifier parsing to key sending.
    
    Keys prefixed with + are down only.
    Keys prefixed with - are up only.
    Keys without a prefix are down + up.
    
    e.g.  xsetwacom set "device" Button1 "key +ctrl c -ctrl"
    Is equivalent to lctrl down, type c, lctrl up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 63f4df5334c5daaa0c732b3336b58da23254a816
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 4 12:31:41 2009 +1000

    xsetwacom: keystroke button mapping support.
    
    Adds ability to map keys to button events in the form of
    xsetwacom set "device" Button1 "a b c d"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8b188a4b1016d61b7db00bc3a040436c4cbabf4b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 4 11:04:35 2009 +1000

    xsetwacom: Remove getdefault option, not implemented anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d65ba449ccb2372022dc2d5df8dfa7180c011d06
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 4 10:45:32 2009 +1000

    xsetwacom: remove CoreEvent option - not a driver choice.
    
    In server 1.7 and higher, whether core events are sent by a device depends
    on their attachment, not on a driver setting.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bafa7b22388c812dfffac3a64233912a55708317
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 4 10:42:37 2009 +1000

    xsetwacom: implement 'xsetwacom get' for basic properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5ac72a6e4499e3f85b1b9268a674454b4040cf4f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 4 10:16:35 2009 +1000

    xsetwacom: remove SpeedLevel and Accel options.
    
    Unimplemented, and they're not handled through the server's accel methods,
    not in the driver. That's not to say that xsetwacom can't provide an
    interface to the accel methods, but this isn't it it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 49957a6f2c2b61fd07aa46be53cab4dfa356e8f8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 14:10:04 2009 +1000

    xsetwacom: announce not-implemented options and parameters as such.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a0c314880f03e2d6fb2c37f1eda047f11de0f179
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 13:28:52 2009 +1000

    xsetwacom: fill in property for TPCButton, RawFilter, ClickForce.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1ae52b2bfeaa8534e36212b75c5731f7832a3e22
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 13:26:05 2009 +1000

    xsetwacom: implement rel/abs mode setting.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d0acbf567104542ee41694fca33ee6bd3c22fd5b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 13:10:36 2009 +1000

    xsetwacom: allow for multi-value properties (PressCurve)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 235ac5ebca6d0b15909c765df9a69751e9fda380
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 11:27:25 2009 +1000

    xsetwacom: Support xsetwacom set <name> Button1 for buttons and references.
    
    Supported functions:
    xsetwacom set <name> Button1 4
    xsetwacom set <name> Button1 "button 5"
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 08613765c18bc1dc8c14a7e3fed3e95e7f879973
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 16:38:42 2009 +1000

    xsetwacom: Add property hooks for xsetwacom set/get support.
    
    This uses a similar principle as synclient, the option table contains the
    offsets into the matching properties, these are automatically changed.
    One exception - some options xsetwacom provides don't map into a concreate
    property, for these special functions are required (e.g. all the ButtonX
    options).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1efdc8606b59c90167967b074230c9e2a76c9edf
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 10:43:56 2009 +1000

    xsetwacom: Add find_device() helper function.
    
    Does pretty much the same as the one from xinput.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b456d47fef3b56a2b62f026e6abd04f91c1b7b40
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 13:35:46 2009 +1000

    xsetwacom: Implement xsetwacom list.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 087655d80d8dfb48ea395b6ae41e85a580f3851a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 11:43:46 2009 +1000

    Add tools/xsetwacom, currently a stub.
    
    config.h includes xorg-server.h and it's 64 bit magic. xsetwacom can't use
    this magic, it needs to use the 64-bit interfaces provided by Xlib and thus
    the matching sizes for all structs.
    
    Instead of including xorg-server.h in all driver source files, conditionally
    include it depending on whether WACOM_TOOLS is defined or not.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e1cbd668de52ff3f35c8cc1ca362adc019935288
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 8 15:51:08 2009 +1000

    Support future udev backend.
    
    udev support isn't actually in the server yet but it will announce itself as
    server/udev in the source. If so, hook onto it in the same manner as onto
    HAL.
    
    This allows for easier testing with a udev-enabled development server (which
    is already in Debian).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bad2015301a83c0c50d18c177d57b1105a173673
Author: Enrico Ros <enrico.ros@gmail.com>
Date:   Thu Dec 10 02:30:46 2009 +0100

    Add USB devices 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, mapped to the Bamboo tablet.
    
    Maybe it will be better to map them to the Bamboo Fun functions, even if the
    commercial name is different. Model checking needs to be cleaned here.
    
    Applied most of the wcmUSB.c.patch -r34 as found on UbuntuForums.
    
    Signed-off-by: Enrico Ros <enrico.ros@gmail.com>

commit 21526f944f5f7731ce6a661796571c0dfbe802e7
Author: Enrico Ros <enrico.ros@gmail.com>
Date:   Thu Dec 10 02:27:51 2009 +0100

    Don't crash if model-specific functions are not defined.
    
    If the kernel supports a newer device, not handled by this driver,
    avoid crashing the X server.
    
    Signed-off-by: Enrico Ros <enrico.ros@gmail.com>

commit 3149204e553de56f2d9b47990878ff17a3e0f8a4
Author: Ping Cheng <pingc@wacom.com>
Date:   Sun Dec 6 15:41:16 2009 -0800

    Add new USB devices
    
    Updated comments where appropriate for the new devices
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e965ac7d3d5be6721063f0a4ca28cfd53afac28a
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Dec 2 15:51:21 2009 -0800

    Remove unused comments
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d4c3aef2226f39e346fc9b7c22e54a4e97889458
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Dec 2 14:55:45 2009 -0800

    Spin-off usbChooseChannel from usbParseEvent
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e9984c74f00afb7f80cb925d3282fb8151854161
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Dec 2 13:23:30 2009 -0800

    Move xf86WcmReady from wcmCompat.c to xf86Wacom.c
    
    xf86WcmReady is only needed by xf86Wacom.c. We move this
    routine from wcmCompat.c to xf86Wacom.c so we can discard
    the unnecessary wcmCompat.c.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f7aaaf8d06902ec32e64b252e28792b6d9bc0c89
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Dec 2 13:13:18 2009 -0800

    Move xf86WcmWait from wcmCompat.c to wcmISDV4.c
    
    With the removal of regular serial device support,
    ISDv4 is the only file that needs xf86WcmWait call.
    The wcmCompat.c file is going to discarded in the
    next patch.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 35322750898d1ba3c0b74f197b6d60a39b7ad781
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 2 13:58:11 2009 +1000

    AC_TYPE of 0 is a valid type for wheel events.
    
    3cfc3f5df754c6266127e3addbd6ee84c8f471d9 introduced button actions. Wheel
    events by default are simply assigned to a button. In the old code,
    AC_BUTTON was 0, now AC_BUTTON is a specific event mask. Hence we need to
    cater for both AC_BUTTON set or unset - they just happen to produce the same
    result.
    
    This is a quickfix, the wheel event processing seems it could use some
    cleanup.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c87e328b047e66969eef1c47f3ac9a6d3b76be3d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Dec 1 13:29:25 2009 +1000

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

commit 3cfc3f5df754c6266127e3addbd6ee84c8f471d9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 25 17:02:34 2009 +1000

    Provide "Wacom Button Actions" property and associated button actions.
    
    This patch adds a new property that's a list of property references on the
    same device.
    The property contains WCM_MAXBUTTONS atoms, each of which provides a
    zero-terminated sequence of actions to be performed when that button is
    pressed (but not when released).
    
    Possible actions are a combination of AC_* flags and - if appropriate - a
    value. For example, assume a property with the following values is set for
    "Wcm Button Actions"[1]:
    
    AC_KEY | AC_KEYBTNPRESS | XK_A
    AC_KEY | XK_A
    AC_KEY | AC_KEYBTNPRESS | XK_b
    AC_KEY | XK_c
    AC_KEY | AC_KEYBTNPRESS | XK_c
    AC_KEY | XK_c
    AC_KEY | AC_KEYBTNPRESS | XK_Control_L
    AC_KEY | AC_KEYBTNPRESS | XK_c
    AC_KEY | XK_c
    AC_KEY | XK_Control_L
    AC_BUTTON | AC_KEYBTNPRESS | 1
    AC_BUTTON | 1
    AC_BUTTON | AC_KEYBTNPRESS | 1
    AC_BUTTON | 1
    
    If button 2 is pressed on this device, the device sends key events
    equivalend to typing "Abc", Control+C and finally executes a double-click on
    button 1.
    
    If a button has no action set, the default button event for this button is
    sent.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 365338032da115e45d6d0d076323f59bc17291b2
Author: Tomas Carnecky <tom@dbservice.com>
Date:   Tue Dec 1 01:13:25 2009 +0100

    Fix a crash that would happen when a sysfs device doesn't exist
    
    Signed-off-by: Tomas Carnecky <tom@dbservice.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 59754d40db384f0d8cd8880fb07a56f43666a1b4
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Nov 28 12:19:58 2009 -0800

    Clean up wcmPktLength code for ISDV4 devices.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ee65ca1271a59c5704a4c5a83c9b51ca09c5c3dc
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sat Nov 28 12:00:28 2009 -0800

    Move xf86WcmOpen from wcmCommon.c to xf86Wacom.c, where it is supposed to be.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 94dcb512294a8f229d40a16a5f84c5d61d84ceef
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 30 14:05:53 2009 +1000

    Move wcmDevCls check to xf86WcmOpen, where it belongs.
    
    Get rid of the confusing "usbDetect: can not ioctl version" message for
    ISDV4 devices.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a3b37e27514c3fb26fd000035eb4a63272f31123
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 30 13:52:20 2009 +1000

    Let default catch all hotplugged serial ISDV4 devices
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 693913e55b3244c7728737e55069c3ffc5c6c16f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Nov 27 20:08:52 2009 -0800

    Remove ForceDevice option - now unused.
    
    Since we only support ISDV4 serial devices with this driver, there is no
    need to check the "ForceDevice" option any more, which was used to
    distinguish ISDV4 from regular serial devices.
    
    We check if the device is a serial device or not by accessing its file
    descriptor directly.
    
    Device Class is assigned to USB by default.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0c9419360da976c6580af4615b244bc112d748cd
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Nov 27 19:49:17 2009 -0800

    Support serial hotplugging.
    
    USB devices use the KEY_* bits to determine the capabilities. Serial devices
    fake up those bits depending on the ID announced. Then pass those bits
    between wcmConfig.c and wcmValidateDevice.c
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 54387e477904cadf3a0ebfc37567f808d4b94cce
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Nov 27 14:25:36 2009 -0800

    Only check device type for xorg.conf devices, not HAL devices.
    
    HAL devices are hotplugged internally and the type is assigned based on the
    device's capabilities. xorg.conf devices are user-specified and need to be
    checked for validity.
    
    Signed-off-by: Ping Cheng <pingc@wacom.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f2e437e693f1ee482d112e69efdb0a383912c682
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Fri Nov 20 22:37:31 2009 -0500

    Don't crash if wcmIsAValidType returns False for all types
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cd0ce8d3fb27e4e6abbec22c02613c89195e9aa0
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Thu Nov 26 01:25:21 2009 -0500

    Support sending keys on xserver-1.6
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1965720a3050b3d331da580f869d0c3eeed869d0
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 26 14:43:02 2009 +1000

    Add two-finger touch support and unify touch support for the new protocol.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8a9fe4a8e22bd20541a0887e74bfe054bf8fca82
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 26 14:32:58 2009 +1000

    Add defines for various ISDV packet lengths.
    
    Some of these defines aren't yet in use, they will be once new protocol
    support is added (see future patch titled
    "Add two-finger touch support and unify touch support for the new protocol.")
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 680958e276be6a5dbf659135d3e19bc4c0f68f33
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 24 14:27:43 2009 +1000

    Convert a failed ioctl error into a warning only.
    
    With hot-plugged devices, we don't know for sure if the device is an USB or
    serial, so we default it to USB. If the device happens to be a serial
    device, the ioctl fails with EIO and we try to add it as serial device.
    Hence a warning, not an error.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a6f0df89db2ef1f66cd42d57b19f902edbf23dc7
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 12:05:19 2009 +1000

    Remove uniq field - not required.
    
    We don't allow multiple devices from the same port, and wcmCommon already
    tracks the parent/dependent devices for us. The uniq field is superfluous.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a20fbdd32d14da17933d7bf69fa8542f51febfda
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 19 16:25:48 2009 +1000

    Move the ARRAY_SIZE macro into a header file, it's useful elsewhere.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a653c3419f7c5854d6fabaf9c4a70ee4308e99dd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 17 14:58:17 2009 +1000

    Init the key class struct for the device (and send keys) on ABI 7.
    
    Force a hardcoded keymap to semi-protect against local keymap changes (i.e.
    other layouts). This doesn't protect against run-time changes of course, so
    it's arguably pointless if we expect the session to set the RMLVO.
    
    This patch restores key sending for the tablets as working before the switch
    to input ABI 7 removed that bit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 65b6913046c07f38e348d9944a1915785cbbbb48
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 25 16:15:43 2009 +1000

    Remove XWACOM_PARAM_* definitions - unused now.
    
    They are required for the old configuration interface through
    DeviceCtrls. With the switch to properties, these defines are now unused.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4aa6670cbe4403a39c26ba1ac518af9edbc6abb7
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Tue Nov 24 20:57:31 2009 +0000

    Fix comment - xf86WcmInitalprivSize is actually xf86WcmInitialToolSize
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit afa06f3e7186aff4d0f104492a02c44f6132eaf8
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Tue Nov 24 20:50:39 2009 +0000

    Remove duplicate comment for xf86WcmRegisterX11Devices.
    
    This function still exists, a duplicate comment got accidentally added in
    425351f22821ade814f7f6412d18c1eb25904661.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9c6d34592f75602cfcfa6f61c631aa60d2ee5284
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 24 15:59:01 2009 +1000

    Reset local->private before calling xf86DeleteInput.
    
    If local->private is not NULL, then the server will attempt to free it. A
    rather bad idea if it's already been freed by the driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5efc1770a0039994d6ff111d2050bf0c1324b3b3
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 12:07:03 2009 +1000

    Convert some serial error messages into warnings.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit eda948d9931aba1396419ec799a1654d20cd7898
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 11:16:46 2009 +1000

    janitor: Remove commented out include directive.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8d9b358c2454cacbeabb00133af0ebe7bc9fa13f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 11:13:18 2009 +1000

    janitor: Fix indentation of a debug message.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5c39a35811eaa5232888aa55baf0a598933be610
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 10:59:00 2009 +1000

    Only support baud rates 19200 and 38400 for ISDV4 devices.
    
    9600 is gone forever.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fefa70d932909f2bb7939e05275e30ac7ddba17f
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 10:57:04 2009 +1000

    If the ioctl failed, return FALSE for xf86IsWacomDevice.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9e59900e6fbdc2899524ce258e694f25795d8539
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 10:55:52 2009 +1000

    janitor: Leave loop early if we found a pos. result.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ec2db399def8336275ec12089a86599194667573
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Nov 23 10:54:25 2009 +1000

    fdi: compress all WACf0* devices into one.
    
    HAL's contains_outof does substring matching, WACf0 should be enough.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 68b5cd37f2269a398d95866a4d714c66a57c6b36
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Nov 23 08:33:32 2009 +1000

    fdi: compress the wacom tablet into the first condition.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 9e714baf9b84f39eb95c51dda7885cff0afe2704
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 20 12:19:55 2009 +1000

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

commit 413d600b2fe7f19149ab4c008fa47f697de4895b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 20 09:34:10 2009 +1000

    Fix comment in configure.
    
    We need macros 1.3 for the XORG_DEFAULT_OPTIONS
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 11a79f35ef6d38860044caa36e9fee5de919d78c
Author: Przemo Firszt <przemo@firszt.eu>
Date:   Fri Nov 13 17:53:04 2009 +0000

    Remove duplicate of #include "xf86Wacom.h" and #include "wcmFilter.h"
    
    [squashed-in: removal of one more wcmFilter.h include directive]
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6b51249ad0dd39aa0c6b8ce87273ad2b3fd0cea8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 18 14:22:52 2009 +1000

    Purge driver-specific speed/accel.
    
    The server provides quite complex accel methods since 1.6, let's just use
    them instead of the accel provided in the driver (which happens to be a bit
    crude).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Acked-by: Ping Cheng <pinglinux@gmail.com>

commit ee4b4d3884f93a64941c313eff515f95757c4b96
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 18 16:05:06 2009 +1000

    Remove defines from the ghost of christmas past.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 522f578563bbff95a9597c1dcaad61d67ed0cd74
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 18 16:03:09 2009 +1000

    Remove REVISION HISTORY comments.
    
    That's what we have git log for.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2082ebcb1afe4a46ecc4ce3d34c5f4479ad1bcef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 18 14:21:02 2009 +1000

    Fix long-standing typos in applying speed factors.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>

commit 7d51bf5a32d60b9a022daad5fd1d7868ac9aaee1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 18 11:07:55 2009 +1000

    Add GPL document to dist tarball.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b50d86ab73c59b34514165985784d07366aa0261
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 18 11:06:26 2009 +1000

    Remove spurious executable bits from source files.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d7dcb7d873c59d3603007565d073b70f04ecea53
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 11 14:31:57 2009 +1000

    Remove some if 0'd code.
    
    If a chunk of code has been "not quite ready for prime-time" for over 6
    years, it probably won't be anytime soon.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a34e42d7e640d2c3fa695a6eac905c0891375bc7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 12 16:26:13 2009 +1000

    If a device is specified, don't check for a wacom vendor id.
    
    Testing for the vendor ID is useful when using auto-dev probe (though it
    might return false negatives). If a user was capable enough to specify a
    device option, assume they know what they're doing and just try to init the
    device.
    
    This ensures that the wacom driver works against serial devices that don't
    return a vendor ID. And it ensures that the driver can be used with other
    tablets by different vendors but a similar behaviour.
    
    Reported-by: Thomas Jaeger
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 44d8d03e7ffac87a845fc53a28b935afc2247894
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Fri Nov 13 12:54:07 2009 -0800

    Remove a duplicated #ifdef in wcmValidateDevice.c
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 584131b9f6b86a0365663f4ae377cfb155bb5bb7
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Nov 12 20:37:28 2009 -0800

    This patch allows multiple tools of the same type to be defined for one device.
    
    It is a feature required to define multiple areas for the same physical tool
    or to distinguish the same type of tools with different serial numbers (for
    V5 devices).
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 183baf7a43c1d204401fd21eab7e6ae0b9078b6b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 13 08:35:02 2009 +1000

    Fix an error message to list the device name.
    
    (and add the vim tags to the new wcmValidateDevice)
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a493c5946174f018b6b8fdc312bd7eebc71944f2
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Wed Nov 11 21:10:55 2009 -0800

    retrieve all tool types from the kernel
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1dce369ffa34e07a88a87b681d904f0ebd8331f1
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 10 21:46:08 2009 -0800

    Spin-off validatation from configuration.
    
    This patch also retrieves touch type from the kernel.
    
    Other types (stylus/eraser/cursor/pad) can use the same mechanism
    to retrieve type from kernel.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 96d28dbbe2bf90092c20a52aabdac728a8708e7b
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 10 20:06:25 2009 -0800

    report device id for protocol 5 devices
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e3ed0639d3028ce0171b793a6227b4da40e8b2db
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 10 20:01:25 2009 -0800

    process second finger touch data
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6bb186cb486310b3df687b549af13cde25684120
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Nov 10 19:54:41 2009 -0800

    share device size and resolution between penabled and touch of the same product ID
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72647504a8f8468ed9b0bdd5743fa543043ff546
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 15:47:37 2009 +1000

    Add wacom-properties header file.

commit c8bfc5fc86b4cda953d63e31260ce84a0aed5b59
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 10 17:07:05 2009 +1000

    Add 0xFF product as catchall for unknown devices.
    
    If a device is not in the table of known product IDs, just try to init all 5
    possible devices;
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3684235b35897d41f3604c9677a4de2ae81f9be5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 10 16:51:57 2009 +1000

    Don't fail just because it's not a wacom tablet.
    
    Wacom is right now the best driver for touchscreens. Don't require the wacom
    vendor ID, we just don't get to get all the cool autosetup stuff.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 58aadf9bcab9414d25d49061144bcfdffb8f1a0f
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Sun Nov 8 12:49:02 2009 -0500

    Fix TPCButton option
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ad84294c55803fbb7c4074e88d257e0a7701f9d1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 13:55:45 2009 +1000

    Export tool type as Wacom Tool Type property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 520f07032ac2f744c3e6d920f12df43671694ddb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 11:11:10 2009 +1000

    Remove "grabbed event device" log message.
    
    The default behaviour is to grab the device, we only need to know about it
    when it fails.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 60983f1ee56670096122bea376a0756a522ad1b6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:55:13 2009 +1000

    Move auto-dev probing checks into small static function
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 98bc71ad5083e97fa9da47519b25f2e35c5c8b18
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:51:01 2009 +1000

    Move the uniq assignment into wcmNeedAutoHotplug.

commit 88251543dd94cf237072322421255b156ed797dd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:35:47 2009 +1000

    Remove a needless call to xf86CheckStrOption
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2313e4ade726d81e5abd13fb868fbb4679140700
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:23:33 2009 +1000

    Remove log spamming debug message.
    
    The log already tells us when a module is unloaded.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a54fbd37fad90f06e31493a71c2c32d9b38f7f37
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:20:54 2009 +1000

    Rip most option parsing out of xf86WcmInit.
    
    xf86WcmInit is quite complicated already with hotplugging, etc. Rip the
    endless lines of option parsing out into a separate static function to help
    keeping an overview of xf86WcmInit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit caeae6bf04cfc5dc8fef614143f7846819a69423
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:08:29 2009 +1000

    Remove some more useless defines.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ffc1137a79d77d5a5557bac138c7804e0a1409d1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 10:00:29 2009 +1000

    Remove Xfree86 4 serial wrapper defines
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 5d89d256862e5cba64c1349899003021c2f359d0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 09:53:09 2009 +1000

    BaudRate only needs checking for ISDV4 devices.
    
    Remove BaudRate from default_options, supply as default to xf86SetIntOption
    instead - has the same effect.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d90519b2f95c5da17659a1efbd41f1a0039435bc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 09:49:56 2009 +1000

    vim tags for the coding style.
    
    Wacom uses a different style than evdev, synaptics and the server and I'm
    sick of having to manually change it each time I open a file.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ae6fa7e8da68e2e487da5ad84f9d924204a5e1d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 09:49:23 2009 +1000

    Don't accept invalid Rotate and ForceDevice options.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 613d455c118b92ba784aff007df57bd6bac92196
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 6 09:14:29 2009 +1000

    Remove unecessary debug statements.
    
    Any option that is set by the user will show up in the log if
    xf86SetFooOption is used. All other options are built-in defaults.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit be806b5487db9c592366237a55651e53fe7d7c50
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 14:53:03 2009 +1000

    Support auto-hotplugging in the driver.
    
    If a device is added without the "Type" option set (a previously invalid
    configuration), it is assumed to be hotplugged. Check the list of known
    products for the supported tool types and init a new device for each tool
    type.
    
    All devices added as a group have a 'uniq' identifier (current timestamp).
    If the parent device is being removed, check for still-existing devices with
    the same uniq and remove those too.
    
    The server closes devices in-order, since the dependent devices are added
    before the parent, this is a noop during CloseDownDevices.
    
    The .fdi file doesn't to merge the type now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e8e0011c31de0415aeff993c17424c9fd720d33f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 16:54:09 2009 +1000

    On unplug, remove the device from the commonWcmDevices list.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dac8e0a108df0fb045dfda517f814fd37d5aa09e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 15:47:45 2009 +1000

    Abstract product lookup into a static function.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fd9230a2efcfd356690847ae543f336b6ab4c6d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 14:59:03 2009 +1000

    Break out of the loop once we found a valid type.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c13d97b0de5acfcddcb378d117c8d7652e45d4e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 11:52:57 2009 +1000

    Pass type into wcmIsAValidType.
    
    Spares the need to check the options twice for the type set.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d0c6c701a06bc6a43b37b84130603f6f553009fa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 15:45:55 2009 +1000

    Use ARRAY_SIZE macro instead of manual sizeof().
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 78499b39f6270f6e9e04d750575695e07224d32e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 11:09:59 2009 +1000

    Remove needless NULL checks before xfree.
    
    xfree handles NULL pointers fine.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 73e8d0640af9ec8fe587454c316e0426e418dc89
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 10:33:56 2009 +1000

    Don't overwrite the name with the XI type.
    
    Since the local device is now the actual device, not the fake local, we
    don't need to set the name here. Also, the name is the identifier, I don't
    know if it ever actually was used for the XI defined names (wich are the
    type_name instead).
    
    This has the potential to break clients that were looking for the "Wacom
    erasor" type name instead of the XI defined types ("ERASOR"). If so, a
    simple change fixes this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit eda93933e1d0e2cc6a51968c02bfebc542fc88c3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 4 17:02:23 2009 +1000

    Remove fakeLocal init device.
    
    Instead of allocating a fake device at the top of init and then using this
    to check a few options, just allocate the device itself. If it fails, remove
    the device again.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 91ec102688fd5b041436224975c620dc25d9e5c9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Nov 5 10:18:55 2009 +1000

    Fix a comment
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c5d5b1e16272f5e330801241448c5e02ad01a89e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 4 16:44:33 2009 +1000

    Move allocation of type out of xf86WcmInit
    
    No semantic change, just trying to reduce the xf86WcmInit a bit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 23bbbfe09f502fdfa89a64d7e2cfca9299948731
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 16:23:45 2009 +1000

    Unify log messages to a common format.
    
    <device name>: blah blah
    with local->name used consistently as device name where applicable.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e4502dd8774ba43beeacbaa87499b1b08a244800
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 16:18:21 2009 +1000

    Localize lookup for other devices of the same device.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c5c8acd9d012c151a7d4919f5d1a941807c4c2cb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 16:03:53 2009 +1000

    Streamline xf86WcmAllocate a bit
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 506d8357f769a6fbc125899c433c7ea8cc92729f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 15:58:16 2009 +1000

    Don't cast xalloc returns.
    
    Not needed, we have void pointers these days.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 53de2f1a6d8fb6050d8ac2e238fd9fb07c754923
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 15:38:49 2009 +1000

    Abstract the vendor ID into a #define
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7587c95411cd41f3c63f8ed87f3832b79ba490e1
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Oct 25 21:03:59 2009 -0700

    Validate tool type before adding it
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ccbef11c5cb1e4426543a7d121de842c50d29fa1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 15:20:13 2009 +1000

    Silence compiler warnings if DEBUG is off.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d2c46348880b62a47fcad777cb7251866aa0900f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 16:47:22 2009 +1000

    Use the SYSCALL macro for opening the fd
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit af163fe3106c834418e772eb94a10a5d250950cf
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Oct 25 20:54:09 2009 -0700

    Avoid adding duplicated devices/tools from hotplugging
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 12cf6e8a97e6c1e02a77590b96da56ccc9f1d33b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 3 14:41:43 2009 +1000

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

commit 7fe803bef235516ac6778234768c5d3077a539a6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 15:47:18 2009 +1000

    Add --enable-debug to configure
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c79c899c9609faf3a0ab4828745114a8667432ef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 30 16:07:33 2009 +1000

    Fix three typos in debug statements.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 41dc915563a453e2e35aef34dad8e8164d9e6699
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 30 16:06:30 2009 +1000

    Remove remainder of old XWACOM_PARAM code
    
    This code has been replaced by the properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 08a1149461794a4a35d93dc3093012ffe529cd8c
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Oct 29 22:28:16 2009 -0700

    Touch doesn't have pressure and distance
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 76bbaf6bb473e7194a5b096a078df76e52e4e587
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 15:51:06 2009 +1000

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

commit 61706e52b757582beebdc95fb9af35dfeec86f4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 30 15:52:35 2009 +1000

    Use xf86Msg instead of ErrorF
    
    ErrorF() is the one used by the DIX, xf86Msg is the driver API.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15ddfbac957d6e60b4a7c7cbd57495bfaf9d3bfa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 14:28:40 2009 +1000

    Remove identification string, use the package version instead.
    
    The default output for the driver loading is:
    
    (II) Module wacom: vendor="X.Org Foundation"
            compiled for 1.6.99.901, module version = 0.9.1
            Module class: X.Org XInput Driver
            ABI class: X.Org XInput driver, version 7.0
    
    where the module version is now filled in by the package version set in
    configure. An extra identification string is superfluous.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 428fc3e3ceb7adab7da5f6ecff90849ef174013e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 13:41:48 2009 +1000

    Remove unused extern declaration
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 676b80bfe02a6447fe289d46c64ab4037b9c761b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Oct 30 11:07:44 2009 +1000

    Add the sample fdi file.
    
    Distributions most likely want to fine-tune this fdi file and apply their
    custom configurations. For those building from source without the distro
    package installed, a sample FDI file helps to get the driver going.
    
    Taken from Fedora, but with the hal callouts removed. We're trying to fix
    this in another, more flexible and less HAL-dependent manner.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ae66fc0e2ec0afd4f8e376ba5c15dd3e93bfeb30
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 15:33:43 2009 +1000

    wcmUsb: use struct input_absinfo instead of an integer array.
    
    kernel 2.6.31 introduced a resolution field in the absinfo struct, thus the
    nValues[5] array wasn't large enough. This again leads to a memory overrun
    and random crashes on init.
    
    Instead of increasing nValues, replace it with input_absinfo which is the
    correct struct to pass in anyway. Do the same for the sID array (of type
    struct input_id).
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a51f9e1872c1d564d11775dd3ad814aa38145ad2
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Oct 20 11:43:42 2009 -0700

    Add touch support to USB TabletPC's with touch feature Prepare for Two Finger Touch (2FG) support
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e39c346c84812df1eef1b3aa932718dea1dddf3a
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Oct 20 11:15:31 2009 -0700

    Clean up kernel 2.4 support debug logs and comments.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0b6891c4ed46882da46f6ee85eab9cf6f4a70942
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Sun Oct 18 16:06:33 2009 -0700

    Add backup (*~) and patch (*.patch) files to .gitignore
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 10e0036f5b398b08ddddcea1ace534e1188e1abe
Merge: afdf5565 3718c605
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 14 10:51:29 2009 +1000

    Merge branch 'property-rework'

commit afdf5565895a4c340681e9dc48b63a390f8eba9d
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Oct 12 14:45:32 2009 -0700

    Fix a problem introduced by "Remove kernel 2.4 support" patch
    
    Brought the serial number if-clause back since the Intuos
    CintiqV5 series need serial numbers to distinguish
    tools and to keep 2 channels of records.
    
    Also added an else-statement to catch and discard the
    unexpected serial number equal zero case.
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 872b6a3f191a65a929d18f3ff9348ab27da67a76
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Oct 12 14:41:38 2009 -0700

    Update Authors for xf86-input-wacom
    
    Signed-off-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3718c605520fd1d992e0fdedbdc1136581b808e5
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Oct 13 09:07:00 2009 +1000

    Clean up more properties.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4fd2af39a5432eaad03af6a48cd16988a165fbbb
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Mon Oct 5 12:32:37 2009 -0400

    wcmTouch and wcmTPCButton should be distinct properties
    
    Expose wcmTouch as "Wacom Enable Touch" and !wcmTPCButton as
    "Wacom Hover Click".
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 14ded312e419ebd35ead237c25c6fbdd8ddb0639
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Oct 8 14:41:42 2009 +1000

    Whitespace fixes, shift back by 4
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c630873429e7dac0eafd3b966a0a515f861b7bb9
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Thu Oct 8 14:24:55 2009 +1000

    Add m4 to gitignore
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ebc81447dd251b401455768fe3d3a274ec9d58c0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 16:42:12 2009 +1000

    Reduce the number of available properties and standardize the naming.
    
    Instead of a property per xsetwacom option, compress them into groups like
    "Wacom Area" (instead of TOPX, TOPY, BOTTOMX, BOTTOMY).
    Since this isn't handled quite as simply as looping over the params, there's
    a fair bit of moving code in this patch.
    
    TODO: some properties need the transition.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72329bc103009bb84d574f57c3fac897f3c7fa77
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Sep 29 16:56:20 2009 +1000

    Remove XYDefault property - this can be implemented in policy.
    
    This option is from xsetwacom to reset the area to the defaults. For
    properties, we don't need an extra one, we can implement it as a policy if
    invalid ranges are given for the area.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit edbc0bfa2d434af21966716d07d1a65454313cf6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 16:35:11 2009 +1000

    Remove NUMSCREEN property
    
    Querying the number of screens is not the driver's job.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 4d84bf25a660c58795bbf4e4df86d855932c6405
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 16:32:31 2009 +1000

    Remove STopN and SBottomN properties.
    
    According to http://linuxwacom.sourceforge.net/index.php/howto/all, these
    are parameters for xsetwacom to query the screen dimension. Not a property.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e40198019a3ffad1f0d77c3eb2fcae49343ea870
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 16:21:16 2009 +1000

    Remove property for speed level and accel settings.
    
    We have sophisticated cursor accel in the server now, it is better to wean
    users off driver-specific accel methods and start using the server ones.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a46c4719042257356c0aaa9e43c9d4e45126b33
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 15:34:17 2009 +1000

    Remove debuglevel properties.
    
    Something like this should be a generic property for all drivers. Let's not
    set a precedence by having a wacom-specific one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit dbca87114b4699c2db9046fb54d4af492004b6d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 15:33:15 2009 +1000

    Remove Mode property, this is still controlled through DeviceCtrls.
    
    A property like that should be in the DIX anyway, it applies to all devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 72815e638efe8176a2fd26b8af17f5a432b29b47
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 25 16:30:38 2009 +1000

    Remove coreevents property - not the driver to decide
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f834202e64015a355ca85e87b409c38fdb24a4d4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 25 16:28:35 2009 +1000

    Don't expose button mapping as multiple properties.
    
    Run-time button mapping should be handled in the server, not in the driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e0238a007d26ddc13ee9c3006d9be35ed336ab9b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 15:41:56 2009 +1000

    man: comma-separate authors.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3c7961d18f44fc290b57f68c1c9be6168cb11ece
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Sep 28 15:35:22 2009 +1000

    man: fix two typos.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 61307141ea2796a99ebc59072e50f8c71943b145
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 25 15:55:06 2009 +1000

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

commit 83780b99919d5180deeac6e210a59acd7be30268
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 25 16:03:48 2009 +1000

    Use xorg-macros 1.3 for XORG_DEFAULT_OPTIONS
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit bc76d8fd9361637113865d94fb97596414206b7b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 25 16:01:20 2009 +1000

    Remove the Changelog file, it's autogenerated
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b8a15ce6fa7157a6c1d565184c0e65ef91b3733e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 23 16:23:42 2009 +1000

    Don't load the kernel module from within the driver
    
    In the default configuration, we expect HAL to notice the kernel device,
    tell X about it, then X loads the driver which then tells the kernel to load
    the driver for the device that HAL will notice.
    
    Wait. what?
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c182aa1e14096ae3543f4095792bef00404ae7f5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 23 16:21:21 2009 +1000

    Remove kernel 2.4 support
    
    We only support X server >= 1.6, let's assume the userbase running 1.6 on
    kernel 2.4 is negligibly small.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 852c8db7d68ba43dd69e665563038d18ac7b0b48
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 23 15:56:08 2009 +1000

    Don't call DEVICE_OFF from Uninit.
    
    Once UnInit is called, the server has already called DEVICE_OFF for us.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b7cd27c45a56462e4aa87abe194ff370a47a0b6e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 23 15:55:00 2009 +1000

    Remove erroneous comment about server >= 1.6 crashes.
    
    The server only crashes here if local->private is freed but not re-set to
    NULL.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit b3cba4e3543a98103282ba8fa55bf38012d23d9f
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Sun Sep 20 20:24:57 2009 -0400

    Remove support for old serial devices
    
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit df3c61392f82dac42a04aadc5ae79daff720d3c4
Author: Thomas Jaeger <ThJaeger@gmail.com>
Date:   Mon Sep 21 03:23:09 2009 -0400

    Read 8-bit and 16-bit properties correctly
    
    Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 92afc8cc94467dd83b5a58e752eeb72e5e91863a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 17 15:43:31 2009 +1000

    Remove empty unused src/xdrv directory.

commit 212bd0e8d8f94c37521faa25bde71da22340ffb3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 4 08:21:21 2009 +1000

    Fix up three remaining usages of MAX_BUTTONS.
    
    Reported-by: Ping Cheng
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e39ef59217ff608ebfad797074833d7b06dde92e
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Tue Aug 4 08:16:16 2009 +1000

    Add .gitignore file.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0983c3447fbe918a275eb98f46f666a631e56f79
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 15:22:10 2009 +1000

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

commit 7d149431c63c43c0ab5b046387b565488ea3d159
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 15:19:24 2009 +1000

    Rename MAX_BUTTONS to WCM_MAX_BUTTONS.
    
    MAX_BUTTONS is used and exported by the server. It is also currently set to
    256 whereas the wacom driver's MAX_BUTTONS is 32 and used as a mask.
    Re-using MAX_BUTTONS from the server results in fake button presses when the
    mask overflows.
    A simple renaming adds some sort-of namespace and avoids this issue.
    
    Rename MAX_MOUSE_BUTTONS as well for consistency.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 802d5b8e181c3ba4e57732bf5d1c8c7de893dc93
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 15:02:01 2009 +1000

    ifdef out custom keysym handling for ABI_XINPUT_VERSION 5 and greater.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ab9f03ea439af8c5ffdbfb32d72aeb126bac2688
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 14:43:12 2009 +1000

    Initialize axis and button labels for XINPUT ABI 7.
    
    Button labels are currently just zeros and some axis labels are as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit cccfe837c311010a47eeec9338283e69f6081de6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 14:10:13 2009 +1000

    Disable key strokes from the tablet.
    
    This needs a redesign, the bits it used to hook into are gone from the
    server.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2e01d5b83ae710c4dccfb5d79c7154c38419b9f3
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Aug 3 13:32:38 2009 +1000

    Purge old ABI support from the driver, add property support.
    
    This is unfortunately one giant commit. It removes support for pre 1.6
    servers and the various ifdef's around the code to protect against funkyness
    of the various X server versions.
    
    This patch also adds property support to the wacom driver.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6c5b33444b2e6d7acacaf200dbf7bafc676328cb
Author: Ping Cheng <pinglinux@gmail.com>
Date:   Mon Aug 3 13:15:47 2009 +1000

    Set up the default xf86-input-* directory structure, autotool.
    
    This version does not build as-is due to missing include files and headers
    that are about to be purged anyway.
    It does pass the autoconf stage.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0e7c5819592680b8f75e29ad3d97f85bf4fd8da0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 12:52:26 2009 +1000

    Purge all but the X driver from this repository.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3b90a8c834ebd15b8d3bdabe46497080d820ce23
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 3 13:00:07 2009 +1000

    Enable automake foreign to ignore NEWS, etc. files.

commit 6091ec388e9159c1390650e26091da3b1b2473bd
Author: pingc <pingc>
Date:   Thu Jul 30 21:39:34 2009 +0000

    Support non-TwinView Nvidia dual setup

commit d26f9dd44c53f3b27d6f3a9f3a20653d47fa1972
Author: pingc <pingc>
Date:   Sun Jun 28 17:21:05 2009 +0000

    Added kernel 2.6.31 support

commit a2fb5b0a64dfd51ff1978ebb047aa3608b8f1750
Author: pingc <pingc>
Date:   Sun Jun 28 17:06:57 2009 +0000

    Support kernel 2.6.31 and DTF720a

commit f9b0742fb5a577dc7e068559823c4d78ebb670b2
Author: pingc <pingc>
Date:   Fri May 22 20:15:14 2009 +0000

    Fixed a prox-out issue for menu strip in wacom_wac.c and updated --enable-quirk-tablet-rescale support.

commit fdcca1c356cc282e1243de8cd1b01ba8c29609ed
Author: pingc <pingc>
Date:   Mon May 4 18:25:04 2009 +0000

    Fixed a tool index bug in wacom_wac.c.

commit 5eac83094bd49a4da9f3dc97813a8346eb00915e
Author: pingc <pingc>
Date:   Tue Apr 28 22:08:40 2009 +0000

    added 60-wacom.rules to src/util for reference

commit 1aacbddfeb4042e20ccb8a8b7e4555d9b7899234
Author: pingc <pingc>
Date:   Mon Apr 27 21:30:41 2009 +0000

    Updated 2.6.28 support

commit 6be94eb174c67218bf4da496c9b6e4d1dc009117
Author: pingc <pingc>
Date:   Thu Apr 23 22:59:48 2009 +0000

    Updated wacomcpl

commit 4076f5b834f0e63b7c3310db516847573e98dc8f
Author: pingc <pingc>
Date:   Tue Apr 21 18:54:18 2009 +0000

    Removed NEWS and LGPL

commit 0fc5767e2cf19779d3a4e00153177ccba6fd11aa
Author: pingc <pingc>
Date:   Fri Apr 3 19:41:10 2009 +0000

    Added Matthew Garrett's hal-setup.patch

commit 55bd0be4a412f6bb73855f36d1c53a82bd47da5d
Author: pingc <pingc>
Date:   Fri Apr 3 19:30:13 2009 +0000

    Added kernel 2.6.28

commit 585e334fef932d72e5d13893d590128191fc7303
Author: pingc <pingc>
Date:   Thu Mar 26 22:48:18 2009 +0000

    Added Matthew Garrett's hal-setup.patch

commit 38482b322d3bd5fa262affa9a49b97c8beffceee
Author: pingc <pingc>
Date:   Wed Mar 25 23:30:48 2009 +0000

    Added support for Intuos4

commit 0778ceaef5de76cacdc537ff173f96c08aaac721
Author: pingc <pingc>
Date:   Wed Mar 25 23:21:26 2009 +0000

    added wcmTilt2Rotation.c and hal-setup-wacom.c

commit 1fd7177a0b075994eef9618f29eb03a3809708c7
Author: pingc <pingc>
Date:   Wed Mar 25 23:09:01 2009 +0000

    removed 2.4.x and 2.6.8

commit 1f732abe434d717d7b30d2aa6933ba85e310d711
Author: pingc <pingc>
Date:   Mon Jan 19 19:17:38 2009 +0000

    Fixed bug #2499414

commit 878a8cff4967d05748f4a786dbe2e7bdf59307e6
Author: pingc <pingc>
Date:   Tue Dec 30 22:04:02 2008 +0000

    Workaround for Xorg 1.6

commit 987fcf7c814bd60a981616d2ec3833f8d0c15ed9
Author: pingc <pingc>
Date:   Tue Dec 2 00:27:48 2008 +0000

    Workaround for Xorg 1.5

commit cf1959686dbf7e3aa1a52001bf7660fbe11ccbd5
Author: pingc <pingc>
Date:   Thu Oct 23 22:00:49 2008 +0000

    Added kernel 2.6.27 support

commit 9a414e1a3f095cfe5bc616c150241400d2dc7f51
Author: pingc <pingc>
Date:   Wed Oct 8 23:22:20 2008 +0000

    Updated wacomcpl and its related utilities

commit be9b22da0e932e4c433e6bf23aa37e14ecc7c7dc
Author: pingc <pingc>
Date:   Sun Aug 31 20:23:18 2008 +0000

    Added support for Bamboo1 Medium and Monarch

commit d808be5022778375831e9351242aaf282bdd559c
Author: pingc <pingc>
Date:   Tue Aug 12 19:37:59 2008 +0000

    Added support for serial capacitive TabletPC

commit d8142c4c2ebac44a8fb8159c69c564b7ee613e68
Author: pingc <pingc>
Date:   Fri Aug 1 20:16:31 2008 +0000

    Added support to kernel 2.6.26

commit 0d9ac7e31ab8fa3e2e4edc52665490ecb7649200
Author: pingc <pingc>
Date:   Fri Aug 1 20:12:15 2008 +0000

    Added support for 2.6.26

commit b9a62e8b72adde7e2bc605b03ddb8eb1ddece0e5
Author: pingc <pingc>
Date:   Mon Jul 21 20:56:08 2008 +0000

    Updated USB and serial TabletPC w/wo touch

commit e36b582824de6f9cb92844e282f7b3d6b9270853
Author: pingc <pingc>
Date:   Wed Jul 9 16:02:18 2008 +0000

    Support USB TabletPC w/wo touch

commit 1c9627cde6e853301a407903967d1f45db0f5513
Author: pingc <pingc>
Date:   Fri May 23 22:43:16 2008 +0000

    Updated configure.in

commit e7358ba15824d89e9b4915cb6e03e288c80b3cb9
Author: pingc <pingc>
Date:   Wed May 14 22:52:45 2008 +0000

    Fixed rotation issue

commit 258ba05e634843b13d2f9e1a792ca0c9ebc96ec2
Author: pingc <pingc>
Date:   Fri May 9 17:09:05 2008 +0000

    Fixed serial Tablet PC baudrate issue

commit 8783d82cc1ffecf43fca9495e477700cf1448aef
Author: pingc <pingc>
Date:   Sun Apr 27 02:30:19 2008 +0000

    Update HOWTO file

commit 5f4033c33451619fa361f5df51affa45641937f8
Author: pingc <pingc>
Date:   Fri Apr 25 20:08:30 2008 +0000

    Updated wacom.4x, wacomcpl, and wacomcfg.c

commit 5a64f27cb18dc17a1bed05bbf007e09acbed364e
Author: pingc <pingc>
Date:   Fri Apr 11 22:08:44 2008 +0000

    Minor fixes in wacomcpl and kernel

commit 70d3dd054e8702767089d1cf5d21ca4ed052ed39
Author: pingc <pingc>
Date:   Wed Apr 2 23:49:00 2008 +0000

    Minor fixes in wacomcpl and kernel

commit 425351f22821ade814f7f6412d18c1eb25904661
Author: pingc <pingc>
Date:   Mon Mar 31 21:41:44 2008 +0000

    Updated wacomcpl for keystrokes & added touch support for serial TabletPC

commit 28fe7ad4583c3d41ad5b196f73ef4b56f1a78c0f
Author: pingc <pingc>
Date:   Fri Feb 29 20:52:48 2008 +0000

    Support kernel 2.6.24

commit 4037d28c5a989e4225e8c03d3f6054719b7204eb
Author: pingc <pingc>
Date:   Fri Feb 29 20:49:24 2008 +0000

    Support Cintiq 20WSX

commit 883d6ad68d8591bba7fc1b46968ecf1f8b2e6dec
Author: pingc <pingc>
Date:   Tue Jan 22 19:26:10 2008 +0000

    Prepare for hot-plug support on Xorg 7.3

commit b15f8391dcecc3235a2f8048b1ffc38d64bda289
Author: pingc <pingc>
Date:   Thu Jan 10 01:41:58 2008 +0000

    Updated configure scripts for Xorg 7.3 support

commit fd096dab9c3dc345a1e1f24200bfb208fcfccf77
Author: pingc <pingc>
Date:   Thu Jan 3 19:11:07 2008 +0000

    Support Xorg 7.3

commit 984fc23eafa68b640cf4d80762aff794ba3c46cc
Author: pingc <pingc>
Date:   Thu Jan 3 18:36:24 2008 +0000

    Support Xorg 7.3

commit 635463a5246a16df6fd1d6b5d6070a5dc59a490d
Author: pingc <pingc>
Date:   Thu Jan 3 18:27:52 2008 +0000

    Clean support of outbound tracking for Bamboo

commit 50cb6085d0fbeb2f9e8d9796c0adb5d5631ea6d9
Author: pingc <pingc>
Date:   Fri Dec 14 00:56:11 2007 +0000

    Clean support of outbound tracking for Bamboo

commit 6e4606b1b969e4366c33e4319bb6e3cfd4c5c29e
Author: pingc <pingc>
Date:   Fri Nov 30 18:13:38 2007 +0000

    Added prebuilt path for beta release

commit 458bb854602cd80f061dc6858ce0b67f26728433
Author: pingc <pingc>
Date:   Fri Nov 30 01:04:59 2007 +0000

    Clean support of outbound tracking for Bamboo

commit ee7dec233c5fcc858a8d550d92af3496f1f8dd75
Author: pingc <pingc>
Date:   Fri Nov 30 00:57:52 2007 +0000

    Clean support of outbound tracking for Bamboo

commit 4d07e21841e26f5212917c7fad2b069df71232b0
Author: pingc <pingc>
Date:   Wed Nov 28 18:24:07 2007 +0000

    Merge patches 1818295, 1831998, and 1839008

commit 6f65a53cde6be39012e69546fdc44a7eb9ac9191
Author: pingc <pingc>
Date:   Mon Nov 12 19:32:43 2007 +0000

    Support BambooFun, Bamboo1, and Hummingbird

commit 16dc273e8b4317d5e40f8dcdcde57f3551284122
Author: pingc <pingc>
Date:   Mon Nov 12 19:31:30 2007 +0000

    *** empty log message ***

commit 759461199fc27e18a1a5e28ab99471a2fb6ea41d
Author: pingc <pingc>
Date:   Wed Oct 24 21:47:19 2007 +0000

    Support kernel 2.6.22

commit a919e1c958a30552ece299d375454315c5b2250b
Author: pingc <pingc>
Date:   Wed Oct 24 21:28:15 2007 +0000

    Support kernel 2.6.22

commit 7ce7bf1a735158f904493b9a896c24e2fd7c8cb4
Author: pingc <pingc>
Date:   Wed Oct 24 21:15:23 2007 +0000

    Fixed a few small bugs

commit bfd11d0c000bbe24030f1f8dfc26f2c242a74de1
Author: pingc <pingc>
Date:   Tue Aug 14 22:53:37 2007 +0000

    Fixed a few small bugs

commit 16e2da3dd5df14a26e75f91564e7ee98148f15e1
Author: pingc <pingc>
Date:   Tue Jul 24 21:18:40 2007 +0000

    Updated xsetwacom and wacomcpl

commit 22dacadcffade1f21ea8d1f2e18d8e55559b1224
Author: pingc <pingc>
Date:   Thu Jul 12 00:18:53 2007 +0000

    Fixed a button bug in 0.7.8.

commit 61d5330adc39ea26a2c56904bc87dc73ea87d484
Author: pingc <pingc>
Date:   Mon Jun 25 21:25:11 2007 +0000

    Added xsetwacom RawSample option and updated keystroke for absolute wheel and menu strip

commit 5c84d506a3602bbddc98eef1a2562ee5979d3dcc
Author: pingc <pingc>
Date:   Thu Jun 14 20:58:24 2007 +0000

    Added xsetwacom RawSample option and updated keystroke for absolute wheel and menu strip

commit 4b18ba7eb74cc3aaee92105408a86be029cc492a
Author: pingc <pingc>
Date:   Tue Jun 5 17:05:34 2007 +0000

    Updated xsetwacom suppress option and merged Ron's building patches

commit f191942ed3b74e5c8525a3e449396044de4a8f0a
Author: pingc <pingc>
Date:   Fri May 25 21:38:18 2007 +0000

    Added support to Bamboo and a few new xsetwacom options

commit 5fe054d18a53fca352dc6ee8622e835dbcbf2458
Author: pingc <pingc>
Date:   Fri May 25 20:05:23 2007 +0000

    Fixed xsetwacom and relative bugs

commit 65b904c492c0e919751a0d2a97803a2d7a4587f8
Author: pingc <pingc>
Date:   Mon Apr 30 23:29:27 2007 +0000

    Fixed xsetwacom and relative bugs

commit 2fe7d4bde4c99a5a91eab4f2eb15c412debb9993
Author: pingc <pingc>
Date:   Tue Apr 17 21:37:14 2007 +0000

    Updated xsetwacom and fixed bug 1675567

commit 63fb0ef1f39ce9d33e27ab3c3ca282528d2d7d34
Author: pingc <pingc>
Date:   Wed Mar 28 18:57:45 2007 +0000

    Updated xsetwacom and fixed bug 1675567

commit 088dab520184d7ef2179ee598109bf0346894be4
Author: pingc <pingc>
Date:   Wed Mar 21 21:13:40 2007 +0000

    Support dual Cintiq with TwinView setup

commit e7f6ded2edc063da66d6d9dcf608a88d8dbd42b4
Author: pingc <pingc>
Date:   Wed Feb 21 00:13:39 2007 +0000

    Support dual Cintiq with TwinView setup

commit 014342a319825a57020bd440b76bb9a76f7918d7
Author: pingc <pingc>
Date:   Fri Feb 16 22:06:15 2007 +0000

    Support 2.6.19

commit 5b03c1eae287f98410f86e05032cb4508473b893
Author: pingc <pingc>
Date:   Fri Feb 16 22:02:08 2007 +0000

    Support keystrokes

commit 164d65333078f353e15b2e21f055077472a3a20b
Author: pingc <pingc>
Date:   Sat Feb 3 00:11:18 2007 +0000

    Improved outbound tracking

commit 9023deacd1908809a52c09e5ac723be4bb338754
Author: pingc <pingc>
Date:   Tue Jan 30 00:10:49 2007 +0000

    Support multiarea and ThinkPad X60t

commit 07c7565a93b92d166fc0b5a48f758ebf46cdf5b3
Author: pingc <pingc>
Date:   Thu Jan 25 19:18:23 2007 +0000

    Added ThinkPad X60t

commit ccf5c34b9bf5c7c46f5e07a5573d10a54007f473
Author: pingc <pingc>
Date:   Thu Jan 25 01:27:28 2007 +0000

    Add new xsetwacom features

commit 7d275c9641049b601a8d2542e18463d2efeac798
Author: pingc <pingc>
Date:   Thu Jan 25 01:25:00 2007 +0000

    Add support for Thinkpad X60t

commit 9edbb4b41867f0b2eddbf229e78414f3e52e750e
Author: pingc <pingc>
Date:   Tue Jan 23 00:59:43 2007 +0000

    Updated configure string

commit a39619cdfa469ad189c49da4af2abeea1c32277b
Author: pingc <pingc>
Date:   Tue Jan 23 00:56:46 2007 +0000

    clean X driver code

commit 9920ac402067928c414a4aec7ee6efbe6857d069
Author: pingc <pingc>
Date:   Sat Jan 20 01:12:19 2007 +0000

    Split wacom.c

commit 94cca8438b9a4d2a42bcda9868c5b68426928171
Author: pingc <pingc>
Date:   Sat Jan 20 01:09:30 2007 +0000

    Fixed bugs in wacom_sys.c and multiarea support

commit ff4595036b04cda5fc1d5ff3986b28db15e73a82
Author: pingc <pingc>
Date:   Mon Jan 15 21:46:24 2007 +0000

    Fixed bugs in wacom_sys.c and multiarea support

commit 8d5b18e87378245b377a39dd6d81e4e8db54c4e2
Author: pingc <pingc>
Date:   Thu Jan 11 23:27:30 2007 +0000

    Incorporated patches 1630928, 1630926, and 1614296

commit e3a5a3acde5ffeaf3b8e74ed1e43d8cce3df15f5
Author: pingc <pingc>
Date:   Tue Jan 9 18:30:18 2007 +0000

    Removed 2.6.14/wacom.c

commit ab3b9a56651157034f46bed732beab0daf2d95da
Author: pingc <pingc>
Date:   Wed Dec 27 19:13:20 2006 +0000

    split wacom.c into 4 files

commit dd1c626c2da972115c05c785eb98ff56907fa113
Author: pingc <pingc>
Date:   Wed Dec 27 19:01:06 2006 +0000

    Incorporated Magnus Vigerlöf's patch

commit 84398848acc61f5fca46e0c3850f277546b8ff59
Author: pingc <pingc>
Date:   Mon Dec 11 19:53:06 2006 +0000

    Incorporated Magnus Vigerlöf's patch

commit a4f118a610c3294ea1533bf2643bb89b2092707c
Author: pingc <pingc>
Date:   Thu Nov 30 18:31:17 2006 +0000

    Fixed Relative Cursor force out-prox issue

commit d3d22533c6227a884a1865a4b636050f0e657f9f
Author: pingc <pingc>
Date:   Tue Nov 21 23:56:47 2006 +0000

    Split wacom.c into 4 files

commit 167ef19ee45d94a03987be94d98df74c1c392074
Author: pingc <pingc>
Date:   Tue Nov 21 23:44:28 2006 +0000

    Updated wacdump for TabletPC

commit a0d8478ff0046c1865ed55a14f2984dcc81e536c
Author: pingc <pingc>
Date:   Wed Nov 1 00:37:40 2006 +0000

    Updated wacdump for TabletPC

commit f276dee836863314271c7aa45bf0a7dbb558b0dd
Author: pingc <pingc>
Date:   Tue Oct 24 22:48:59 2006 +0000

    *** empty log message ***

commit 24a6ad6b290a90df843e825d776397d879e27946
Author: pingc <pingc>
Date:   Tue Oct 24 22:46:26 2006 +0000

    Updated wacdump for TabletPC

commit 0ca6cfbcb252c91b89bbf54972b0b821c0d6de0f
Author: pingc <pingc>
Date:   Tue Oct 24 20:12:05 2006 +0000

    Removed $Id lines in unchanged 2.4 kernel files

commit 84e374f0c5d00a710c57ded3cf05aa997277a907
Author: pingc <pingc>
Date:   Fri Oct 13 18:03:50 2006 +0000

    Release 0.7.6

commit c8b8455e6d71f999ae51d3b6f6f71b783e403112
Author: pingc <pingc>
Date:   Thu Oct 12 18:09:12 2006 +0000

    Release 0.7.5-4

commit 43cae5a89e9d5b32df463aca34cf49e3958a059c
Author: pingc <pingc>
Date:   Wed Sep 27 22:12:31 2006 +0000

    Release 0.7.5-4

commit 2496d7dd5c019f3cf692c943f7c83c8e9b9ba7aa
Author: pingc <pingc>
Date:   Thu Sep 14 23:12:01 2006 +0000

    Release 0.7.5-3

commit 1204c9ae9a1533cab57ae0375c11a3dbd9be8c53
Author: pingc <pingc>
Date:   Thu Sep 14 22:01:34 2006 +0000

    Release 0.7.5-3

commit 5322145739070906e72a91dc5ffd5a607d0bcf7c
Author: pingc <pingc>
Date:   Thu Sep 14 20:55:15 2006 +0000

    Release 0.7.5-3

commit 1fd8d0c79b118a30e802ae0fa389422d89ad3eba
Author: pingc <pingc>
Date:   Wed Sep 13 20:56:12 2006 +0000

    0.7.5-2

commit 377432da2abc73994d8680a5b7d45a6b5bad1ae6
Author: pingc <pingc>
Date:   Tue Sep 12 22:51:24 2006 +0000

    Free Device instead close it

commit 2dbb99e1ee8a65dfbb6da1b565e575b191d8ea75
Author: pingc <pingc>
Date:   Tue Sep 12 22:12:48 2006 +0000

    Fixed an initalization issue in X driver

commit d6ceb8b0c63f0c5052d2616ead1b8928701de432
Author: pingc <pingc>
Date:   Thu Sep 7 23:30:13 2006 +0000

    plug/unplug support for both XFree86 and Xorg

commit 32bd4c69f7a7bc1308fd0f3dfcffb803e4bc7a4c
Author: pingc <pingc>
Date:   Thu Aug 31 22:35:33 2006 +0000

    Reshaped the source tree

commit 42869f6e9fc2d82e4e0bf1d3a10b75ca49db2b73
Author: pingc <pingc>
Date:   Thu Aug 31 18:20:23 2006 +0000

    Keep Graphire4 naxes as 6 for now

commit 2a32e01ded808123670456aa474935cf116abc07
Author: pingc <pingc>
Date:   Thu Aug 31 00:21:36 2006 +0000

    Add all Wacom devices into hid_blacklist

commit fd299eec942ae5e30162de22a85ff646d0573263
Author: pingc <pingc>
Date:   Wed Aug 30 21:52:37 2006 +0000

    A typo in wcmUSB.c

commit a6097e15592b75a079e84dbbcef210ace6284215
Author: pingc <pingc>
Date:   Wed Aug 30 21:30:55 2006 +0000

    Fixed the pad initialization issue

commit d85c13f7778aa838f65ab8f21d7897c6fefbf37d
Author: pingc <pingc>
Date:   Tue Aug 29 00:20:49 2006 +0000

    Added Intuos3 4x6 support

commit cb5f66677dcd68e4c021d3cc48006a35377adec4
Author: pingc <pingc>
Date:   Mon Aug 28 20:05:43 2006 +0000

    A file name change for kernel version

commit 31f68105e73ccb43f970995b1c83d77fa45f5d12
Author: pingc <pingc>
Date:   Fri Aug 25 23:53:24 2006 +0000

    Fixed relative mode threshold check

commit d6dd988830fd2209ccdcb3c8bebbe04afd3b3e9c
Author: pingc <pingc>
Date:   Fri Aug 25 17:52:49 2006 +0000

    Check kernel version for 2.6.18

commit 57943f8cb9feefba00c1b1d89f9bb61d3e59e8a0
Author: pingc <pingc>
Date:   Fri Aug 25 00:24:58 2006 +0000

    Fixed a typo in wacom_sys.c

commit 756a47b212fd486e5ce3c260de801dec7bae5005
Author: pingc <pingc>
Date:   Wed Aug 23 20:46:06 2006 +0000

    Fixed a syntax in wacom_wac.c

commit 491763b07794bf1dafd59d1955389ed702fe1a3c
Author: pingc <pingc>
Date:   Wed Aug 23 00:55:45 2006 +0000

    Fixed a syntax error in configure.in

commit c436b886f3001eacbcdc3e03e0f99a0113897ea4
Author: pingc <pingc>
Date:   Wed Aug 23 00:30:56 2006 +0000

    Support on-fly rotate

commit 294c00f2844d429d9b167b4c043c5eb241bed63f
Author: pingc <pingc>
Date:   Mon Aug 21 23:40:32 2006 +0000

    Support 26.18 and specifiy tablet buttons

commit 991cdba085b86c8536362221ef59ec27ce85d9f5
Author: pingc <pingc>
Date:   Tue Aug 15 20:48:05 2006 +0000

    Updated configure.in

commit c5cbca7b1283ad897b1806e4fe6381a2c223d13d
Author: pingc <pingc>
Date:   Fri Aug 11 00:17:49 2006 +0000

    Backward tablet menu strip support

commit a11d351777f5ff31a9eb55e83cd4413c984516bc
Author: pingc <pingc>
Date:   Mon Aug 7 17:51:42 2006 +0000

    Added wcmFilter.h

commit 13d3ce794bd6d4ce63d8403069f3b1051b2dfa8e
Author: pingc <pingc>
Date:   Mon Aug 7 17:50:51 2006 +0000

    Updated wacomcpl

commit 2debfce6f9d6bfb206da2e1711d04f42cddd71e1
Author: pingc <pingc>
Date:   Mon Aug 7 17:18:19 2006 +0000

    Reshaped the source tree

commit b4c28e85d277f5aa3c468ae9a2aed945c86b29dd
Author: pingc <pingc>
Date:   Mon Jun 19 16:19:39 2006 +0000

    Fixed a Volito bug

commit b7b19ea55974e031824702c14ff9f961c89849d2
Author: pingc <pingc>
Date:   Mon Jun 19 16:09:06 2006 +0000

    Fixed a Volito bug

commit a2b19be24c5206fb56a4d28b2801dbda8ce5071f
Author: pingc <pingc>
Date:   Sat Jun 17 00:19:13 2006 +0000

    Ready to release 0.7.4-3

commit e2f285b09d8e536ba9d3a195c048a6e4c53324c3
Author: pingc <pingc>
Date:   Sat Jun 17 00:13:30 2006 +0000

    Ready to release 0.7.4-3

commit 0d9ed25a912fd63fa45158496b609c0fcc217974
Author: pingc <pingc>
Date:   Sat Jun 17 00:07:17 2006 +0000

    Remove  line in 2.4 kernel files

commit ce9368b96b673005ec3db673498c52636537550a
Author: pingc <pingc>
Date:   Sat Jun 17 00:01:58 2006 +0000

    Remove  line in 2.4 kernel files

commit b3aa8af79acf3451a91bc6c895d0e69101d3f0f9
Author: pingc <pingc>
Date:   Fri Jun 16 21:25:34 2006 +0000

    Fixed a Volito1 bug

commit 21ded9f0c3aa2dfe5e88ed3f8d9afde8ce601743
Author: pingc <pingc>
Date:   Thu May 25 21:27:28 2006 +0000

    Updated configure files

commit 59c53048a2bbe890e29ab7bfa8dc512e3c610372
Author: pingc <pingc>
Date:   Fri May 5 17:31:39 2006 +0000

    *** empty log message ***

commit 9d40acbbb96240612d86d6e55301967096fafde1
Author: pingc <pingc>
Date:   Fri May 5 17:21:55 2006 +0000

    Ready to release 0.7.4

commit 5dc452744428809f76e028bd651d015c3a6fc62f
Author: pingc <pingc>
Date:   Wed May 3 23:22:36 2006 +0000

    Removed older 2.6 kernels

commit efcc12bd4d5c8fd83b0bcfb78107a9e764baf842
Author: pingc <pingc>
Date:   Mon May 1 17:49:43 2006 +0000

    Support X.Org 7

commit b7049bfad7e7127b207383eb7a81d7f9803e9ccb
Author: pingc <pingc>
Date:   Thu Apr 6 18:16:23 2006 +0000

    Ready for 0.7.3-1

commit e94b059a7762c9d16c8686ce9fa9fb11ac49e0a4
Author: pingc <pingc>
Date:   Wed Apr 5 16:33:48 2006 +0000

    Supporting kernel 2.6.16. Updated mouse1 page

commit 850fcf743066491f1d77a76d3011e07ac4b282fb
Author: pingc <pingc>
Date:   Tue Mar 28 01:35:06 2006 +0000

    Updated wacom.c and wcmUSB.c

commit b1b7a0f2b9a4ba68413e006abf04bca410065d8a
Author: pingc <pingc>
Date:   Tue Mar 14 01:17:41 2006 +0000

    Ready to release 0.7.3

commit 638fd320b1bff6ca6c488291f572b780b543b23d
Author: pingc <pingc>
Date:   Tue Mar 7 00:29:03 2006 +0000

    Supporting tablet attach/detach while X driver running

commit 547f03523957bb59eff1a4ce87da6c9a71e29ce1
Author: pingc <pingc>
Date:   Mon Feb 27 21:52:39 2006 +0000

    Added 2..6.15 support

commit d7559ad5070812d196a30517a6989afaaba86d1f
Author: pingc <pingc>
Date:   Mon Feb 13 05:24:22 2006 +0000

    Added DTF 521, I3 12x12, and I3 12x19

commit b2b7582fff2ef5ba3fd6b81efef2406d2f534a94
Author: pingc <pingc>
Date:   Mon Jan 9 22:46:36 2006 +0000

    Updated webpages

commit 1e6d4d973b327c1e3a2458a793415048fbb669e9
Author: pingc <pingc>
Date:   Fri Dec 23 21:37:37 2005 +0000

    Update web pages

commit 48ca4cc9a92da694b4ec3bd0e9c0d46dad9b587b
Author: pingc <pingc>
Date:   Wed Dec 21 23:04:34 2005 +0000

    release 0.7.2

commit de3f0b95ad5ef555454ee2036effe21679951fda
Author: pingc <pingc>
Date:   Fri Dec 16 19:43:36 2005 +0000

    updated configure.in and acinclude.m

commit 0537f349ef0fd60e6f50018a9ea8cb8058a59c9a
Author: pingc <pingc>
Date:   Mon Dec 5 22:41:29 2005 +0000

    Changed AC_MSG_ERROR to AC_MSG_RESULT in acinclude.m4

commit fdb5ce078af32a5265b7d6347d25c7e7c2d40c15
Author: pingc <pingc>
Date:   Mon Dec 5 20:39:50 2005 +0000

    Fix a typo in acinclude.m4

commit 0b6ed0cf160ea6c44203746d57b18bbecc311b13
Author: pingc <pingc>
Date:   Mon Dec 5 19:27:55 2005 +0000

    updated acinclude.m4

commit d3844436fa8d7ef5f1bf41a6f923f8e8c42a89be
Author: pingc <pingc>
Date:   Mon Dec 5 17:55:10 2005 +0000

    updated configure.in

commit 6075eece15568f4e0b7208e721e50d8d2c5ef2c5
Author: pingc <pingc>
Date:   Sun Dec 4 23:46:09 2005 +0000

    updated configure.in

commit 301bed19844c59cd5c2450bfc496291eb50940bd
Author: pingc <pingc>
Date:   Fri Dec 2 20:29:47 2005 +0000

    Removed mousedev.c and usbmouse.c from src/2.6.x

commit 892b6746ab657e5d3ab246712641d11ba622db1a
Author: pingc <pingc>
Date:   Wed Nov 23 00:29:44 2005 +0000

    0.7.1-1 released and web scripts updated

commit 00f0a093bef1ffab52abedbc71ce44ce6ea31c21
Author: pingc <pingc>
Date:   Fri Nov 18 18:12:29 2005 +0000

    Fixed a wacomcpl and a wacom_drv.o bug

commit da4b82c4d2a9c0a186a42581cdf1aa9fc37b8759
Author: pingc <pingc>
Date:   Wed Nov 16 00:44:36 2005 +0000

    Updated wacomcpl, xsetwacom, and wacom.c

commit 29b522a1f419b410cb582455329498e0d7a64e17
Author: pingc <pingc>
Date:   Mon Nov 14 20:37:39 2005 +0000

    added k2.6.14 and reporttool id and serial number to Xinput

commit e9f3f4482daa11cd05604e013d68d7230c148fba
Author: pingc <pingc>
Date:   Thu Nov 3 01:14:42 2005 +0000

    Released 0.7.1 and updated web

commit 343eef7f50645f6eebe019dc21a20b81eca4f698
Author: pingc <pingc>
Date:   Wed Oct 26 00:36:47 2005 +0000

    updated wacdump and xidump

commit 9fadf910f39f4219184ace994abd69e715c76caa
Author: pingc <pingc>
Date:   Wed Oct 26 00:36:47 2005 +0000

    updated wacdump and xidump

commit a2aa2f257a8837fff1062c34074b1b97b6269d66
Author: pingc <pingc>
Date:   Thu Oct 20 23:03:38 2005 +0000

    Commit 2.6.13 code

commit f729cba1ec2b9993dbdde8790b0e33ed8a6c48ba
Author: pingc <pingc>
Date:   Thu Oct 20 22:56:01 2005 +0000

    Added 2.6.13

commit b02554b413af0443873b5429ebb156ed54bfb410
Author: pingc <pingc>
Date:   Mon Oct 10 19:25:32 2005 +0000

    Add Graphire4, DTF720 and DTU710

commit 7c7bac245ad054d808e74536264c3ccc1f493f50
Author: pingc <pingc>
Date:   Fri Sep 23 23:53:09 2005 +0000

    Updated website

commit 96c28e6c9d53d4ac5293606419ef075291339eac
Author: pingc <pingc>
Date:   Mon Sep 19 23:19:18 2005 +0000

    Fixed a serial Graphire bug

commit 077b10c7457b5fbfd7c9d1c862e2422ea133377e
Author: pingc <pingc>
Date:   Fri Sep 16 19:21:03 2005 +0000

    Reports USB tool ID

commit 81da644f03a9d1c46cc93205ba1016ea2def358e
Author: pingc <pingc>
Date:   Fri Sep 9 23:53:18 2005 +0000

    Supports 16 buttons for all tools

commit a16eadbc6a78c63bab3ca5e937b7eb9cc05bd9b7
Author: pingc <pingc>
Date:   Wed Sep 7 23:53:05 2005 +0000

    Messed ChangeLog last time

commit 84cdf45fc2bd281cc5446cba23b7654af6a16f16
Author: pingc <pingc>
Date:   Wed Sep 7 22:47:10 2005 +0000

    Updated wacdump and acinclude.m4

commit 5da0e68d596696e2d585cd5c55d3aab313851672
Author: pingc <pingc>
Date:   Wed Sep 7 17:53:15 2005 +0000

    Updated wacdump and acinclude.m4

commit 176cff822047f511a653125f919cd2e62f868ae2
Author: pingc <pingc>
Date:   Fri Aug 19 01:08:33 2005 +0000

    update ChangeLog

commit a8b8ab0e1d25ecb0cef480e61aa2912afe9e5c91
Author: pingc <pingc>
Date:   Thu Aug 18 18:50:30 2005 +0000

    added evdev.c for 2.4.30x86-64

commit cecfe281694d3895dfc4dbf0c0f660926a403197
Author: pingc <pingc>
Date:   Thu Aug 18 18:45:38 2005 +0000

    Updated wacomcpl and merged Volito2 & PL700 patches

commit d2ab386153d092dcaa96465af18e2598c45e6ba0
Author: pingc <pingc>
Date:   Wed Aug 10 19:05:21 2005 +0000

    Fixed a dlloader issue

commit df54a482af0e14ee4f27d062484aee7a9e9f1533
Author: pingc <pingc>
Date:   Mon Aug 8 20:53:27 2005 +0000

    Fixing Graphire bug and adding dlloader option

commit 00197f0e9a3da737225292ad9e2e6b546c7a3efe
Author: pingc <pingc>
Date:   Thu Jul 28 22:59:05 2005 +0000

    GTK configuration change

commit 4080136debeb8c58d8f768dbbb5cad00a1bcd2d6
Author: pingc <pingc>
Date:   Tue Jul 26 23:26:42 2005 +0000

    Fixed a serial P4 button switch bug

commit 9214262aab46015493368dc42744a69396dc0b4f
Author: pingc <pingc>
Date:   Wed Jul 20 21:45:04 2005 +0000

    Support x86-64 X server

commit 4d660b9fbe4dc306a61f06589260f0b299721b6e
Author: pingc <pingc>
Date:   Thu Jun 16 21:33:33 2005 +0000

    Removed some unavailable links

commit 3e60b14c779ab71f4abf7abf2228a697ff6e6e40
Author: pingc <pingc>
Date:   Thu Jun 16 17:04:08 2005 +0000

    Fixed a bug in configure.in

commit 451c941b2f97f8df2845bed4edd871ffcd560704
Author: pingc <pingc>
Date:   Wed Jun 15 23:17:58 2005 +0000

    Added 2.4.30x86-64 and updated website

commit c608561ac93135d7597d12261aa5ac3430078d6c
Author: pingc <pingc>
Date:   Wed Jun 15 17:19:43 2005 +0000

    Support tablet orentation rotation and x86-64 kernel

commit dea170059f7bfbd05e77f35bbcecd7c8803a89d0
Author: pingc <pingc>
Date:   Fri May 6 18:13:19 2005 +0000

    Released linuxwacom-0.6.8

commit 36745183a78e1e04a1e2a20f7080a584469e6e11
Author: pingc <pingc>
Date:   Mon Apr 25 19:02:37 2005 +0000

    Cleaned tablet mapping and resolutions

commit dbfb06686282a610e9609075947ba106441cf985
Author: pingc <pingc>
Date:   Mon Mar 28 23:09:59 2005 +0000

    Released linuxwacom-0.6.7

commit 01516e38f4e908ae1fb028d7fcbf604076a4fff3
Author: pingc <pingc>
Date:   Fri Mar 18 18:17:43 2005 +0000

    Added support to kernel 2.6.11

commit 2db6dfa8eaa277b65a65a8735410a0677e1b278f
Author: pingc <pingc>
Date:   Fri Mar 11 22:49:26 2005 +0000

    Added Cintiq 21UX support & updated 2.6.x/Makefile.in

commit 739066a4a08199f12e9af34fdac9d19f849f4804
Author: pingc <pingc>
Date:   Wed Mar 2 18:08:33 2005 +0000

    Somehow 2.6.10 removed in last commit

commit 574d6941f9ad52a299c7f77a477fc9696aca3b5b
Author: pingc <pingc>
Date:   Mon Feb 28 22:10:59 2005 +0000

    Fixed a Graphire/Volito button bug and added xserver64 option

commit 8b3339e45493253ce3485b28a8350fe755d2730d
Author: pingc <pingc>
Date:   Wed Feb 2 23:51:11 2005 +0000

    fixed 2.6.8/wacom.c and wcmSerial.c

commit a73d00b8357046151f86b142e1a747e586580b93
Author: pingc <pingc>
Date:   Thu Dec 2 00:36:11 2004 +0000

    Support kernel 2.6.10 & build driver locally

commit cc2ea36b59b6b3f0d84f489f58f3797abbc15edb
Author: pingc <pingc>
Date:   Sat Nov 6 04:55:02 2004 +0000

    Released 0.6.5 as beta

commit a751b3701050a0548dea5f39963e26e61088de83
Author: pingc <pingc>
Date:   Sun Oct 31 22:59:58 2004 +0000

    Added new branches for each kernel version

commit 6828fbf8a4a605b298be6c940423127752421549
Author: pingc <pingc>
Date:   Fri Oct 15 17:26:59 2004 +0000

    Fixed Intuos3 pressure bug in wacom.c

commit e41ce2e84faa928cd391bcab299aefac74ef9ff1
Author: pingc <pingc>
Date:   Thu Oct 7 18:36:35 2004 +0000

    Added Intuos3 support

commit d26dfd8d22239249ab7e53877d6b8adad54bcc01
Author: pingc <pingc>
Date:   Fri Aug 6 23:12:50 2004 +0000

    Updated website and released 0.6.4

commit 8d6866a837d2f79ac364582635a649fcc5c91cf3
Author: pingc <pingc>
Date:   Fri Aug 6 18:08:26 2004 +0000

    release 0.6.4

commit 8c32155832a083f2c04f9001983eaf37796d2b0d
Author: pingc <pingc>
Date:   Mon Jun 7 17:03:13 2004 +0000

    update prod, dev, and web

commit c0a29bed2b76db851a195c9cfa04ead095a61d61
Author: pingc <pingc>
Date:   Wed May 26 00:12:23 2004 +0000

    Modified wacomcpl defaults

commit 14a707efffc370aac872ac0122cddf246c446746
Author: pingc <pingc>
Date:   Tue May 25 17:26:12 2004 +0000

    Fix PressCurve for wacomcpl

commit 57ae8732a9a3add86b588d72677444d906f760ea
Author: pingc <pingc>
Date:   Mon May 24 21:22:25 2004 +0000

    Fixed wacomcpl-exec Feel window bug, support kernel 2.6.6

commit 946cb58c4c82c4f750f6a944b2e2d8cd2246d97d
Author: pingc <pingc>
Date:   Tue May 18 18:03:03 2004 +0000

    Fixed Relative speed and TPCButton bugs

commit aa037aa727b4b9916a4aafcf82f6a92e84a38a8f
Author: pingc <pingc>
Date:   Fri May 14 22:02:58 2004 +0000

    Bug fix and webpage update

commit 3620b7a937513d06490e62d586faa631979a8797
Author: pingc <pingc>
Date:   Fri Mar 12 01:08:04 2004 +0000

    Fixed DoubleSpeed and DoubleRadius issues

commit 4c2d30330a227ef138cb134304077d2c6ebab4c4
Author: pingc <pingc>
Date:   Fri Mar 5 21:22:43 2004 +0000

    Updated webpage for kernel 2.6

commit 35cde37b646441ea77abc21bdaf8a9cc1aec393c
Author: pingc <pingc>
Date:   Wed Mar 3 01:05:46 2004 +0000

    Support 2.6.2

commit 5ff3d4cf33075e44f41fb78d618750bf6d80f7bd
Author: pingc <pingc>
Date:   Wed Feb 25 18:33:08 2004 +0000

    Add Mode Toggle

commit f819f63eb9aa2b96bcb1740fd099c7b5e714c9a8
Author: pingc <pingc>
Date:   Sat Feb 7 01:01:14 2004 +0000

    Support kernel 2.4.24

commit b95f86083d590ffb42f33e0bc97aaf9726c64e88
Author: pingc <pingc>
Date:   Thu Feb 5 01:03:12 2004 +0000

    Released version 0.6.0

commit 34f7890324a99797afb6428e29db1e48d5a780ed
Author: pingc <pingc>
Date:   Mon Jan 19 22:16:13 2004 +0000

    Sync wacom.c and support 2.4.23

commit 79c09659d0986baac085fd763f1c7e2c47cb5ed6
Author: pingc <pingc>
Date:   Wed Jan 14 01:28:30 2004 +0000

    wacomcpl and wacom.c (k2.6) changes

commit 46a7d178c241330e26c993d54da62477c99fbfd8
Author: pingc <pingc>
Date:   Mon Dec 22 19:44:22 2003 +0000

    Redesigned wacomcpl

commit 955fef1b3e59726efdcc67218695b55590ae49ae
Author: pingc <pingc>
Date:   Fri Dec 19 00:55:30 2003 +0000

    Modified config and make strings

commit a8808b5eff08a19a502700ae168ce0b9e5bf5cc0
Author: pingc <pingc>
Date:   Thu Dec 18 00:09:19 2003 +0000

    Support Tablet PC in wacomcpl

commit 4c34105963287d217ddbd20f8c53b3a3c67e532b
Author: pingc <pingc>
Date:   Mon Dec 15 20:13:40 2003 +0000

    Bug fix for k2.6.0 support

commit 5f9b8fc72e59d719f6fa22ab4eee9ef88a71fe71
Author: pingc <pingc>
Date:   Wed Dec 10 01:13:43 2003 +0000

    Support kernel 2.6.0

commit df68c518131adf7d9173a894cf1231af6e06d549
Author: pingc <pingc>
Date:   Wed Nov 26 19:00:23 2003 +0000

    Modified installer

commit afed851d581700ec5781d7bad31e360521e8bc06
Author: pingc <pingc>
Date:   Tue Nov 18 19:38:41 2003 +0000

    Tablet PC general support

commit 27161f4d5739d19fe14ed545033365532653b329
Author: pingc <pingc>
Date:   Mon Nov 10 20:00:02 2003 +0000

    Created directories to ease ongoing kernel support

commit f0bb07c364ff531286885950df6fd6da83e91bd4
Author: pingc <pingc>
Date:   Mon Nov 10 18:46:35 2003 +0000

    *** empty log message ***

commit f5c7e4fccf8338042ee4358642eede46f6d6da5b
Author: pingc <pingc>
Date:   Thu Oct 9 23:36:07 2003 +0000

    Support kernel 2.4.22

commit 8084d4a7cda2d9a26cc10eee91c92359ab270369
Author: pingc <pingc>
Date:   Tue Sep 30 16:55:19 2003 +0000

    Fixed TwinView relative mapping error

commit 329178f48cf0a169b007e847949c9fd7e6747b9b
Author: pingc <pingc>
Date:   Wed Sep 24 23:43:24 2003 +0000

    Support different screen resolution in TwinView mode

commit 2e26854f97c193d74bdb7241cdb2259f01076b1e
Author: pingc <pingc>
Date:   Mon Sep 22 22:09:40 2003 +0000

    Support TwinView calibration and Screenno Option

commit f0b1f7c8cb1337102bfb554f9efe60fd1698140c
Author: pingc <pingc>
Date:   Wed Aug 13 22:31:09 2003 +0000

    Added new wacomcpl functions

commit a41fa7293692ac53a2800679997581101a5445d6
Author: pingc <pingc>
Date:   Thu Jul 31 23:00:30 2003 +0000

    wacomcpl Button and Mode support

commit 3db352b822ba82be84c0df76d48be5c85bfc96ec
Author: pingc <pingc>
Date:   Wed Jul 30 00:10:11 2003 +0000

    Fixed set mode value

commit 9d4c74a7fd07582320012006c652d5ea584042ef
Author: pingc <pingc>
Date:   Thu Jul 24 23:31:50 2003 +0000

    Added xsetwacom commands - Mode, SpeedLevel, and ClickForce

commit 52ea21640fcaa0c698d3f39ba518a85bd16195e7
Author: pingc <pingc>
Date:   Sat Jul 19 23:20:32 2003 +0000

    Fixed Intuos tilt filter

commit 73f82cb1cf1b7d552d7a97f039addf55ccfe32fa
Author: townsley <townsley>
Date:   Fri Jul 18 02:20:46 2003 +0000

    add button support for styluses with two side switches.

commit 4c98c902a2f43997e049882a1ded3c332444620b
Author: townsley <townsley>
Date:   Fri Jul 18 01:56:23 2003 +0000

    fix eraser selection.

commit dc0d76a30715ef5505a25a1143786cbb9a0e2aa0
Author: pingc <pingc>
Date:   Wed Jul 16 20:38:51 2003 +0000

    Added noise reducing filter and Improved USB relative movement

commit 7672cca061cadd93a16bc96c5f2e0554ccc1c1e0
Author: jjoganic <jjoganic>
Date:   Fri Jul 11 04:35:29 2003 +0000

    Updated release.

commit d1b8e8ad492b2ed30873e35d397d780751086f37
Author: jjoganic <jjoganic>
Date:   Fri Jul 11 04:33:44 2003 +0000

    Fixed date.

commit eb8eeee3a91da88dfdc760c81965fdb7aa640a51
Author: jjoganic <jjoganic>
Date:   Fri Jul 11 03:37:52 2003 +0000

    Fixed intuos filter, added pedantic to compiler options, minor warnings fixed.

commit 46a981bd15f25999acac7522e777bff7d59c5159
Author: pingc <pingc>
Date:   Mon Jul 7 21:24:15 2003 +0000

    Changed src/Makefile.am to support kernel 2.5

commit 042d685611f9504f16d1f7f27188e1b309423240
Author: pingc <pingc>
Date:   Wed Jun 25 18:34:10 2003 +0000

    Support TwinView setup

commit d17b6102664a9e211d371fcaf5910f27aa26dfa7
Author: jjoganic <jjoganic>
Date:   Thu Jun 19 15:49:19 2003 +0000

    Suppression value of 0 disables suppression.

commit 7c2aaef2f31b73ab0b41a93312f78de698976e55
Author: jjoganic <jjoganic>
Date:   Thu Jun 19 15:40:49 2003 +0000

    Added 0x47 to wcmUSB, updated version number.

commit 7ae94b2b29a3400eef9a172ecb21d7a710213e06
Author: jjoganic <jjoganic>
Date:   Thu Jun 19 15:37:23 2003 +0000

    Updated version numbers of 0x47 patch.

commit 8b767f4b216d48ddef7387bd69b7acd43f605eff
Author: jjoganic <jjoganic>
Date:   Thu Jun 19 15:28:44 2003 +0000

    Fix for Intuos2 6x8's reporting as 0x47.

commit e6d2e00da747956ee243d5198d79588b9c3d3e62
Author: jjoganic <jjoganic>
Date:   Tue Jun 17 16:16:46 2003 +0000

    Added xf86 version.

commit b76731af9fbd785b29253a043123fdd6760f2765
Author: jjoganic <jjoganic>
Date:   Tue Jun 17 02:08:31 2003 +0000

    Added mkxincludes, automatic configure for x-includes.

commit c8611fdbb2ddc1b3996192d4b88e69ec4bd75d83
Author: jjoganic <jjoganic>
Date:   Mon Jun 16 04:11:20 2003 +0000

    Updated versions.

commit 2ec5c22f1112912434c310a1258765c2bf401a71
Author: jjoganic <jjoganic>
Date:   Mon Jun 16 04:07:43 2003 +0000

    Distribution release 0.5.1-beta.

commit 1fe75a504210a67cb89fa02956e00767523a1516
Author: jjoganic <jjoganic>
Date:   Sun Jun 15 03:10:03 2003 +0000

    Intuos filtering enabled by default. Fixed APM restart problem.

commit 6868108bbc279c50ab7c934afa75741d679cf230
Author: jjoganic <jjoganic>
Date:   Sun Jun 15 00:56:18 2003 +0000

    Moved wacomxi, updated tcl and tk dep check, restored intuos filter

commit eeabc4314bd0c392a515483a0dcf4d6b55e89e04
Author: pingc <pingc>
Date:   Fri Jun 13 00:39:18 2003 +0000

    Added pkgIndex.tcl for wacomcpl

commit 299d9c35763fe1f2cfa8ed8d32d4c499464e2de2
Author: pingc <pingc>
Date:   Fri Jun 13 00:35:04 2003 +0000

    Changed wacomxi.so to libwacomxi.so for automake

commit 4b54ca479364220af344b0998950d0ad491936ec
Author: pingc <pingc>
Date:   Wed Jun 4 00:42:20 2003 +0000

    Added wacomxi.c, wacomxi.h and wacomcpl to project

commit 9b66e8a00ce4461d9d753be7caa55d4546cb11de
Author: pingc <pingc>
Date:   Wed Jun 4 00:35:35 2003 +0000

    Add wacomcpl - just a calibration utility at this moment

commit c376a5c1a6f3b9c18048fc1ca6f9ec3966290823
Author: jjoganic <jjoganic>
Date:   Fri May 16 04:24:40 2003 +0000

    Added timestamp to sample structure; xidump shows velocity and acceleration.

commit 6172c30dc15e1918fc3dc3dd493989ef7d2a4277
Author: pingc <pingc>
Date:   Tue May 13 00:15:06 2003 +0000

    Support relative wheel as 4/5 button and cleaned valuators for relative mode

commit 4a2ab077a79146d5a4ab8946976490c46b60fccd
Author: pingc <pingc>
Date:   Sat May 10 00:23:11 2003 +0000

    Added Cintiq Partner, G3, and a few xsetwacom commands

commit 4e3653ae8b040678856da70bb198380c8ef99cf6
Author: pingc <pingc>
Date:   Sat May 10 00:14:08 2003 +0000

    Added Cintiq Partner, G3, and a few xsetwacom commands

commit 673e6d883005c8683c361ddc9d1f1f90f16180e8
Author: jjoganic <jjoganic>
Date:   Mon May 5 06:20:40 2003 +0000

    Added raw filtering, overhauled device reading, various consolidations, and
    added historical states for error correction code.

commit 9a694eaa59d0326d5a96f1f3a1397f9de80885af
Author: jjoganic <jjoganic>
Date:   Sat May 3 09:35:14 2003 +0000

    Updated pressure curve; configurable pressure curve, debug level.

commit 17873f7968b59cb2f8e9a55fd7830e715559d52e
Author: jjoganic <jjoganic>
Date:   Sat May 3 04:23:04 2003 +0000

    Added xsetwacom and friends; configuration coming soon.

commit d561e186fb96db408cdb3e47a6687479635826af
Author: haoto <haoto>
Date:   Fri May 2 11:16:42 2003 +0000

    Cleanup; moved pressure button downstream, set-screen up; dx+dy suppression

commit 1fc354485bb188829fed2d75246b0cd2ce55840b
Author: jjoganic <jjoganic>
Date:   Fri May 2 00:38:58 2003 +0000

    Moved throttle check out of suppress; graphire wheel is relative.

commit 36ca239d6c64eff9435f4d0e8b436ed57fe1497d
Author: pingc <pingc>
Date:   Wed Apr 30 22:29:00 2003 +0000

    Add Button options and support sending data back to driver while system running

commit 72057fc3bd1d8ab6824b7af8c42e8d81a2f98ac8
Author: jjoganic <jjoganic>
Date:   Wed Apr 30 07:46:27 2003 +0000

    Added pressure curve.  Very tight.

commit ae379faf599f8750b031712d40008b80888565c8
Author: jjoganic <jjoganic>
Date:   Wed Apr 30 04:33:24 2003 +0000

    Split absolute and relative wheel values in early stage of data path.

commit e67e830f0471e660e00a0833a7f50af4e9a6f87e
Author: jjoganic <jjoganic>
Date:   Wed Apr 30 04:32:20 2003 +0000

    Split relative and absolute wheel value. Updated graphire parser.

commit 0664746c847314c9a299c0e6f0d12c4edd046684
Author: haoto <haoto>
Date:   Sat Apr 26 10:29:15 2003 +0000

    Fixed USB protocol 4 bustage.

commit 08f8f3662f81c29f47520f51d84e5c417f064c16
Author: pingc <pingc>
Date:   Mon Apr 21 23:15:44 2003 +0000

    Updated serial UD and PL support

commit 32190832bbc3208122c40c621ac0e30b358a0203
Author: pingc <pingc>
Date:   Mon Apr 21 23:09:20 2003 +0000

    Changed wcmSerial.c.

commit a96a10ad50ffc0b78c7fd87e77c2827f11382661
Author: haoto <haoto>
Date:   Fri Apr 18 16:47:26 2003 +0000

    fixed throttle code, slightly refined Xinerama code, dead screen area check

commit 2608d2b3c1b2e2bcdbe185aaba217e8f5926945a
Author: haoto <haoto>
Date:   Thu Apr 17 18:21:23 2003 +0000

    set screen only for core events; multi-screen keepshape; (temporarily) reenabled fake button 4/5; unified cursor acceleration.

commit e9fccad969c975faf73c1c672a095988d0af94d3
Author: haoto <haoto>
Date:   Wed Apr 16 18:45:26 2003 +0000

    Fixed USB protocol 4 devices broken by last change.

commit 8f168d6a8db1592177fbf96f5fd121b3e5cef8c3
Author: haoto <haoto>
Date:   Wed Apr 16 16:59:32 2003 +0000

    Software solution of dual channel input for USB devices.

commit 2273cd935ba9a2cfff8a23acab9f8e74664a1aa8
Author: haoto <haoto>
Date:   Wed Apr 16 14:07:43 2003 +0000

    Basic Xinerama support.

commit 9c061ad9fcec144fb2224a3b777d8abf55262ed6
Author: haoto <haoto>
Date:   Mon Apr 14 12:37:23 2003 +0000

    *** empty log message ***

commit 2497b894eb5f0a3bf05af619772a35d072781fd5
Author: haoto <haoto>
Date:   Mon Apr 14 12:31:52 2003 +0000

    Small KeepShape fix

commit 6b6df9eb11c8d75a71ef34dcd917211f35a7905b
Author: jjoganic <jjoganic>
Date:   Wed Apr 9 08:32:16 2003 +0000

    Removed extraneous device type flags.

commit 249e66b4272b81988933dd8e4c742aeabab5f30e
Author: jjoganic <jjoganic>
Date:   Wed Apr 9 08:27:43 2003 +0000

    raw throttle on 4, fixed serial 4d mouse rotation, threshold defaults.

commit 6fd7dee897a423703ff60891794a4a73db8a35f9
Author: jjoganic <jjoganic>
Date:   Wed Apr 9 07:00:30 2003 +0000

    Exploded out serial initialization, fixed USB tilt ranges.

commit f99fbe5a587488891a5e2d2eae88592c374e3f60
Author: jjoganic <jjoganic>
Date:   Wed Apr 9 02:06:00 2003 +0000

    Pulling initialization apart; please be patient.

commit 70c6b14450f5597f5438130e66ea189e98f00fc0
Author: jjoganic <jjoganic>
Date:   Tue Apr 8 07:20:46 2003 +0000

    Added channel code; device proximity bound to channel.

commit 7ae7f4d3114daba07974456d9f5acb82e5573b7a
Author: jjoganic <jjoganic>
Date:   Tue Apr 8 05:34:45 2003 +0000

    Updated pressure code, formalized data path, protocol4 still needs help.

commit 3481e8eb59a80777b75b0ece238375f0319051c5
Author: jjoganic <jjoganic>
Date:   Tue Apr 8 01:08:11 2003 +0000

    Added const restriction on data path.

commit ea48d0f809d877f8c64e30d11d19de11e6792fe1
Author: jjoganic <jjoganic>
Date:   Tue Apr 8 01:00:32 2003 +0000

    Moving functionality around.

commit 3c5b0389419a403a84f96efd451c072af5bc6abd
Author: jjoganic <jjoganic>
Date:   Mon Apr 7 22:40:22 2003 +0000

    Moving state pieces around... maybe broken, sorry.  Will fix soon.

commit ce61117962774045fda6901fc817cb2248e6b794
Author: jjoganic <jjoganic>
Date:   Mon Apr 7 19:22:10 2003 +0000

    Fixed bug in tilt filter.

commit ee4cace0f4fe40d80d6caf4151ccfcb90e7c788c
Author: jjoganic <jjoganic>
Date:   Mon Apr 7 18:26:27 2003 +0000

    Quick bug fix.

commit bc706c12d1306234869bd812aacc770e5db6cb1f
Author: haoto <haoto>
Date:   Mon Apr 7 14:55:54 2003 +0000

    Set resolutions for USB tablets.

commit 3fd1d8728b92cfb88269f2a7d8096f045831abe1
Author: jjoganic <jjoganic>
Date:   Mon Apr 7 08:20:39 2003 +0000

    Updated log entry.

commit dd7ca14595dba41458062254e75aa66c4f2c339f
Author: jjoganic <jjoganic>
Date:   Mon Apr 7 06:33:05 2003 +0000

    Refactored xf86Wacom.c.

commit bdbbe6daedf72a8c056d1207cbbf1fc2af46303f
Author: jjoganic <jjoganic>
Date:   Thu Apr 3 03:13:54 2003 +0000

    Added Jonathan Paisley's reattach patch to evdev.c

commit 6ab7cff8e8cd93203282c0cfce35d61fae5fd86c
Author: jjoganic <jjoganic>
Date:   Thu Apr 3 03:03:54 2003 +0000

    Added J. Yen's "misc fixes" patch to xf86Wacom.c

commit 9a25da393ea410facd5f96eb864c8192ab139c1f
Author: jjoganic <jjoganic>
Date:   Tue Apr 1 05:52:57 2003 +0000

    Added fix for mousedev.c

commit 163e287cdff696a1aaf6e22e0a8707d320659a03
Author: jjoganic <jjoganic>
Date:   Sun Mar 23 06:09:11 2003 +0000

    Merged Dean Townsley's ISDV4 patch.

commit 80d41e3ca955a5062de702791c467ac06dc4bf47
Author: jjoganic <jjoganic>
Date:   Sun Mar 23 05:56:42 2003 +0000

    Preparing updated 0.5 package.

commit aeda95cf693266a420875a8234def8359dcf3ac5
Author: jjoganic <jjoganic>
Date:   Sun Mar 23 05:56:06 2003 +0000

    Added xlib test.

commit f674ede38e6f308be4b33d2db82dc09b66c69f60
Author: jjoganic <jjoganic>
Date:   Sun Mar 23 05:54:42 2003 +0000

    Updated xidump.c

commit 6f5255a81bdd50eb871ab3ae3e2b269739b3a079
Author: jjoganic <jjoganic>
Date:   Sat Mar 22 23:54:47 2003 +0000

    Added ncurses detection.

commit 3cd882e951424d30b98543bb85fe1ddcd6722d3a
Author: jjoganic <jjoganic>
Date:   Sun Mar 9 07:04:56 2003 +0000

    Adjusted valuator ranges for z-rot.

commit 7c7a9c7375310477d26f4adb8bd556dd7b255b50
Author: jjoganic <jjoganic>
Date:   Sun Mar 9 05:52:36 2003 +0000

    xidump now builds by default

commit 9ccfd5151ade65fca1af6365b53978bfe2be7683
Author: jjoganic <jjoganic>
Date:   Sun Mar 9 05:41:54 2003 +0000

    Added curses functionality to xidump.c

commit 5cc26895689ef103b9c8baca312591cc7025af12
Author: jjoganic <jjoganic>
Date:   Sat Mar 8 08:42:10 2003 +0000

    Added events.

commit 0fade22cf44de8624073b252e3b30ba32b4c95ea
Author: jjoganic <jjoganic>
Date:   Sat Mar 8 03:59:09 2003 +0000

    Added class info to device list.

commit 5ef805aa40705bea7d51e3f585ceca7e46b38d37
Author: jjoganic <jjoganic>
Date:   Sat Mar 8 01:09:27 2003 +0000

    Gets device- need window and grab.

commit 90d1c2009182c5042e1313d2b928ea087f125081
Author: jjoganic <jjoganic>
Date:   Fri Mar 7 23:35:39 2003 +0000

    Added device list capability to xidump.c

commit 16d4d29c678a3515ed688dba4d8e19d59652446a
Author: jjoganic <jjoganic>
Date:   Fri Mar 7 22:21:37 2003 +0000

    Added tabletdev.c framework.

commit 0a463cacfe14356777f1e094527419f674501f88
Author: jjoganic <jjoganic>
Date:   Fri Mar 7 06:26:37 2003 +0000

    Added input.c to project.

commit 7ab8acf6011496cf6323cfd8350c13df8bef2624
Author: jjoganic <jjoganic>
Date:   Fri Mar 7 05:24:42 2003 +0000

    Added evdev.c and Jonathan Paisley's oops patch.

commit 83420572b306a3584e920d91945894518f058539
Author: jjoganic <jjoganic>
Date:   Fri Mar 7 04:21:31 2003 +0000

    Added xidump.c

commit 08dcb8e0c2b818c4b53d2e8b08c2210e9e2fef86
Author: jjoganic <jjoganic>
Date:   Fri Mar 7 04:15:22 2003 +0000

    Applied Ping Cheng's suppress patch.

commit fb1e79cb7aec11faa5b5e25c19b20c6eaac81b8b
Author: jjoganic <jjoganic>
Date:   Sun Feb 23 06:56:57 2003 +0000

    Updated version number.

commit 2a053aa62fcb4cdcf1b7c0c37d8a7dc8df8e9a4c
Author: jjoganic <jjoganic>
Date:   Sun Feb 23 05:01:50 2003 +0000

    Added J. Yen's origin patch.

commit bb7584421590f0478861d923d9f8a3f3c439df9c
Author: jjoganic <jjoganic>
Date:   Sun Feb 23 04:53:55 2003 +0000

    Multi-monitor patch; XFree86 v3.x build options.

commit 3c06228e166931eedea3e42f79c590e490a895fb
Author: jjoganic <jjoganic>
Date:   Thu Feb 13 01:35:57 2003 +0000

    Updated changelog.

commit 4b905d9259bb213d257b3dd0c6380f734c08c22e
Author: jjoganic <jjoganic>
Date:   Thu Feb 13 01:34:21 2003 +0000

    Updated patch and documentation.

commit 845f2d0c8b9aa40a587473dbf2e1acd953c7986c
Author: jjoganic <jjoganic>
Date:   Wed Feb 12 20:05:54 2003 +0000

    Added version option and fixed usage.

commit a9c8114e3bd36fad78eef2661ca7d1a8da4f1011
Author: jjoganic <jjoganic>
Date:   Wed Feb 12 17:52:52 2003 +0000

    Applied patches for PL and USB.

commit c1619ec02e0c542231a14a7b4c6e12a6e1a0318c
Author: jjoganic <jjoganic>
Date:   Sat Feb 1 06:25:42 2003 +0000

    Fixed serial number code.

commit 865915dcb358c6294318de1bc083d40a5e0c8a4d
Author: jjoganic <jjoganic>
Date:   Sat Feb 1 05:19:22 2003 +0000

    Adding Ping Cheng's PL code.  Swapped perror for SerialLog in wacserial.c.

commit 8250a2528f1516e2ca4aa468b12d941bb3192571
Author: jjoganic <jjoganic>
Date:   Sat Feb 1 03:34:48 2003 +0000

    Fixes delay in launching X when a tablet is configured in XF86Config but
    not plugged in.

commit f42c87580dd121cbb944e7b67886a7f2626c8f0f
Author: jjoganic <jjoganic>
Date:   Sat Feb 1 02:42:32 2003 +0000

    Updated for new release.

commit 1658af81a0a08eec0ac169e948652d39e73c879c
Author: jjoganic <jjoganic>
Date:   Sat Feb 1 01:59:01 2003 +0000

    Fixed function prototype.

commit bfc68acbca01fcdbaef6da450c408e59a0d8b487
Author: jjoganic <jjoganic>
Date:   Tue Jan 28 03:05:14 2003 +0000

    Added logging, timeouts, and serial reset on bit errors.

commit b12611e2d51517f8835a363fa339749bb14b9486
Author: jjoganic <jjoganic>
Date:   Tue Jan 28 00:04:21 2003 +0000

    Added timeout for reset and tablet detection in wacserial.c

commit df8cda42a9eaf4f19aad5568b5bdf0387b330bbf
Author: jjoganic <jjoganic>
Date:   Mon Jan 27 23:26:48 2003 +0000

    Changed macros from WAC_ to WCM_ to solve bug in Mandrake 9's autoconf.

commit 94cd3b31ed4a46a3084110439bdbda77cc79029a
Author: jjoganic <jjoganic>
Date:   Mon Jan 27 23:19:07 2003 +0000

    Added missing file, as well as documentation.

commit 433bd2c4a6330110eb020c2c2e5df37fa960f6a3
Author: jjoganic <jjoganic>
Date:   Mon Jan 27 06:53:14 2003 +0000

    Fixed Acer C100 model name and description.

commit 65522f525f01cb6bb1d05b6c1d76f608d3250c14
Author: jjoganic <jjoganic>
Date:   Mon Jan 27 06:32:59 2003 +0000

    Merged Dean Townsley's patch.  Added device detection structures.

commit b6b72c0f0ae0392973501c5f4f9524231bea49b2
Author: jjoganic <jjoganic>
Date:   Sun Jan 26 05:38:23 2003 +0000

    Updated version, added macros for pre 2.4.5 kernel build.

commit a49f1a8458ea431b88633b06f45c517024128115
Author: jjoganic <jjoganic>
Date:   Sun Jan 26 05:28:20 2003 +0000

    Moved USB code to new file.  Linux-specific stuff isolated.

commit c0a093d29e1c89430ad4944212cb7d4bc838d0f3
Author: jjoganic <jjoganic>
Date:   Thu Jan 16 18:12:55 2003 +0000

    Added fix for Madrake's .o.gz modules in configure.

commit 65f0e2cc70053289aa48841cf18f68fbeb639ec5
Author: jjoganic <jjoganic>
Date:   Thu Jan 16 18:08:06 2003 +0000

    Removed dependency on text document.

commit 332aa5b949e12c165716f0ce004ac14d87955939
Author: jjoganic <jjoganic>
Date:   Fri Jan 10 23:05:08 2003 +0000

    Updated graphire macros.

commit fafe87883437e99da012c3efff07f35aa3e5073b
Author: jjoganic <jjoganic>
Date:   Fri Jan 10 01:41:24 2003 +0000

    Updated Intuos and Intuos2 sizes.

commit c6115b436739f1c3c04f00c7e122b139d2e99ca2
Author: jjoganic <jjoganic>
Date:   Fri Jan 10 01:17:20 2003 +0000

    Added patch for HID_QUIRK.

commit 8e353dbf4d3193d2ff5ec1f5c2483211e97f3439
Author: jjoganic <jjoganic>
Date:   Thu Jan 9 23:36:01 2003 +0000

    Added no-merge-constants patch, fixed I2 4x5 Ymax.

commit 2c49cd3148f1e7b0a2bee0a557aa23eab872c0d0
Author: jjoganic <jjoganic>
Date:   Tue Jan 7 04:16:48 2003 +0000

    Text document contains too many html-artifacts; removing for sanity sake.

commit 423755ff82c4a99984d256ce9aa4d83ae1f41147
Author: jjoganic <jjoganic>
Date:   Tue Jan 7 04:12:21 2003 +0000

    Updated for new release.

commit 322e67c910008d28fb0037afe2ca7836d9f313b5
Author: jjoganic <jjoganic>
Date:   Tue Jan 7 03:57:20 2003 +0000

    Added volito to hid-core.c

commit a12ac480b25fe9a2210e65bc7febbb00d4b4d996
Author: jjoganic <jjoganic>
Date:   Tue Jan 7 03:44:06 2003 +0000

    Unknown reports now info, not err.  Updated version numbers.

commit f634cc4c46d2be7f5c6309c00efbeb229bbbb454
Author: jjoganic <jjoganic>
Date:   Thu Jan 2 03:27:32 2003 +0000

    2D mouse buttons fixed in xf86Wacom.c serial.

commit 7e1e4c6f7be928d9fa1a27ffd0d956af889a2ef3
Author: jjoganic <jjoganic>
Date:   Thu Jan 2 02:55:22 2003 +0000

    Added penpartner and graphire.

commit e2063d328fdbdfe701a7ac22234a7ec92376e687
Author: jjoganic <jjoganic>
Date:   Thu Jan 2 02:19:39 2003 +0000

    Fix to volito range.  Updated wacdump refresh.

commit 8ba73f5029f09d384030c32097c009a969c835ae
Author: jjoganic <jjoganic>
Date:   Wed Jan 1 02:02:43 2003 +0000

    Automatic module loading for wacom and evdev for usb.

commit 70e4ea36fda06ef197f06b119ec005e2f123be3d
Author: jjoganic <jjoganic>
Date:   Wed Jan 1 01:59:54 2003 +0000

    Fix for unknown report #1 using kernel thread.

commit eb42de7b257ad25753a356007ec2a6fc401e6e7c
Author: jjoganic <jjoganic>
Date:   Wed Jan 1 00:54:17 2003 +0000

    Added Ping Cheng's new tool IDs.

commit a1e3b7128a56b530cc0f11f9f15a51fa5cbbcc82
Author: jjoganic <jjoganic>
Date:   Fri Dec 27 15:46:08 2002 +0000

    Added test client code.

commit 9d41e18c129678ba5f6dc3d330fb032bc46efc75
Author: jjoganic <jjoganic>
Date:   Fri Dec 27 05:33:52 2002 +0000

    Added module loading for wacom and evdev.

commit 1b14fe5644ec70c936f30ffc0341b9b4712c927d
Author: jjoganic <jjoganic>
Date:   Thu Dec 26 19:28:09 2002 +0000

    Fixed tablet initialization.

commit ba23e0362c2fd1aa72bea910812382d2bb9ed229
Author: jjoganic <jjoganic>
Date:   Mon Dec 23 02:44:28 2002 +0000

    Initial revision

Generated by dwww version 1.15 on Thu Jun 27 23:08:16 CEST 2024.