diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2015-04-12 13:09:45 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2015-04-12 13:09:45 -0400 |
commit | c5bf58cafc1efc256878120795f1578a91611782 (patch) | |
tree | 09f87092e120d36f339e16b74c706168dda0f726 /rules | |
parent | e2e87476528958e9b377bb4dd9073a8261387075 (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.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'rules')
-rw-r--r-- | rules/60-evdev.rules | 19 | ||||
-rw-r--r-- | rules/60-keyboard.rules | 19 | ||||
-rw-r--r-- | rules/Makefile.am | 2 |
3 files changed, 20 insertions, 20 deletions
diff --git a/rules/60-evdev.rules b/rules/60-evdev.rules new file mode 100644 index 0000000000..e81966fbe8 --- /dev/null +++ b/rules/60-evdev.rules @@ -0,0 +1,19 @@ +# do not edit this file, it will be overwritten on update + +ACTION=="remove", GOTO="evdev_end" +KERNEL!="event*", GOTO="evdev_end" + +# skip later rules when we find something for this input device +IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=evdev:", \ + RUN{builtin}+="keyboard", GOTO="evdev_end" + +# AT keyboard matching by the machine's DMI data +ENV{ID_INPUT_KEY}=="?*", DRIVERS=="atkbd", \ + IMPORT{builtin}="hwdb 'evdev:atkbd:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +# device matching the input device name and the machine's DMI data +KERNELS=="input*", IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="evdev_end" + +LABEL="evdev_end" diff --git a/rules/60-keyboard.rules b/rules/60-keyboard.rules deleted file mode 100644 index fe616917da..0000000000 --- a/rules/60-keyboard.rules +++ /dev/null @@ -1,19 +0,0 @@ -# do not edit this file, it will be overwritten on update - -ACTION=="remove", GOTO="keyboard_end" -KERNEL!="event*", GOTO="keyboard_end" -ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" - -# skip later rules when we find something for this input device -IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=keyboard:", \ - RUN{builtin}+="keyboard", GOTO="keyboard_end" - -# AT keyboard matching by the machine's DMI data -DRIVERS=="atkbd", IMPORT{builtin}="hwdb 'keyboard:atkbd:$attr{[dmi/id]modalias}'", \ - RUN{builtin}+="keyboard", GOTO="keyboard_end" - -# device matching the input device name and the machine's DMI data -KERNELS=="input*", IMPORT{builtin}="hwdb 'keyboard:name:$attr{name}:$attr{[dmi/id]modalias}'", \ - RUN{builtin}+="keyboard", GOTO="keyboard_end" - -LABEL="keyboard_end" diff --git a/rules/Makefile.am b/rules/Makefile.am index d9675a68af..7e0927f44f 100644 --- a/rules/Makefile.am +++ b/rules/Makefile.am @@ -6,7 +6,7 @@ dist_udevrules_DATA = \ 60-block.rules \ 60-cdrom_id.rules \ 60-drm.rules \ - 60-keyboard.rules \ + 60-evdev.rules \ 60-persistent-alsa.rules \ 60-persistent-input.rules \ 60-persistent-storage-tape.rules \ |