[PATCHv2] udev: update local rules for new touchscreen device

Submitted by chase maupin on Oct. 14, 2013, 8:20 p.m.


Message ID 1381782001-9897-1-git-send-email-Chase.Maupin@ti.com
State Accepted
Commit d95a9b516861594bc89c7ee8079bab2904703ad2
Headers show

Commit Message

chase maupin Oct. 14, 2013, 8:20 p.m.
* While working with a new capacitive touchscreen it was found
  that the existing udev rule that creates the
  /dev/input/touchscreen0 symlink was too restrictive and did not
  match the MODALAIS entry for this touchscreen. which is:


* By looking at the input_print_modalias function in the Linux
  kernel drivers/input/input.c file and referencing the meaning
  of the evbits and attributes of the input_dev structure it seems
  that for identification of a touchscreen the match with ,18
  which was matching part of the absbit structure is overkill.

* It seems that the absbit entry is used for devices like
  touchscreens and if that the the "a" is followed by 0 and 1 this
  is sufficient.

* So the logic has now been changed to check for the "e" 0 and 3
  values which correspond to EV_SYN and EV_ABS, then check for
  the "a" attribute with 0 and 1.

* More information and history for this can be found at:

* This patch mirrors a patch done by:
    Andrea Adami <andrea.adami@gmail.com>

Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
* Updated in version 2:
    * Removed the PR bump
 meta/recipes-core/udev/udev/local.rules |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/recipes-core/udev/udev/local.rules b/meta/recipes-core/udev/udev/local.rules
index 72d92ef..d0cbf91 100644
--- a/meta/recipes-core/udev/udev/local.rules
+++ b/meta/recipes-core/udev/udev/local.rules
@@ -17,5 +17,7 @@ 
 ACTION=="add", DEVPATH=="/devices/*", ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}"
 # Create a symlink to any touchscreen input device
-SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
+# Trigger based on input type, that the evbit (-e) has EV_SYN and EV_ABS,
+# has an EV_ABS value (-a) which is used for touchscreen type devices.
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*", SYMLINK+="input/touchscreen0"