summaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2015-04-12 13:09:45 -0400
committerAnthony G. Basile <blueness@gentoo.org>2015-04-12 13:09:45 -0400
commitc5bf58cafc1efc256878120795f1578a91611782 (patch)
tree09f87092e120d36f339e16b74c706168dda0f726 /rules
parente2e87476528958e9b377bb4dd9073a8261387075 (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.rules19
-rw-r--r--rules/60-keyboard.rules19
-rw-r--r--rules/Makefile.am2
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 \