quirks: add a quirk for the Lenovo T480s clickpad
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 13 Dec 2018 02:06:53 +0000 (12:06 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 18 Dec 2018 00:33:31 +0000 (10:33 +1000)
It's missing INPUT_PROP_BUTTONPAD but working kernel drivers prove to be
elusive. Meanwhile, add a quirk here that force-enables this bit.

Fixes #177

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 0cd65cf336c8cc242c471ac77aee7b7d816e7314)

quirks/50-system-lenovo.quirks
src/evdev.c
src/quirks.c
src/quirks.h

index 9fe961ad94dd079f38ef9c8077e0ab74269f7033..c45359e638dbe28030bd3e338dd51b6eed055d0b 100644 (file)
@@ -20,6 +20,11 @@ MatchName=Synaptics tm2964-001
 MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT440p*
 ModelLenovoT450Touchpad=1
 
+[Lenovo T480s Touchpad]
+MatchName=Elan Touchpad
+MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT480s*
+ModelLenovoT480sTouchpad=1
+
 [Lenovo X200 Trackpoint]
 MatchName=*TPPS/2 IBM TrackPoint
 MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX20?:*
index 4a998f41c5afc59350d9ae3d4f16c06f23b6e71a..ddd6d110bdace0aaf5d947a5036fdcfab2f8e85e 100644 (file)
@@ -1908,6 +1908,12 @@ evdev_pre_configure_model_quirks(struct evdev_device *device)
                libevdev_enable_property(device->evdev,
                                         INPUT_PROP_BUTTONPAD);
 
+       /* Touchpad is a clickpad but INPUT_PROP_BUTTONPAD is not set, see
+        * https://gitlab.freedesktop.org/libinput/libinput/issues/177 */
+       if (evdev_device_has_model_quirk(device, QUIRK_MODEL_LENOVO_T480S_TOUCHPAD))
+               libevdev_enable_property(device->evdev,
+                                        INPUT_PROP_BUTTONPAD);
+
        /* Touchpad claims to have 4 slots but only ever sends 2
         * https://bugs.freedesktop.org/show_bug.cgi?id=98100 */
        if (evdev_device_has_model_quirk(device, QUIRK_MODEL_HP_ZBOOK_STUDIO_G3))
index debedfb69e11e525f760c9d35154e6c82c7fbb77..fa12045b6aa52620568ef9ccd9fa7d553c3da3eb 100644 (file)
@@ -241,6 +241,7 @@ quirk_get_name(enum quirk q)
        case QUIRK_MODEL_HP_ZBOOK_STUDIO_G3:            return "ModelHPZBookStudioG3";
        case QUIRK_MODEL_LENOVO_SCROLLPOINT:            return "ModelLenovoScrollPoint";
        case QUIRK_MODEL_LENOVO_T450_TOUCHPAD:          return "ModelLenovoT450Touchpad";
+       case QUIRK_MODEL_LENOVO_T480S_TOUCHPAD:         return "ModelLenovoT480sTouchpad";
        case QUIRK_MODEL_LENOVO_X230:                   return "ModelLenovoX230";
        case QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD:     return "ModelSynapticsSerialTouchpad";
        case QUIRK_MODEL_SYSTEM76_BONOBO:               return "ModelSystem76Bonobo";
index 735ed56dc2a2d58971b7079fa9f26c00813d76be..1d731a488db0cc0ee262f48100c26ba50e7cb663 100644 (file)
@@ -73,6 +73,7 @@ enum quirk {
        QUIRK_MODEL_HP_ZBOOK_STUDIO_G3,
        QUIRK_MODEL_LENOVO_SCROLLPOINT,
        QUIRK_MODEL_LENOVO_T450_TOUCHPAD,
+       QUIRK_MODEL_LENOVO_T480S_TOUCHPAD,
        QUIRK_MODEL_LENOVO_X230,
        QUIRK_MODEL_SYNAPTICS_SERIAL_TOUCHPAD,
        QUIRK_MODEL_SYSTEM76_BONOBO,