From 57bb707d48131f4daad2b1b746eab586eb66b4f3 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 12 Feb 2017 12:33:22 +0100 Subject: [PATCH 1/2] rules: Add extended evdev/input match rules for event nodes with the same name Sometimes a system may have 2 input event nodes with the same name where we only want to apply keyboard hwdb rules to 1 of the 2 devices. This problem happens e.g. on devices where the soc_button_array driver is used (e.g. intel atom based tablets) which registers 2 event nodes with the name "gpio-keys". This commit adds a new extended match rule which extends the match to also check $attr{phys} and $attr{capabilities/ev}, allowing to differentiate between devices with an identical name. Suggested-by: Dmitry Torokhov Signed-off-by: Hans de Goede --- hwdb/60-keyboard.hwdb | 9 +++++++++ rules/60-evdev.rules | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb index c8452f47d0..036f2cc7cc 100644 --- a/hwdb/60-keyboard.hwdb +++ b/hwdb/60-keyboard.hwdb @@ -32,6 +32,15 @@ # driver, is the firmware-provided string exported # by the kernel DMI modalias, see /sys/class/dmi/id/modalias # +# - Extended input driver device name, properties and DMI data match: +# evdev:name::phys::ev::dmi:bvn*:bvr*:bd*:svn:pn* +# is the name device specified by the +# driver, is the physical-device-path, "cat +# /sys/class/input/input?/phys", is the event bitmask, "cat +# /sys/class/input/input?/capabilities/ev" and is the +# firmware-provided string exported by the kernel DMI modalias, +# see /sys/class/dmi/id/modalias +# # Scan codes are specified as: # KEYBOARD_KEY_= # The scan code should be expressed in hex lowercase. The key codes diff --git a/rules/60-evdev.rules b/rules/60-evdev.rules index ade7e7f646..f5d5ba6a5f 100644 --- a/rules/60-evdev.rules +++ b/rules/60-evdev.rules @@ -12,6 +12,10 @@ ENV{ID_INPUT_KEY}=="?*", DRIVERS=="atkbd", \ IMPORT{builtin}="hwdb 'evdev:atkbd:$attr{[dmi/id]modalias}'", \ RUN{builtin}+="keyboard", GOTO="evdev_end" +# device matching the input device name + properties + the machine's DMI data +KERNELS=="input*", IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:phys:$attr{phys}:ev:$attr{capabilities/ev}:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="evdev_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" From 374677122057501ce6c7481591e6256fc6c3db99 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 12 Feb 2017 12:45:21 +0100 Subject: [PATCH 2/2] hwdb: Cube iwork8 air button keymap fixup The home and power buttons on the Cube iwork8 air tablet are swapped, add a hwdb entry fixing this up. Signed-off-by: Hans de Goede --- hwdb/60-keyboard.hwdb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb index 036f2cc7cc..4201ad76fc 100644 --- a/hwdb/60-keyboard.hwdb +++ b/hwdb/60-keyboard.hwdb @@ -214,6 +214,14 @@ evdev:input:b0003v049Fp0051* KEYBOARD_KEY_0c0014=prog1 KEYBOARD_KEY_0c0015=messenger +########################################################### +# Cube +########################################################### + +evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-TF:* + KEYBOARD_KEY_0=home + KEYBOARD_KEY_1=power + ########################################################### # Dell ###########################################################