summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorNitin A Kamble <nitin.a.kamble@intel.com>2013-09-13 21:16:44 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-17 14:35:17 +0100
commitb925c752c07ff625386daf08d41744e1160fba6a (patch)
tree2e12c4adf85521925698f8f89893220467588ffd /meta
parent9592f311b044403760221fb92680d5bb61f8d536 (diff)
downloadpoky-b925c752c07ff625386daf08d41744e1160fba6a.tar.gz
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] (From OE-Core rev: d74a0ecdbc85a482cab6e7eae8dcb48185d44d84) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-core/udev/udev.inc1
-rw-r--r--meta/recipes-core/udev/udev/avoid-mouse-autosuspend.patch25
2 files changed, 26 insertions, 0 deletions
diff --git a/meta/recipes-core/udev/udev.inc b/meta/recipes-core/udev/udev.inc
index 6606707b46..2ff8f006da 100644
--- a/meta/recipes-core/udev/udev.inc
+++ b/meta/recipes-core/udev/udev.inc
@@ -17,6 +17,7 @@ RPROVIDES_${PN} = "hotplug"
17 17
18SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ 18SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
19 file://0001-Fixing-keyboard_force_release.sh-shell-script-path.patch \ 19 file://0001-Fixing-keyboard_force_release.sh-shell-script-path.patch \
20 file://avoid-mouse-autosuspend.patch \
20 file://run.rules \ 21 file://run.rules \
21 file://udev.rules \ 22 file://udev.rules \
22 file://devfs-udev.rules \ 23 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 0000000000..2c31b33b02
--- /dev/null
+++ b/meta/recipes-core/udev/udev/avoid-mouse-autosuspend.patch
@@ -0,0 +1,25 @@
1Source: http://cgit.freedesktop.org/systemd/systemd/commit/rules/42-usb-hid-pm.rules?id=e0386cf2809219bbdd30895f46f1f567b56902b6
2
3Some USB ports on external hubs may be reported as "fixed". We only want
4to auto-enable this on ports that are internal to the machine, so check
5the parent state as well.
6
7Upstream-Status: backport
8
9Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
102013/09/13
11
12Index: udev-182/rules/42-usb-hid-pm.rules
13===================================================================
14--- udev-182.orig/rules/42-usb-hid-pm.rules
15+++ udev-182/rules/42-usb-hid-pm.rules
16@@ -46,4 +46,9 @@ ACTION=="add", SUBSYSTEM=="usb", ATTRS{i
17 ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
18
19 # USB HID devices that are internal to the machine should also be safe to autosuspend
20+# And skip it for devices which are external but say "fixed"
21+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end"
22+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end"
23 ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto"
24+LABEL="usb_hid_pm_end"
25+