forked from pool/libinput
Jan Engelhardt
eef365cf52
- Fix ALPS trackpoint speed (bsc#1013647, fdo#106323) backported from upstream 1.10.902 * added 0001-udev-default-to-a-trackpoint-range-of-160-for-the-ne.patch * added 0002-udev-support-firmware-detection-for-pointing-sticks.patch - spec file: use %license for COPYING OBS-URL: https://build.opensuse.org/request/show/613009 OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/libinput?expand=0&rev=163
85 lines
2.7 KiB
Diff
85 lines
2.7 KiB
Diff
From efccf735355c498176fd5093aa89cfb46ef16c94 Mon Sep 17 00:00:00 2001
|
|
From: Martin Wilck <mwilck@suse.com>
|
|
Date: Tue, 29 May 2018 09:28:09 +0200
|
|
Subject: [PATCH 1/2] udev: support firmware detection for pointing sticks
|
|
|
|
Add support for firmware detection on pointing stick devices. This
|
|
is needed for ALPS only at this time.
|
|
|
|
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
---
|
|
udev/90-libinput-model-quirks.rules.in | 15 +++++++++------
|
|
udev/libinput-model-quirks.c | 15 +++++++++++++++
|
|
2 files changed, 24 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/udev/90-libinput-model-quirks.rules.in b/udev/90-libinput-model-quirks.rules.in
|
|
index e7d56bb..b584513 100644
|
|
--- a/udev/90-libinput-model-quirks.rules.in
|
|
+++ b/udev/90-libinput-model-quirks.rules.in
|
|
@@ -11,19 +11,22 @@
|
|
ACTION!="add|change", GOTO="libinput_model_quirks_end"
|
|
KERNEL!="event*", GOTO="libinput_model_quirks_end"
|
|
|
|
-# Touchpad firmware detection, two-stage process.
|
|
+# Firmware detection, two-stage process.
|
|
# First, run the program and import the LIBINPUT_MODEL_FIRMWARE_VERSION
|
|
# environment (if any)
|
|
KERNELS=="*input*", \
|
|
ENV{ID_INPUT_TOUCHPAD}=="1", \
|
|
- IMPORT{program}="@UDEV_TEST_PATH@libinput-model-quirks %S%p"
|
|
-
|
|
-# Second, match on anything with that env set and import from the hwdb
|
|
+ ENV{.DETECT_FWVERSION}="1"
|
|
KERNELS=="*input*", \
|
|
- ENV{ID_INPUT_TOUCHPAD}=="1", \
|
|
- ENV{LIBINPUT_MODEL_FIRMWARE_VERSION}!="", \
|
|
+ ENV{ID_INPUT_POINTINGSTICK}=="1", \
|
|
+ ENV{.DETECT_FWVERSION}="1"
|
|
+ENV{.DETECT_FWVERSION}!="1", GOTO="skip_fwversion"
|
|
+
|
|
+IMPORT{program}="@UDEV_TEST_PATH@libinput-model-quirks %S%p"
|
|
+ENV{LIBINPUT_MODEL_FIRMWARE_VERSION}!="", \
|
|
IMPORT{builtin}="hwdb 'libinput:name:$attr{name}:fwversion:$env{LIBINPUT_MODEL_FIRMWARE_VERSION}'"
|
|
# End of touchpad firmware detection
|
|
+LABEL="skip_fwversion"
|
|
|
|
# libinput:touchpad:<modalias>
|
|
ENV{ID_INPUT_TOUCHPAD}=="1", \
|
|
diff --git a/udev/libinput-model-quirks.c b/udev/libinput-model-quirks.c
|
|
index 2dc917d..411665d 100644
|
|
--- a/udev/libinput-model-quirks.c
|
|
+++ b/udev/libinput-model-quirks.c
|
|
@@ -107,6 +107,19 @@ handle_touchpad(struct udev_device *device)
|
|
handle_touchpad_synaptics(device);
|
|
}
|
|
|
|
+static void
|
|
+handle_pointingstick(struct udev_device *device)
|
|
+{
|
|
+ const char *name = NULL;
|
|
+
|
|
+ name = prop_value(device, "NAME");
|
|
+ if (!name)
|
|
+ return;
|
|
+
|
|
+ if (strstr(name, "AlpsPS/2 ALPS") != NULL)
|
|
+ handle_touchpad_alps(device);
|
|
+}
|
|
+
|
|
int main(int argc, char **argv)
|
|
{
|
|
int rc = 1;
|
|
@@ -129,6 +142,8 @@ int main(int argc, char **argv)
|
|
|
|
if (prop_value(device, "ID_INPUT_TOUCHPAD"))
|
|
handle_touchpad(device);
|
|
+ if (prop_value(device, "ID_INPUT_POINTINGSTICK"))
|
|
+ handle_pointingstick(device);
|
|
|
|
rc = 0;
|
|
|
|
--
|
|
2.17.0
|
|
|