diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2015-03-19 14:19:58 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2015-04-11 08:44:33 +1000 |
commit | 51c0c2869845a058268d54c3111d55d0dd485704 (patch) | |
tree | c2da7abb5eee37b67e998393e24c100dfaff5b6f /hwdb/60-evdev.hwdb | |
parent | 8a0fd83cf03547653a195582ba004d2ff69dfbd0 (diff) |
udev: builtin-keyboard: add support for EVDEV_ABS_*
Parse properties in the form
EVDEV_ABS_00="<min>:<max>:<res>:<fuzz>:<flat>"
and apply them to the kernel device. Future processes that open that device
will see the updated EV_ABS range.
This is particularly useful for touchpads that don't provide a resolution in
the kernel driver but can be fixed up through hwdb entries (e.g. bcm5974).
All values in the property are optional, e.g. a string of "::45" is valid to
set the resolution to 45.
The order intentionally orders resolution before fuzz and flat despite it
being the last element in the absinfo struct. The use-case for setting
fuzz/flat is almost non-existent, resolution is probably the most common case
we'll need.
To avoid multiple hwdb invocations for the same device, replace the
hwdb "keyboard:" prefix with "evdev:" and drop the separate 60-keyboard.rules
file. The new 60-evdev.rules is called for all event nodes
anyway, we don't need a separate rules file and second callout to the hwdb
builtin.
Diffstat (limited to 'hwdb/60-evdev.hwdb')
-rw-r--r-- | hwdb/60-evdev.hwdb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/hwdb/60-evdev.hwdb b/hwdb/60-evdev.hwdb new file mode 100644 index 0000000000..ad2d09e721 --- /dev/null +++ b/hwdb/60-evdev.hwdb @@ -0,0 +1,37 @@ +# This file is part of systemd. +# +# The lookup keys are composed in: +# 60-evdev.rules +# +# Note: The format of the "evdev:" prefix match key is a +# contract between the rules file and the hardware data, it might +# change in later revisions to support more or better matches, it +# is not necessarily expected to be a stable ABI. +# +# Match string formats: +# evdev:<modalias> +# evdev:name:<device name>:dmi:<dmi string> +# +# To add local entries, create a new file +# /etc/udev/hwdb.d/61-evdev-local.hwdb +# and add your rules there. To load the new rules execute (as root): +# udevadm hwdb --update +# udevadm trigger /dev/input/eventXX +# where /dev/input/eventXX is the device in question. If in +# doubt, simply use /dev/input/event* to reload all input rules. +# +# If your changes are generally applicable, open a bug report on +# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd +# and include your new rules, a description of the device, and the +# output of +# udevadm info /dev/input/eventXX +# (or /dev/input/event*). +# +# Allowed properties are: +# EVDEV_ABS_<axis>=<min>:<max>:<res>:<fuzz>:<flat> +# +# where <axis> is the hexadecimal EV_ABS code as listed in linux/input.h +# and min, max, res, fuzz, flat are the decimal values to the respective +# fields of the struct input_absinfo as listed in linux/input.h. +# If a field is missing the field will be left as-is. Not all fields need to +# be present. e.g. ::45 sets the resolution to 45 units/mm. |