summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2016-06-03 11:19:23 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2016-06-06 09:00:14 +1000
commit27078b2667def4ecde1f47b8258d510a576c8bb1 (patch)
tree62f026ddadf90b44ba3e6e90fb620319264f1f65
parentb2772abb46d3388a5eba14802dc2fc652c93cb7b (diff)
touchpad: restore the hysteresis by default
A large part of the bugs seen right now are related to touchpads jittering too much. Fixing them one by one is entertaining, but time consuming. Right now the number of touchpads that require a hysteresis seem to outnumber those that don't, so switch the approach around: leave the hysteresis in place but disable it for those touchpads that don't need it. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--src/evdev-mt-touchpad.c16
-rw-r--r--src/evdev.c2
-rw-r--r--src/evdev.h2
-rw-r--r--test/litest-device-synaptics-x1-carbon-3rd.c1
-rw-r--r--udev/90-libinput-model-quirks.hwdb20
5 files changed, 8 insertions, 33 deletions
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index a7b7a680..724de7f8 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -2076,27 +2076,17 @@ tp_init_hysteresis(struct tp_dispatch *tp)
{
int res_x, res_y;
- if (tp->device->model_flags & EVDEV_MODEL_CYAPA)
- goto want_hysteresis;
-
- if (tp->semi_mt &&
- (tp->device->model_flags & EVDEV_MODEL_SYNAPTICS_SERIAL_TOUCHPAD))
- goto want_hysteresis;
-
- if (tp->device->model_flags & EVDEV_MODEL_WOBBLY_TOUCHPAD)
- goto want_hysteresis;
-
tp->hysteresis_margin.x = 0;
tp->hysteresis_margin.y = 0;
- return;
+ if (tp->device->model_flags & EVDEV_MODEL_PRECISE_TOUCHPAD)
+ return;
-want_hysteresis:
res_x = tp->device->abs.absinfo_x->resolution;
res_y = tp->device->abs.absinfo_y->resolution;
-
tp->hysteresis_margin.x = res_x/2;
tp->hysteresis_margin.y = res_y/2;
+
return;
}
diff --git a/src/evdev.c b/src/evdev.c
index cfb4a91e..0227f515 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1806,7 +1806,7 @@ evdev_read_model_flags(struct evdev_device *device)
MODEL(CYBORG_RAT),
MODEL(CYAPA),
MODEL(LENOVO_T450_TOUCHPAD),
- MODEL(WOBBLY_TOUCHPAD),
+ MODEL(PRECISE_TOUCHPAD),
MODEL(TRACKBALL),
{ NULL, EVDEV_MODEL_DEFAULT },
#undef MODEL
diff --git a/src/evdev.h b/src/evdev.h
index 4fe2cb91..54d7ce74 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -114,7 +114,7 @@ enum evdev_device_model {
EVDEV_MODEL_CYBORG_RAT = (1 << 14),
EVDEV_MODEL_CYAPA = (1 << 15),
EVDEV_MODEL_LENOVO_T450_TOUCHPAD= (1 << 17),
- EVDEV_MODEL_WOBBLY_TOUCHPAD = (1 << 18),
+ EVDEV_MODEL_PRECISE_TOUCHPAD = (1 << 18),
EVDEV_MODEL_TRACKBALL = (1 << 19),
};
diff --git a/test/litest-device-synaptics-x1-carbon-3rd.c b/test/litest-device-synaptics-x1-carbon-3rd.c
index 23d9c5b4..9d4034db 100644
--- a/test/litest-device-synaptics-x1-carbon-3rd.c
+++ b/test/litest-device-synaptics-x1-carbon-3rd.c
@@ -121,6 +121,7 @@ static const char udev_rule[] =
"\n"
"ATTRS{name}==\"litest SynPS/2 Synaptics TouchPad X1C3rd\","
" ENV{LIBINPUT_MODEL_LENOVO_T450_TOUCHPAD}=\"1\"\n"
+" ENV{LIBINPUT_MODEL_PRECISE_TOUCHPAD}=\"1\"\n"
"\n"
"LABEL=\"touchpad_end\"";
diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
index a50fa3d6..821bc162 100644
--- a/udev/90-libinput-model-quirks.hwdb
+++ b/udev/90-libinput-model-quirks.hwdb
@@ -26,18 +26,13 @@ libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:800
libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:800
LIBINPUT_ATTR_SIZE_HINT=100x55
-libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:300
-libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:300
-libinput:name:*AlpsPS/2 ALPS DualPoint TouchPad:fwversion:310
-libinput:name:*AlpsPS/2 ALPS GlidePoint:fwversion:310
- LIBINPUT_MODEL_WOBBLY_TOUCHPAD=1
-
##########################################
# Apple
##########################################
libinput:touchpad:input:b0003v05ACp*
libinput:touchpad:input:b0005v05ACp*
LIBINPUT_MODEL_APPLE_TOUCHPAD=1
+ LIBINPUT_MODEL_PRECISE_TOUCHPAD=1
LIBINPUT_ATTR_SIZE_HINT=104x75
libinput:name:*Apple Inc. Apple Internal Keyboard*:dmi:*
@@ -83,14 +78,6 @@ libinput:name:Cypress APA Trackpad ?cyapa?:dmi:*
LIBINPUT_MODEL_CYAPA=1
##########################################
-# HP
-##########################################
-
-# HP 14-ac157tu
-libinput:name:*ETPS/2 Elantech Touchpad*:dmi:*svnHP*pvrCNB1:*
- LIBINPUT_MODEL_WOBBLY_TOUCHPAD=1
-
-##########################################
# LENOVO
##########################################
@@ -116,10 +103,7 @@ libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPad??50*:
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPad??60*:
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX1Carbon3rd:*
LIBINPUT_MODEL_LENOVO_T450_TOUCHPAD=1
-
-# Lenovo Yoga 2013
-libinput:name:*SynPS/2 Synaptics TouchPad*:dmi:*svnLENOVO*pvrLenovoYoga213:*
- LIBINPUT_MODEL_WOBBLY_TOUCHPAD=1
+ LIBINPUT_MODEL_PRECISE_TOUCHPAD=1
##########################################
# Logitech