summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-04-03 12:07:32 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2015-04-07 11:32:36 +1000
commitbd1acc9f2ffa9c2baf1ddd6bb965352aef5c7446 (patch)
tree4d0eafdfb730ff82933451012280dc28aa0082e0 /src
parent606df97b6a2438a8844c828ecdef1e9b25e2e838 (diff)
udev: input_id: tag accelerometers as ID_INPUT_ACCELEROMETER
input_id already (tries to) tag accelerometers as such, but this only works for absolute accelerometers. Recent kernels mark accelerometers through an input prop. Trust that prop and always tag devices with it with ID_INPUT_ACCELEROMETER. Note that detection by the prop bit works the same as the existing detection and will ensure that no other tags get set on the device.
Diffstat (limited to 'src')
-rw-r--r--src/shared/missing.h4
-rw-r--r--src/udev/udev-builtin-input_id.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/src/shared/missing.h b/src/shared/missing.h
index 52d49f75dc..21c6afc56c 100644
--- a/src/shared/missing.h
+++ b/src/shared/missing.h
@@ -952,3 +952,7 @@ static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, uns
#ifndef INPUT_PROP_POINTING_STICK
#define INPUT_PROP_POINTING_STICK 0x05
#endif
+
+#ifndef INPUT_PROP_ACCELEROMETER
+#define INPUT_PROP_ACCELEROMETER 0x06
+#endif
diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c
index d4c38cae6e..ecfc447527 100644
--- a/src/udev/udev-builtin-input_id.c
+++ b/src/udev/udev-builtin-input_id.c
@@ -136,6 +136,11 @@ static void test_pointers (struct udev_device *dev,
int is_mouse = 0;
int is_touchpad = 0;
+ if (test_bit (INPUT_PROP_ACCELEROMETER, bitmask_props)) {
+ udev_builtin_add_property(dev, test, "ID_INPUT_ACCELEROMETER", "1");
+ return;
+ }
+
if (!test_bit (EV_KEY, bitmask_ev)) {
if (test_bit (EV_ABS, bitmask_ev) &&
test_bit (ABS_X, bitmask_abs) &&