]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Mar 2012 19:35:52 +0000 (12:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Mar 2012 19:35:52 +0000 (12:35 -0700)
added patches:
pm-driver-core-leave-runtime-pm-enabled-during-system-shutdown.patch

queue-3.0/pm-driver-core-leave-runtime-pm-enabled-during-system-shutdown.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/pm-driver-core-leave-runtime-pm-enabled-during-system-shutdown.patch b/queue-3.0/pm-driver-core-leave-runtime-pm-enabled-during-system-shutdown.patch
new file mode 100644 (file)
index 0000000..3bc66b3
--- /dev/null
@@ -0,0 +1,51 @@
+From fe6b91f47080eb17d21cbf2a39311877d57f6938 Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Tue, 6 Dec 2011 23:24:52 +0100
+Subject: PM / Driver core: leave runtime PM enabled during system shutdown
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit fe6b91f47080eb17d21cbf2a39311877d57f6938 upstream.
+
+Disabling all runtime PM during system shutdown turns out not to be a
+good idea, because some devices may need to be woken up from a
+low-power state at that time.
+
+The whole point of disabling runtime PM for system shutdown was to
+prevent untimely runtime-suspend method calls.  This patch (as1504)
+accomplishes the same result by incrementing the usage count for each
+device and waiting for ongoing runtime-PM callbacks to finish.  This
+is what we already do during system suspend and hibernation, which
+makes sense since the shutdown method is pretty much a legacy analog
+of the pm->poweroff method.
+
+This fixes a recent regression on some OMAP systems introduced by
+commit af8db1508f2c9f3b6e633e2d2d906c6557c617f9 (PM / driver core:
+disable device's runtime PM during shutdown).
+
+Reported-and-tested-by: NeilBrown <neilb@suse.de>
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
+Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
+Cc: Kostyantyn Shlyakhovoy <x0155534@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/base/core.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/base/core.c
++++ b/drivers/base/core.c
+@@ -1743,8 +1743,10 @@ void device_shutdown(void)
+                */
+               list_del_init(&dev->kobj.entry);
+               spin_unlock(&devices_kset->list_lock);
+-              /* Disable all device's runtime power management */
+-              pm_runtime_disable(dev);
++
++              /* Don't allow any more runtime suspends */
++              pm_runtime_get_noresume(dev);
++              pm_runtime_barrier(dev);
+               if (dev->bus && dev->bus->shutdown) {
+                       dev_dbg(dev, "shutdown\n");
index 0c6458c9d97d9a59a181a29b8404bcfc71b24f96..ee0353f10467c39441c41c707e1cad08ca922923 100644 (file)
@@ -5,3 +5,4 @@ x86-derandom-delay_tsc-for-64-bit.patch
 pci-ignore-pre-1.1-aspm-quirking-when-aspm-is-disabled.patch
 firewire-cdev-fix-32-bit-userland-on-64-bit-kernel-compat-corner-cases.patch
 firewire-core-handle-ack_busy-when-fetching-the-config-rom.patch
+pm-driver-core-leave-runtime-pm-enabled-during-system-shutdown.patch