commit 9220a1b16d1336298612ece5bcd832ec93e6f1e4
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jan 5 10:46:04 2025 -0800

    xf86-input-synaptics 1.10.0
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 3d1486dbe9dd0c35e746baea306894075392008c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Wed Dec 4 16:19:31 2024 -0800

    Variable scope reductions
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/20>

commit ca05a6034eeeb179874c0c43ba5e70d6111804ca
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Wed Dec 4 13:47:53 2024 -0800

    Use snprintf instead of sprintf
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/20>

commit 2a60fb4fb4d87df00710d3f8457f265c5729c4ab
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date:   Tue Feb 20 12:47:08 2024 +0100

    descriptive warning message instead of BUG_WARN() anymore
    
    Since current xserver mainline dropped BUG_WARN() macro from os.h and
    we only use it twice, it's trivial to just print the warning directly
    and at that point make it a bit more descriptive.
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/12>

commit a0becc7957046ad87b36f568dd0102445f6362fc
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date:   Tue Feb 20 11:04:40 2024 +0100

    fix FTBS against recent xorg server tree
    
    Recent xserver master moved out the BUG_*() macros from os.h,
    causing FTBS on xf86-input-synaptics:
    
    > synaptics.c: In function 'clickpad_guess_clickfingers':
    > synaptics.c:2638:5: error: implicit declaration of function 'BUG_RETURN_VAL' [-Werror=implicit-function-declaration]
    > 2638 |     BUG_RETURN_VAL(hw->num_mt_mask > sizeof(close_point) * 8, 0);
    
    Since that macro is only used once, and that particular case deserves some
    more expressive error message anyways, it's trivial doing an explicit
    error printout here, instead of having to support the BUG_* macros as
    official module API on xserver side forever.
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
    Reported-By: Peter Hutterer <peter.hutterer@who-t.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/12>

commit 89900bcf4df0fa9c205ea25a4f060907a95f454d
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date:   Tue Feb 20 16:21:11 2024 +0100

    eventcomm: fix possible buffer overflow
    
    eventcomm.c: In function 'EventAutoDevProbe':
    eventcomm.c:1045:32: warning: '%s' directive writing up to 255 bytes into a region of size 53 [-Wformat-overflow=]
     1045 |             sprintf(fname, "%s/%s", DEV_INPUT_EVENT, namelist[i]->d_name);
          |                                ^~
    eventcomm.c:1045:13: note: 'sprintf' output between 12 and 267 bytes into a destination of size 64
     1045 |             sprintf(fname, "%s/%s", DEV_INPUT_EVENT, namelist[i]->d_name);
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/15>

commit 373139dd06a8e824cf98b8ca166b6f587a8c5368
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date:   Mon Jun 10 11:14:18 2024 +0200

    drop compat with ancient Linux kernel
    
    linux-2.6.30 was released 15 years ago - doesn't seem to be necessary
    to still support such ancient kernels.
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>

commit 64407e809dd7a75516acd3178aa77db7dc04e19d
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date:   Tue May 14 11:07:52 2024 +0200

    bump minimal xorg version to 1.18
    
    1.18 was released a decade ago, so it seems reasonable stop supporting
    older ones.
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/18>

commit 6330833fd10f97a6721470ceb037a224aa720b8f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun May 12 14:42:27 2024 -0700

    Take care of -Wempty-body warning from call to empty PS2DBG macro
    
    ps2comm.c: In function ‘ps2_synaptics_get_packet’:
    ps2comm.c:477:49: warning: suggest braces around empty body in an ‘else’ statement [-Wempty-body]
      477 |                 PS2DBG("faked reset received\n");
          |
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/17>

commit 7e68eb70ca5139d5b4c8a07791323866308530a0
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun May 12 14:39:01 2024 -0700

    Clear 9 of 9 -Wimplicit-fallthrough warnings
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/17>

commit dbc772982ec15b0132fa41f64221087bb149e78f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun May 12 14:31:35 2024 -0700

    Quiet -Wredundant-decls from xorg/os.h fallbacks for timingsafe_memcmp
    
    The Xorg headers provide their own version of timingsafe_memcmp for
    platforms that don't have them in libc yet, but rely on configure to
    set HAVE_* defines to determine if they should be defined in the headers.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/17>

commit e3f6c5c6420f9e372a63ae7a7a74cb2cea868156
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun May 12 14:25:29 2024 -0700

    Fix -Wold-style-declaration warning
    
    synaptics.c:143:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
      143 | const static struct {
          | ^~~~~
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/17>

commit d21c533fd5b5a4aa47618b47dc4aa79fecd8d961
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun May 12 14:21:12 2024 -0700

    Raise minimum supported Xserver version from 1.12 to 1.15
    
    Drops support for ABI_XINPUT_VERSION < 20, including removing support
    for driver-side coordinate scaling, since the X server handles it now.
    
    Xserver 1.15 was released in Dec. 2013.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 46d05329624e09050a6bfa76c0dae0963d0712c9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Jan 5 17:10:41 2024 -0800

    Handle a -Wstrict-prototypes/-Wold-style-definition pair of warnings
    
    synclient.c:196:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
      196 | dp_init()
          | ^~~~~~~
    synclient.c: In function ‘dp_init’:
    synclient.c:196:1: warning: old-style function definition [-Wold-style-definition]
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit a9bf2939f0a6536a792515d6fda29a7c754274c6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Jan 5 17:08:13 2024 -0800

    Handle 5 -Wmissing-prototypes warnings
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit f52912d06279d4c32e5031d1416f2f273bb42116
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Jan 5 17:01:50 2024 -0800

    Fix 185 -Wdiscarded-qualifiers warnings
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 13a26918d848bc8feeaaf59293f793c2af1ce52e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Jan 5 16:55:03 2024 -0800

    Add X.Org's standard C warning flags to AM_CFLAGS
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 8cdcdd12795ee66a19ce4ca4b6630f1f4bb83b32
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Dec 2 15:03:41 2023 -0800

    configure: updates to quiet obsolete macro warnings
    
    Clears autoconf warnings:
    
    configure.ac:38: warning: The macro 'AC_PROG_LIBTOOL' is obsolete.
    configure.ac:38: You should run autoupdate.
    aclocal.m4:3515: AC_PROG_LIBTOOL is expanded from...
    configure.ac:38: the top level
    configure.ac:68: warning: The macro 'AC_HELP_STRING' is obsolete.
    configure.ac:68: You should run autoupdate.
    ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
    configure.ac:68: the top level
    configure.ac:78: warning: The macro 'AC_HELP_STRING' is obsolete.
    configure.ac:78: You should run autoupdate.
    ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
    configure.ac:78: the top level
    
    libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
    libtoolize: and rerunning libtoolize and aclocal.
    libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit f642d1700ca6579f025008c04f02453219b93084
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Oct 1 12:13:46 2023 -0700

    gitlab CI: ensure libtool is installed in build container
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 8970519bf9f56bf8afe8ac6ca7f996f825721474
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Thu Jul 28 17:30:21 2022 -0700

    gitlab CI: stop requiring Signed-off-by in commits
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit bf3c0cb38ad5dba43f0454e655e0448712cb412e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 10 16:32:38 2022 -0700

    xf86-input-synaptics 1.9.2
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit ae160fc87bd2d52e0ab807b31dc2682beb3db772
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jan 16 13:04:35 2022 -0800

    Convert remaining source files from ISO-8859-1 to UTF-8
    
    Most were already converted.  Fixes error raised by FlawFinder in CI:
    Error: encoding error in ./src/synaptics.c
    'utf-8' codec can't decode byte 0xa9 in position 16: invalid start byte
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 74282e856cb09c18460dd81ae2e5cac8cc531d51
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jan 16 12:46:06 2022 -0800

    gitlab CI: add a basic build test
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 592215a584100db752cde86f6e9fb2115212a648
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jan 16 12:42:17 2022 -0800

    Fix spelling/wording issues
    
    Found by using:
        codespell --builtin clear,rare,usage,informal,code,names
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 6d6c2e79221e6f362d1f47d3e52259e1d4e32315
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jan 16 12:37:06 2022 -0800

    Build xz tarballs instead of bzip2
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 3e4bc35dfe96208fc55d1b5a279206a2013153ef
Author: Pip Cet <pipcet@gmail.com>
Date:   Fri Apr 9 16:58:38 2021 +0000

    synclient: allow negative/large values for AreaLeftEdge etc.

commit 7c32bc6f1f689b2c877be3a6b65a68844f9ce7e4
Author: Ariadne Conill <ariadne@dereferenced.org>
Date:   Tue Jul 28 04:03:08 2020 -0600

    eventcomm: fix compile with pre-time64 kernels

commit 073b1b40bde9935928758c3452176c0d8dc67370
Author: Ariadne Conill <ariadne@dereferenced.org>
Date:   Wed Jul 22 02:29:08 2020 -0600

    eventcomm: use 64-bit time safe accessors instead of timeval directly
    
    when building on a 32-bit host with 64-bit time_t, using the
    input_event and input_event_usec accessors are necessary to deal with
    translation.

commit a4e5f74b589441077678d5d1546f7de0365a4627
Author: Matthieu Herrb <matthieu@herrb.eu>
Date:   Sun Feb 10 17:29:22 2019 +0100

    Use fabs() instead of abs() on double values.
    
    Silences clang warnings.
    
    Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
    Reviewed-by: Walter Harms <wharms@bfs.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f8d896ddca8f24fcbe115366db9ab3ce2badefd1
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 25 12:50:31 2018 -0800

    Update configure.ac bug URL for gitlab migration
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 8e61f0d57ecf967d523cd0ca63088120a12e942a
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 18 12:01:00 2018 -0800

    Update README for gitlab migration
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit a46338a9923a2434b130cdaaed014e54020edf2a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 29 13:17:59 2018 +1000

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

commit 9f3a6ac97e9d3f13cdfb38e54fbce92452025830
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 14 09:49:00 2018 +1000

    eventcomm: if we get a read error other than EAGAIN, remove the fd
    
    Otherwise poll() keeps on triggering on our fd until udev gets around to
    notifying the server that the device is in some state of deadness. Meanwhile,
    the input thread is busy filling the log up with "Read error" messages. Great
    way to test file systems and their capacity to handle out of space scenarios
    but otherwise a bit pointless. Those FS developers should write their own
    tests instead of relying on the synaptics driver!
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Adam Jackson <ajax@redhat.com>

commit 59eb0c372b615fce5039e69b5067adc0efe5b64b
Author: Luca Castagnini <ilfigliodellaparolaavuoto@gmail.com>
Date:   Wed Oct 25 12:14:45 2017 +0200

    Replace SA_ONESHOT with the more portable SA_RESETHAND.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 6d3749105d964da5b4e534206fdb47f5ff8a697f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 17 13:10:31 2017 +1000

    Drop HandleTouches - it's a noop
    
    With the removal of touch events in 0a4cf80a00663, this function is a noop. It
    merely counted the number of touches but discarded the result. And
    UpdateTouchState does the update anyway.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=102209
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit afa8d7bb469e7ce01d9239f0dd790d3d620bfbd6
Author: Mihail Konev <k.mvc@ya.ru>
Date:   Thu Jan 26 14:00:21 2017 +1000

    autogen: add default patch prefix
    
    Signed-off-by: Mihail Konev <k.mvc@ya.ru>

commit 703b44fa687148e400f3a92bfe3a7e120e6c355e
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 9 12:00:52 2015 +0000

    autogen.sh: use quoted string variables
    
    Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
    fall-outs, when they contain space.
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3261e07c923c449f08a96a8439c97479b7ff899c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Nov 18 13:00:09 2016 +1000

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

commit a7d76f4275a88d98b18eed29a1ee94a70e7fa367
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Sun Oct 9 19:27:47 2016 +1000

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

commit 35b9472a189c88415fed137fb4c62a5081caaea5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 15 13:47:09 2016 +1000

    Remove unused fraction calculations
    
    hw.x and the motion history are integers so our deltas are always integers.
    It's a bit pointless to split them into the fractional and integral part.
    
    obsolete since defc1d008e5674306a or so
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 486322116d70365c2e2a1d9f45830057fa03153e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 17 11:32:12 2016 +1000

    eventcomm: don't ever probe if a device is set
    
    If opening the fd fails we still need to fail the device. This is particularly
    the case when a device disappears before we can open it - the current code
    wouldn't exit but instead switch to auto-probe touchpad devices on the system.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit cd9f9799235aefff1ec1a0af9ec6b45969119659
Author: Anton Lindqvist <anton.lindqvist@gmail.com>
Date:   Fri Aug 5 10:21:59 2016 +0200

    syndaemon: enable touchpad when pressing a modifier combo
    
    When ignoring modifiers, ensure the touchpad is enabled once a modifier
    key is pressed disregarding any previous key press that caused the
    touchpad to be disabled.
    
    Signed-off-by: Anton Lindqvist <anton.lindqvist@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 248c5936a0151d0766a95457330c7d3ef9335b94
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 2 10:05:02 2016 +1000

    Support XINPUT ABI version 23
    
    Use input_lock/input_unlock calls instead of SIGIO functions
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 59e5db025307404fbfbc82f2fb3fe91d6a3005d7
Author: Stefan Dirsch <sndirsch@suse.de>
Date:   Thu May 19 17:35:57 2016 +0200

    conf: rename to 70-synaptics.conf
    
    Bump up the synaptics driver to 70, so it get's preferred over libinput, which
    was dropped down to 60. The synaptics driver is more of a leaf package
    than libinput (which covers a multitude of device types) and can be removed by
    default. When specifically installed by the user, the synaptics driver should
    override the system default.
    
    Similar to what was done for wacom configuration file.
    
    https://bugzilla.suse.com/show_bug.cgi?id=979554
    
    Signed-off-by: Stefan Dirsch <sndirsch@suse.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 979fbec84197cd2c8ea3ffdd8e7726e8a617328b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 29 10:51:17 2016 +1000

    Revert MaxDoubleTapTime back to 180
    
    Fallout from 90c6d7fc60f3db1bd9db1c7702062fcaef3b3352 where it got changed to
    100ms. This is too short for triple-tap-and-drag gestures so revert it to the
    previous value.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95171
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 2a1a17244f067b2ae893ea01d737e135586b151c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Apr 29 08:48:19 2016 +1000

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

commit f1f58fffbf482de74bc7907e0af69feb9fe88a45
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Apr 27 09:29:27 2016 +1000

    eventcomm: fix typo checking for two-finger scrolling
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0a4cf80a00663ff3ce8e76baf0940782576efe13
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Mar 26 16:28:56 2015 +1000

    Drop touch events from the driver
    
    This was a bad idea. No-one seems to use this and it gives us little benefits.
    To even get this feature a number of other features need to be turned off
    (like two-finger scrolling and tapping). Many of these are enabled by default,
    if they are disabled a client stack with full touchpad gesture support could
    in theory support true touchpad gestures. This has never happened.
    
    Drop the touch events from the synaptics driver. This allows us to switch the
    touchpad fully over to look like a relative device, thus also removing the
    bug that changes the touchpad speed whenever a monitor is added/removed in.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 7aa327603fb2a8af58c8df6f4a4dd46e8294050e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 17 15:31:08 2015 +1000

    eventcomm: ignore key repeat events
    
    Usually doesn't happen, but the evtest output in
    https://bugs.freedesktop.org/show_bug.cgi?id=90392
    actually has repeat events for the button. Ignore them if they happen.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fc9f490a2c87e6f87b0f483cd6bf5f526dddbb8d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 24 15:41:39 2015 +1000

    eventcomm: ignore fake and broken MT devices
    
    An MT device without X/Y is not a touchpad. And neither are fake MT devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 30866b97be6939b895327b930154ef758eed7ff8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 23 11:38:15 2015 +1000

    eventcomm: prevent possibly division by zero
    
    This came up as a kernel bug, but it's valid to create uinput devices with a
    min == max range for x/y. Technically valid, but effectively useless, so catch
    it, complain and hobble on along.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 5378a020a003cbdfa565d43c9e01997b570059c9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Mar 17 16:06:41 2015 +1000

    Revert "Support the new Lenovo X1 Carbon 3rd trackpoint buttons"
    
    This reverts commit 064445364b4775b25ba49c2250b22b169f291147.
    
    The Lenovo *50 series, including the X1 Carbon 3rd always require multiple
    kernel patches to enable the touchpad buttons. This patch in synaptics only
    addresses the re-routing of the top buttons.
    
    The final iteration of the kernel patches also route the trackpoint buttons
    through the trackpoint device, rendering this patch unnecessary. These patches
    are queued for 4.0.
    
    See kernel patch series up to commit cdd9dc195916ef5644cfac079094c3c1d1616e4c
    Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Date:   Sun Mar 8 22:35:41 2015 -0700
    
        Input: synaptics - re-route tracksticks buttons on the Lenovo 2015 series
    
    Currently in Dmitry's for-linus branch.
    
    Distributions running older kernels or the kernel stable series which has
    partial backports of the above patch series are encouraged to leave the
    0644453 commit in and undo this revert.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 00db769067fa0703f96284bd50ea384efd47e2de
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 6 11:06:41 2015 +1000

    conf: add Lenovo T450s and W451 to rules
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 37d34f0356cc556dd8a49ec5d1ed64d49417a9b2
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Thu Jan 15 22:04:17 2015 +0100

    Add a delay between the second button down-up event of double taps
    
    Some applications ignore the second tap of double taps because of the
    lack of a delay between the button down and button up events.
    
    Prevent this by replacing the transition from TS_2B to TS_START with a
    transition from TS_2B to TS_SINGLETAP that emits only a button down
    event. The button up event will be emitted when transitioning from
    TS_SINGLETAP to TS_START.
    
    In addition, decrease the default value of MaxDoubleTapTime from 180 ms
    to 100 ms in order to make double taps faster.
    
    Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 064445364b4775b25ba49c2250b22b169f291147
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jan 29 11:25:26 2015 +1000

    Support the new Lenovo X1 Carbon 3rd trackpoint buttons
    
    This device has the trackpoint buttons wired up to the touchpad to send BTN_0,
    BTN_1 and BTN_2 for left, right, middle. This conflicts with previous
    touchpads that used those event codes for dedicated scroll buttons.
    
    Add an option HasTrackpointButtons that can be set via a xorg.conf.d
    snippets. This option is not intended as a user-set option, rather
    we expect distributions to ship some conglomerate of udev/hal rules with
    xorg.conf snippets that take effect.
    
    If the option is set, we look at the three affected buttons at the beginning
    of HandleState and send button events immediately for them. The HW state is
    reset to neutral and other processing continues. This saves us from having to
    synchronize these buttons with software buttons (also present on this device),
    tapping, etc.
    
    Since the buttons are physically different and (mentally) associated with the
    trackpoint device we also don't need to worry about having finger motion event
    correctly synced up with the button presses - it's acceptable to send the
    presses before the motion events.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>

commit a357647d3fb918b94efbda98138fb0240a949ef2
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Thu Jan 15 22:04:16 2015 +0100

    Update machine state diagram
    
    The diagram didn't entirely reflect the current state of the code.
    
    Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 383355fa5f536205759f10efa99eaec4e5089376
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Fri Jan 9 17:01:42 2015 +0100

    Remove FastTap leftovers
    
    FastTap was removed with d14ea867ad5d ("Purge fast-taps option"),
    remove all of what remained.
    
    Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a05894d169be42f03d21fb8287da902d8c24c566
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Wed Jan 7 14:12:33 2015 +0100

    Don't assume that touch devices report per finger width and pressure
    
    The palm detection relies on both the width and the pressure.
    a897147be04 ("Use ABS_MT events for the palm detection when supported")
    assumed that all the touch devices can report both ABS_MT_TOUCH_MAJOR
    and ABS_MT_PRESSURE, but this is not necessarily true. This assumption
    could hence break the palm detection when at least one of the mentioned
    events is not declared but both ABS_TOOL_WIDTH and ABS_PRESSURE are
    reported.
    
    Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a897147be04d74ed452cda166fd4e01f9615ff72
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Tue Sep 16 17:20:15 2014 +0200

    Use ABS_MT events for the palm detection when supported
    
    Use ABS_MT_TOUCH_MAJOR and ABS_MT_PRESSURE instead of ABS_TOOL_WIDTH
    and ABS_PRESSURE when supported so that the pressure and the width of
    all the fingers is taken into account for the palm detection.
    
    This also fixes the palm detection for those touchpads for which the
    kernel only sends ABS_MT_TOUCH_MAJOR and not ABS_TOOL_WIDTH.
    
    Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 41b2312c006fca1f24e1a366174d3203a63fa04a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Sep 16 08:52:56 2014 +1000

    Limit the movement to 20 mm per event
    
    Touchpads are limited by a fixed sampling rate (usually 80Hz). Some finger
    changes may happen too fast for this sampling rate, resulting in two distinct
    event sequences:
    * finger 1 up and finger 2 down in the same EV_SYN frame. Synaptics sees one
      finger down before and after and the changed coordinates
    * finger 1 up and finger 2 down _between_ two EV_SYN frames. Synaptics sees one
      touchpoint move from f1 position to f2 position.
    
    That move causes a large cursor jump. The former could be solved (with
    difficulty) by adding fake EV_SYN handling after releasing touchpoints but
    that won't fix the latter case.
    
    So as a solution for now limit the finger movement to 20mm per event.
    Tests on a T440 and an x220 showed that this is just above what a reasonable
    finger movement would trigger. If a movement is greater than that limit, reset
    it to 0/0.
    
    On devices without resolution, use 0.25 of the touchpad's diagonal instead.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 049611bd7f04e285909c55807478306cce83385f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Sep 16 10:44:40 2014 +1000

    Prohibit negative or zero x/y resolutions
    
    Default resolution is 1, don't allow setting 0 to avoid divisions by 0 or
    just general weirdness.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit afbbcfa10eb3a2295823720907f35bb59972dd82
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 5 15:14:47 2014 +1000

    When resetting, reset the open slots to -1
    
    open_slots holds the slot index, resetting it to 0 is a bad idea. And make
    sure that we do reset after DEVICE_INIT. We already do so on DEVICE_CLOSE, but
    after the first DEVICE_ON the data could still be random.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

commit d239f831f17ccf5468f5dc6b2f199a9c1f6e35af
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 5 14:24:29 2014 +1000

    eventcomm: add missing axis labels to avoid array overrun
    
    And warn when we run out of labels.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

commit 4d3d761799436e80fbcf0d99797eed35e68c90d2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 5 14:15:46 2014 +1000

    Shut up a coverity warning
    
    xf86-input-synaptics-1.8.0/src/synaptics.c:498: var_compare_op: Comparing
    "end_str" to null implies that "end_str" might be null.
    
    end_str can't be null, so no need for this check and no need to get Coverity
    all confused.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

commit 536e17c83e565ddba9c7c5a4cd613edf8378e9aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Sep 5 14:13:08 2014 +1000

    Mark some switch case fallthroughs with comments
    
    Just to make it explicit
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

commit ec0901e5f81d9cad6cc8bbdcb5ea075009c13de5
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Thu Aug 14 20:03:42 2014 +0200

    Use cumulative relative touch movements while scrolling
    
    Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 90d19302306f49722e210227b2fb5161e6f51880
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 28 14:13:38 2014 +1000

    eventcomm: ensure we're on the same clock as the server
    
    Default on evdev devices is CLOCK_REALTIME. If that clock falls behind the
    server's CLOCK_MONOTONIC, motion after a clickpad click may be delayed by the
    difference in the clocks.
    
    In detail:
    When the timer func is triggered, GetTimeInMillis() which is CLOCK_MONOTONIC,
    is stored as hwState->millis. The eventcomm backend uses struct
    input_event time (CLOCK_REALTIME).
    
    When we read events from the device, if the evdev time is less than the server
    time, the fix for (#48777) sets the current event time to hwState->millis.
    Until the evdev time overtakes that stored time, all events have the
    hwState->millis time.
    
    If during that time a clickpad triggers a physical click,
    clickpad_click_millis is set to hwState->millis + the ignore-motion timeout.
    Thus, all motion is ignored until the event time overtakes that stored
    time.
    
    The whole issue is further enhanced by us unconditionally setting the timer
    func if we get any events, which is a separate issue anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 96e60a4ea242d2decf109835981ae186cc36f642
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Aug 29 07:57:41 2014 +1000

    Include xorg-server.h to fix build errors on newest glibc
    
    In file included from /usr/include/string.h:634:0,
                     from /usr/include/xorg/os.h:53,
                     from /usr/include/xorg/misc.h:115,
                     from /usr/include/xorg/xf86str.h:37,
                     from /usr/include/xorg/xf86Xinput.h:54,
                     from synproto.h:36,
                     from synproto.c:24:
    /usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__'
     strndup(const char *str, size_t n);
    
    See http://lists.freedesktop.org/archives/xorg-devel/2014-July/043070.html
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 68d22ecf145bb9073121fd3a9fc1fdd0f880e48b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 28 16:50:18 2014 +1000

    Silence two compiler warnings
    
    Potentially uninitialized, false positive in both cases.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7d0ff39519e4d3760722b914883bee276035061c
Author: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Date:   Sun Jul 27 12:58:18 2014 +0200

    Prevent two-finger taps from being ignored
    
    When two fingers are used, the coordinates of only one of them is taken into
    account. This can lead to sudden variations of the absolute coordinates when
    two-fingers taps are performed if the finger considered changes.
    
    Take into account coordinates variations to prevent unwanted taps only if
    the number of fingers doesn't change.
    
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a36edf8307ab9b5bffca103dd875623a66012c0b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 15 08:34:55 2014 +1000

    Use libevdev's per-device logging functions instead of the global handler
    
    Per-device logging functions don't interfere with other drivers if they also
    use libevdev, so use those instead the global log handler if available. If not
    available, drop libevdev logging, I don't want to maintain the ifdef mess and
    the logging doesn't give us _that_ much benefit.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c1457c0f71e30c194180164320759849fa09bf9b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 29 14:44:43 2014 +1000

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

commit 730101223432f60397c61f74a5e6789b3ee34ecd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 6 12:04:14 2014 +1000

    conf: increase top software button area to 15%
    
    We had reports that the top software button area is hard to hit for those
    using the trackpoint and clicking the buttons with their thumb.
    
    Analysis of event recordings (3 different people) for left, right and middle
    clicks shows that there is a significant amount of events up to about 10mm
    (with outliers up to 12mm) from the top of the touchpad. That maps to 15%.
    
    Interestingly, the middle button does not seem to need this, presumably the
    haptic feedback of the little dots sticking out from the surface make hitting
    the button easier. Its size is increased to 15% anyway, for simplicity and
    because a sample set of 3 is too small to be definitive about this.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit ddd8844a47bfa28974e40fc9aec9b17656415a6c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 19 08:06:46 2014 +1000

    eventcomm: Drop requirement for a grab during init
    
    When we required a grab on the device, this was a shortcut so we didn't have
    to query the device only to realise we can't read events off it anyway. Now
    that we don't actually grab the device by default, this is unnecessary.
    
    Something else may have a temporary grab on the device during init, in which
    case we just continue as usual and read events if and when they become
    available.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

commit 3a4cc96590ca0e0ff526a5e5406f29a402bddd1a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 13 11:20:25 2014 +1000

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

commit d4d7229c41a20cf6757882a24f45e28d936a27c5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Apr 30 13:08:53 2014 +1000

    conf: drop the PNPID matching from the fdi file
    
    Rely on INPUT_PROP_TOP_BUTTONPAD and default button areas as well.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit a31ecb669f40d8db3ab1867eaedfe364bbd6fafe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Apr 30 07:45:34 2014 +1000

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

commit efa424b5c9c084c1c1136a68329709c7dc9ddfda
Author: Clinton Sprain <clintonsprain@gmail.com>
Date:   Tue Apr 29 19:47:17 2014 -0500

    Fix product ID cutoff for MODEL_APPLETOUCH/MODEL_UNIBODY_MACBOOK
    
    Some Macbooks are being tagged as MODEL_UNIBODY_MACBOOKs when they should not
    be. This causes the default sensitivity to be very low for them, making the
    touchpad almost unusable. This change puts those devices into the correct
    bucket again.
    
    Signed-off-by: Clinton Sprain <clintonsprain@gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 7bf27568417691e772e715f8fc6c30ea7ec892d6
Author: Hans de Goede <hdegoede@redhat.com>
[--snip--]
