summaryrefslogtreecommitdiff
path: root/udev
AgeCommit message (Collapse)AuthorFilesLines
2016-08-03udev: check wacom devices for a paired product idPeter Hutterer2-3/+70
The newer Wacom Cintiqs have touch devices with a different PID than the pen device. Use the new libwacom_get_paired_device call where available to pair the two devices and give them the same device group. This isn't that important just yet, so no need to force users to update to a new libwacom version. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2016-08-01udev: don't overwrite a previously set device groupPeter Hutterer1-0/+1
In some cases a device may need a device group assigned by a custom udev rule or hwdb entry. Don't overwrite that with our generated one. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-07-14touchpad: reduce middle button size on Dell touchpads to 10mmPeter Hutterer1-0/+7
All Dell touchpas appear to have a visual marker on their touchpads. With a visible marker our middle button can (and should) be much smaller since we can rely on users to hit the button precisely. https://bugs.freedesktop.org/show_bug.cgi?id=96710 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Andy Lutomirski <luto@kernel.org> Reviewed-by: Yong Bakos <ybakos@humanoriented.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20Merge branch 'wip/touchpad-drop-hysteresis'Peter Hutterer1-2/+0
2016-06-20touchpad: re-enable hysteresis by default for all devicesPeter Hutterer1-2/+0
The removal of the hysteresis even on precise touchpads has led to difficulties controlling the cursor in a few instances. Since 27078b2667d we only have the hysteresis on Apple touchpads and the Lenovo *40 series and later. Even on those do we see some positioning difficulties (bug 94379). So restore the hysteresis by default again for all touchpads. In the future a knob could be exposed for precision vs reactivity or something, but for now the drawback of imprecise positioning does not outweigh the benefits we get on those few devices. https://bugs.freedesktop.org/show_bug.cgi?id=94379 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-20test: add an apple magicmouse devicePeter Hutterer1-0/+3
This device has a touchpad on the mouse but it's labeled as mouse. For litest we only label it as LITEST_MOUSE feature and test the touchpad directly on the device. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-06-06touchpad: restore the hysteresis by defaultPeter Hutterer1-18/+2
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>
2016-05-30udev: mark the Logitech M570 as trackballPeter Hutterer1-0/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-05-23Drop the ALPS_RUSHMORE tagPeter Hutterer1-3/+1
Was only used for the touchpad hysteresis, we can re-use the wobbly touchpad tag for this. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-05-23udev: mark ALPS touchpads fw version 300 as wobbly touchpadsPeter Hutterer1-0/+4
Includes the Dell Lattitude E5420 but since all alps touchpads with the same fw version are the same (as far as we know) hooking this off the firmware version should cover this generation. https://bugzilla.redhat.com/show_bug.cgi?id=1336084 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-05-23udev: add the Yoga 2 to the wobbly touchpadsPeter Hutterer1-0/+4
https://bugs.freedesktop.org/show_bug.cgi?id=95290 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-05-03Add tagging of trackballsPeter Hutterer1-0/+6
Currently unused, but oh, the possibilities... The only thing we have to go on for trackballs at the moment is whether they have "Trackball" in the name string. All others need to be manually tagged. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-04-15touchpad: add LIBINPUT_MODEL_WOBBLY_TOUCHPAD for the HP 14-ac157tuPeter Hutterer1-0/+8
If some elantech touchpads require a hysteresis, let's use some more generic tag for those touchpads that require correct handling of pointer wobbles. https://bugs.freedesktop.org/show_bug.cgi?id=94897 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-04-14udev: update the hwdb matches to avoid use of ( and )Peter Hutterer1-10/+10
libudev's util_replace_chars() replaces the () with underscores so that match would work too but let's use ? instead to make it look like a regex. This now activates the rules for all cyapa touchpads, before they wouldn't have applied to any device. https://bugs.freedesktop.org/show_bug.cgi?id=93846#c12 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-03-11touchpad: add quirk for the T450 and T460 generation hardwarePeter Hutterer1-0/+7
The touchpad's sensors are too far apart (or the firmware interferes), causing in a jerky movement visible especially on slow motion. We get a bunch of normal motion events, then only ABS_MT_PRESSURE updates without x/y updates. After about one mm of movement x/y updates resume, with the first event covering the distance between the last motion event. That event is usually accelerated and thus causes a large jump. Subsequent events are sufficiently fine-grained again. This patch counts the number of non-motion events. Once we hit 10 in a row, we mark the first motion update as non-dirty, effectively discarding the motion and thus stopping the pointer jumps. https://bugs.freedesktop.org/show_bug.cgi?id=94379 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2016-02-10touchpad: init a default hysteresis for ALPS rushmore touchpadsPeter Hutterer2-1/+5
https://bugs.freedesktop.org/show_bug.cgi?id=90590 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-02-10udev: fix ALPS firmware detectionPeter Hutterer2-4/+4
The firmware version is in id.version, not id.model which is always PSMOUSE_ALPS for ALPS devices. The various fw versions are listed in <kernel>/drivers/input/mouse/alps.h and are all hex numbers. Version 8 is actually 0x800, change the match accordingly. Expected side-effect: earlier versions of ALPS touchpads now lose their (erroneous) size assignment. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-02-04touchpad: drop motion hysteresis by defaultPeter Hutterer1-0/+3
Some older touchpad devices jitter a fair bit when a finger is resting on the touchpad. That's why the hysteresis was introduced in the synaptics driver back in 2011. However, the default value of the hysteresis in the synaptics driver ended up being 0, even though the code looks like it's using a fraction of the touchpad diagonal. When the hysteresis code was ported to libinput it was eventually set to 0.5mm. Turns out this is still too high and tiny finger motions are either nonreactive or quite jumpy, making it hard to select small targets. Drop the default hysteresis by reducing its margin to 0, but leave it in place for those devices where we need them (e.g. the cyapa touchpads). https://bugs.freedesktop.org/show_bug.cgi?id=93503 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-02-01evdev: disable the mode button on the Cyborg RAT 5Peter Hutterer2-0/+11
This button sends a release N, press N+1 on each press, cycling through the three event codes supported. This causes a stuck button since the current mode is never released. Long-term this better served by a set of switches that toggle accordingly, for now disable the button codes. https://bugs.freedesktop.org/show_bug.cgi?id=92127 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-01-11touchpad: fix DWT pairing for Macbook Pro 2015Caibin Chen1-0/+3
Label internal keyboards through the udev hwdb and only pair the internal (usb) Apple touchpads with those keyboards labelled as such. https://bugs.freedesktop.org/show_bug.cgi?id=93367 Co-authored-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-12-14touchpad: add a special quirk for the Lenovo x220 with updated firmwarePeter Hutterer1-0/+12
If an x220 is updated to the touchpad firmware version 8.1, the touchpad suffers from the same issues as the x230 and needs custom acceleration code. Unfortunately we cannot detect this otherwise, so it is left to the user as a custom hwdb setting. https://bugzilla.redhat.com/show_bug.cgi?id=1264453 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-08-11udev: use prop_value() to fetch the ID_INPUT_PROP propertyPeter Hutterer1-1/+1
This will thus work if the property is only set on a parent device, not on the device directly. https://github.com/systemd/systemd/issues/763 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-08-04udev: include new udev rule in EXTRA_DISTPeter Hutterer1-0/+1
Fixes distcheck Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-08-03touchpad: elantech touchpads can use a 2mm gesture motion thresholdPeter Hutterer1-0/+1
Unlike ALPS and Synaptics semi-mt touchpads, the Elantech touchpads appear to be precise enough to allow a smaller motion threshold before we decide on the type of gesture (pinch vs scroll). https://bugs.freedesktop.org/show_bug.cgi?id=91475 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-28Ignore test devices for libinput contexts not run from the test suiteJonas Ådahl2-1/+5
Add a LIBINPUT_TEST_DEVICE udev parameter to test devices created by the test suite. When an application tries to add such a device to the path backend or when the udev backend discovers such a device, it will be ignored. Only the context when run via the test suite will actually handle these devices. Doing this will enable a user to run the libinput test suite on a system running libinput without having the test suite devices interfering with the actual system. Note that X.org users running an input device driver that is not the libinput X input driver will still need to manually configure the X server to ignore such devices (see test/50-litest.conf). Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-07-27touchpad: disable 2fg scrolling on Synaptics semi-mt touchpadsPeter Hutterer1-0/+26
These touchpads have a terrible resolution when two fingers are down, causing scrolling to jump around a lot. That then turns into bug reports that we can't do much about, the data is simply garbage. https://bugs.freedesktop.org/show_bug.cgi?id=91135 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-22Tag synaptics serial touchpads with a LIBINPUT_MODEL tagPeter Hutterer1-0/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Hallelujah-expressed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-22evdev: allow for multiple LIBINPUT_MODEL_* flags per devicePeter Hutterer1-8/+2
On some devices we need to set more than one flag, i.e. make it into actual flags. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Hallelujah-expressed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-16udev: don't install the litest udev rulesPeter Hutterer1-1/+1
They are installed by the test. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-07-15evdev: parse LIBINPUT_ATTR_RESOLUTION_HINTPeter Hutterer1-0/+6
For Elantech touchpads, we know that the resolution is 31u/mm (800dpi) for v1-v3 firmware. Set this as a hint until we get either the kernel or systemd to set this for us. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-07-14udev: add size hint for apple touchpadsPeter Hutterer1-0/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-14udev: add ALPS firmware detection and size propertiesPeter Hutterer2-0/+30
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-14udev: add a model-quirks calloutPeter Hutterer5-2/+115
Some model-specific information isn't available through udev properties. This callout is used to query the device directly and set a property that we can then match on for the hwdb entries. This is geared for Elantech and ALPS touchpads where the firmware version is the interesting bit. The udev rule is added already to match on that, note that the callout doesn't do anything at this point. The various touchpad-related things will be added separately. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-09udev: make sure the udev callout path is valid for a test runPeter Hutterer4-1/+14
udev requires callout binaries to sit in /lib/udev or otherwise provide an absolute path. The test suite should work without installing everything first, so create two rule files - one to install, one with the path to the $builddir/test Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-07-01udev: make a note that hwdb matches are exclusivePeter Hutterer1-0/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-06-30Add missing copyright header to the udev calloutPeter Hutterer1-0/+23
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-06-23udev: prepend the libinput group with the product stringPeter Hutterer1-6/+9
Multiple devices plugged into the same USB hub have the same PHYS path and are assigned to the same group. Prepend the content of the PRODUCT env to the phys path, this at least ensures that different devices are never grouped together. https://bugs.freedesktop.org/show_bug.cgi?id=89802 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-06-22touchpad: mark ALPS touchpads for middle button emulationPeter Hutterer1-0/+7
Alps devices don't know if there is a physical middle button on the touchpad, so they always report one. Since a large number of touchpads only have two buttons, enable middle button emulation by default. Those that really don't want it can play with configuration options, everyone else has it working by default. The hwdb entry uses "*Alps ..*" as name to also trigger the "litest Alps..." devices. https://bugzilla.redhat.com/show_bug.cgi?id=1227992 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-06-16udev: drop erroneous trailing colon from dmi matchesPeter Hutterer1-12/+12
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-06-12Move Wacom touchpad tagging to the udev rulesPeter Hutterer1-0/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-06-12Move apple touchpad tagging to the udev rulesPeter Hutterer2-2/+11
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-05-21Rename MODEL_SYSTEM76_CLEVO to MODEL_CLEVO_W740SUJan Alexander Steffens (heftig)1-1/+1
The System76 Galago Ultra Pro is a rebranded Clevo W740SU with changed firmware strings. To my knowledge, the Clevo W740SU and all its rebrands possess smooth touchpads. In the original bug report[1], a Galago Ultra Pro was returned to the original DMI strings by flashing another firmware. This resulted in the model identified as MODEL_SYSTEM76_CLEVO. Since the actual manufacturer of the W740SU is Clevo and the CLEVO hwdb entry already properly identifies other W740SU rebrands like the Schenker S413, the model should be renamed to match. [1]: https://bugs.freedesktop.org/show_bug.cgi?id=90170#c3 https://bugs.freedesktop.org/show_bug.cgi?id=90353 Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-05-05touchpad: enable clickfinger by default on some System76 laptopsPeter Hutterer1-0/+20
Bonobo, Clevo, Galago and Kudu have clickpads and no markings -> enable clickfinger by default. Lemur and Gazelle have physical buttons, no need for extra configuration. https://bugs.freedesktop.org/show_bug.cgi?id=90170 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-05-04touchpad: enable clickfinger by default on chromebooksPeter Hutterer1-0/+22
This matches the vendor default. Board IDs pulled from modinfo chromeos_laptop, touchpad names from a bit of googling around. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-04-27evdev: use a different filter for low resolution touchpad on the Lenovo X230Benjamin Tissoires1-0/+8
Those touchpads presents an actual lower resolution that what is advertised. We see some jumps from the cursor due to the big steps in X and Y when we are receiving data. For instance, we receive: E: 13.471932 0003 0000 16366 # EV_ABS / ABS_X 16366 E: 13.471932 0003 0001 9591 # EV_ABS / ABS_Y 9591 E: 13.471932 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 13.479924 0003 0000 16316 # EV_ABS / ABS_X 16316 E: 13.479924 0003 0001 9491 # EV_ABS / ABS_Y 9491 E: 13.479924 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 13.487939 0003 0000 16271 # EV_ABS / ABS_X 16271 E: 13.487939 0003 0001 9403 # EV_ABS / ABS_Y 9403 E: 13.487939 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- -> jumps of ~50 in X in each report, and ~100 for Y. Apply a factor to minimize those jumps at low speed, and try keeping the same feeling as regular touchpads at high speed. It still feels slower but it is usable at least Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-04-24evdev: add support for LIBINPUT_MODEL_* udev tagsPeter Hutterer3-1/+48
Some devices need specific configuration or different defaults. Push that into udev rules and a hwdb file, that's where detection is the easiest. The LIBINPUT_MODEL_ prefix is used to determine some type of device model. Note that this property is a private API and subject to change at any time without notice. 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>
2015-02-18Add udev bits to assign LIBINPUT_DEVICE_GROUPPeter Hutterer4-0/+95
The easiest way to get a device group is by looking at the phys path of the input device (which looks like usb-0000:00:14.0-1/input1) and dropping the /inputX bit. The rest is the same for devices that belong together (except on the Cintiq 22HD Touch). Ideally we could just take ATTRS{phys} but we can't select substrings to drop into ENV so we need to do it ourselves. This patch adds a callout that takes a syspath and prints the mangled path, to be used in LIBINPUT_DEVICE_GROUP. The rule triggers on any device that has a non-zero phys attribute, this groups devices like tablets together but also devices like mice with multiple interfaces. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>