Commit 5b2c7a3b authored by Peter Hutterer's avatar Peter Hutterer

evdev: disable ABS_MT_TOOL_PALM on the Lenovo X1 Carbon 6th gen

This device randomly decides that a touch is now a palm, based on
the moon phase, the user's starsign and possibly what the dog had for
breakfast. Since libinput assumes that a touchpad that labels a touch as palm
has reasons to do so, let's unassume this for this device by disabling that
axis altogether and relying on the touch pressure only.

https://bugzilla.redhat.com/show_bug.cgi?id=1565692Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires's avatarBenjamin Tissoires <benjamin.tissoires@gmail.com>
(cherry picked from commit 74e20e0a)
parent 831e1664
......@@ -1273,6 +1273,7 @@ evdev_read_model_flags(struct evdev_device *device)
MODEL(TABLET_NO_PROXIMITY_OUT),
MODEL(MS_NANO_TRANSCEIVER),
MODEL(TABLET_MODE_NO_SUSPEND),
MODEL(LENOVO_CARBON_X1_6TH),
#undef MODEL
{ "ID_INPUT_TRACKBALL", EVDEV_MODEL_TRACKBALL },
{ NULL, EVDEV_MODEL_DEFAULT },
......@@ -1869,6 +1870,13 @@ evdev_pre_configure_model_quirks(struct evdev_device *device)
/* Logitech Marble Mouse claims to have a middle button */
if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
/* Lenovo Carbon X1 6th gen sends bogus ABS_MT_TOOL_TYPE events for
* MT_TOOL_PALM */
if (device->model_flags & EVDEV_MODEL_LENOVO_CARBON_X1_6TH)
libevdev_disable_event_code(device->evdev,
EV_ABS,
ABS_MT_TOOL_TYPE);
}
static void
......
......@@ -112,6 +112,7 @@ enum evdev_device_model {
EVDEV_MODEL_JUMPING_SEMI_MT = (1 << 10),
EVDEV_MODEL_LOGITECH_K400 = (1 << 11),
EVDEV_MODEL_LENOVO_X220_TOUCHPAD_FW81 = (1 << 12),
EVDEV_MODEL_LENOVO_CARBON_X1_6TH = (1 << 13),
EVDEV_MODEL_CYBORG_RAT = (1 << 14),
EVDEV_MODEL_HP_STREAM11_TOUCHPAD = (1 << 16),
EVDEV_MODEL_LENOVO_T450_TOUCHPAD= (1 << 17),
......
......@@ -239,6 +239,10 @@ libinput:name:*ALPS TrackPoint*:svnLENOVO:*:pvrThinkPadX280:*
libinput:name:AT Translated Set 2 keyboard:dmi:*svnLENOVO:*pvrThinkPadX1Yoga1st:*
LIBINPUT_MODEL_TABLET_MODE_NO_SUSPEND=1
# Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device)
libinput:name:Synaptics TM3288-010:dmi:*svnLenovo:*pvrThinkPadX1Carbon6th:*
LIBINPUT_MODEL_LENOVO_CARBON_X1_6TH=1
##########################################
# Logitech
##########################################
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment