[oe-commits] Nitin A Kamble : udev: avoid autosuspend of USB input devices

git at git.openembedded.org git at git.openembedded.org
Tue Sep 17 13:23:50 UTC 2013


Module: openembedded-core.git
Branch: master-next
Commit: d74a0ecdbc85a482cab6e7eae8dcb48185d44d84
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=d74a0ecdbc85a482cab6e7eae8dcb48185d44d84

Author: Nitin A Kamble <nitin.a.kamble at intel.com>
Date:   Fri Sep 13 21:16:44 2013 +0000

udev: avoid autosuspend of USB input devices

Some of the external USB devices has internal USB hub, which
make them look like "fixed" rather than "removable". And USB
autosuspend does not work with some of these devices resulting
in inoperable pointing device.

Now the code detect these false "fixed" devices by looking at their
parents.  If any of their parent is "removable", then USB autosuspend
is not enabled for that device, which keeps the pointing device
functional.

Fixes bug:
[YOCTO #5166]

Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/recipes-core/udev/udev.inc                    |    1 +
 .../udev/udev/avoid-mouse-autosuspend.patch        |   25 ++++++++++++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/meta/recipes-core/udev/udev.inc b/meta/recipes-core/udev/udev.inc
index 6606707..2ff8f00 100644
--- a/meta/recipes-core/udev/udev.inc
+++ b/meta/recipes-core/udev/udev.inc
@@ -17,6 +17,7 @@ RPROVIDES_${PN} = "hotplug"
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
            file://0001-Fixing-keyboard_force_release.sh-shell-script-path.patch \
+           file://avoid-mouse-autosuspend.patch \
            file://run.rules \
            file://udev.rules \
            file://devfs-udev.rules \
diff --git a/meta/recipes-core/udev/udev/avoid-mouse-autosuspend.patch b/meta/recipes-core/udev/udev/avoid-mouse-autosuspend.patch
new file mode 100644
index 0000000..2c31b33
--- /dev/null
+++ b/meta/recipes-core/udev/udev/avoid-mouse-autosuspend.patch
@@ -0,0 +1,25 @@
+Source: http://cgit.freedesktop.org/systemd/systemd/commit/rules/42-usb-hid-pm.rules?id=e0386cf2809219bbdd30895f46f1f567b56902b6
+
+Some USB ports on external hubs may be reported as "fixed". We only want
+to auto-enable this on ports that are internal to the machine, so check
+the parent state as well.
+
+Upstream-Status: backport
+
+Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
+2013/09/13
+
+Index: udev-182/rules/42-usb-hid-pm.rules
+===================================================================
+--- udev-182.orig/rules/42-usb-hid-pm.rules
++++ udev-182/rules/42-usb-hid-pm.rules
+@@ -46,4 +46,9 @@ ACTION=="add", SUBSYSTEM=="usb", ATTRS{i
+ ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
+
+ # USB HID devices that are internal to the machine should also be safe to autosuspend
++# And skip it for devices which are external but say "fixed"
++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end"
++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end"
+ ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto"
++LABEL="usb_hid_pm_end"
++



More information about the Openembedded-commits mailing list