Patchwork [for-dora] udev: update local rules for new touchscreen device

login
register
mail settings
Submitter chase maupin
Date Oct. 21, 2013, 9:44 p.m.
Message ID <1382391869-2030-1-git-send-email-Chase.Maupin@ti.com>
Download mbox | patch
Permalink /patch/60329/
State New
Headers show

Comments

chase maupin - Oct. 21, 2013, 9:44 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:

  MODALIAS=input:b0018v0000p0000e0000-e0,1,3,k14A,ra0,1,2F,35,36,39,mlsfw

* 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.

Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
---
 meta/recipes-core/udev/udev/local.rules |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
chase maupin - Oct. 22, 2013, 5:15 p.m.
>-----Original Message-----
>From: Maupin, Chase
>Sent: Monday, October 21, 2013 4:44 PM
>To: openembedded-core@lists.openembedded.org
>Cc: Maupin, Chase
>Subject: [PATCH][for-dora] udev: update local rules for new
>touchscreen device

Please ignore this in favor of the patch from Tom Rini.

>
>* 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:
>
>  MODALIAS=input:b0018v0000p0000e0000-
>e0,1,3,k14A,ra0,1,2F,35,36,39,mlsfw
>
>* 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.
>
>Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
>---
> meta/recipes-core/udev/udev/local.rules |    4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
>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"
>
>--
>1.7.0.4

Patch

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"