public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Driver Core fixes for 2.6.7-rc1
Date: Fri, 28 May 2004 14:25:55 -0700	[thread overview]
Message-ID: <10857795552945@kroah.com> (raw)
In-Reply-To: <10857795543295@kroah.com>

ChangeSet 1.1717.7.4, 2004/05/28 10:04:18-07:00, tpoynor@mvista.com

[PATCH] Device runtime suspend/resume fixes

(1) Set device power state at runtime resume (as is done for runtime
suspend) so that a later suspend does not think the device is still
suspended (refusing to suspend it again).

(2) Move devices from the active list to the off list only when
suspending all devices as part of a system suspend, not for runtime
suspend.  This matches the resume code, which only moves devices from
off to active during system resume, such that runtime resume currently
doesn't move the suspended device back to the active list.  (This also
avoids reordering the device list for runtime suspends; the list is in
order of registration and suspend/resume works best that way -- granted,
more sweeping improvements in how device dependencies are accounted for
in the suspend/resume order are also needed someday.)

Runtime device suspend/resume is in some cases used frequently on
battery-powered embedded devices, to save additional power and to handle
device power state interactions with overall system power state on
certain platforms.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>


 drivers/base/power/runtime.c |    5 ++++-
 drivers/base/power/suspend.c |   23 ++++++++++-------------
 2 files changed, 14 insertions(+), 14 deletions(-)


diff -Nru a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
--- a/drivers/base/power/runtime.c	Fri May 28 14:18:15 2004
+++ b/drivers/base/power/runtime.c	Fri May 28 14:18:15 2004
@@ -14,7 +14,10 @@
 {
 	if (!dev->power.power_state)
 		return;
-	resume_device(dev);
+	if (! resume_device(dev))
+		dev->power.power_state = 0;
+
+	return;
 }
 
 
diff -Nru a/drivers/base/power/suspend.c b/drivers/base/power/suspend.c
--- a/drivers/base/power/suspend.c	Fri May 28 14:18:15 2004
+++ b/drivers/base/power/suspend.c	Fri May 28 14:18:15 2004
@@ -42,13 +42,6 @@
 	if (dev->bus && dev->bus->suspend)
 		error = dev->bus->suspend(dev,state);
 
-	if (!error) {
-		list_del(&dev->power.entry);
-		list_add(&dev->power.entry,&dpm_off);
-	} else if (error == -EAGAIN) {
-		list_del(&dev->power.entry);
-		list_add(&dev->power.entry,&dpm_off_irq);
-	}
 	return error;
 }
 
@@ -81,12 +74,16 @@
 	while(!list_empty(&dpm_active)) {
 		struct list_head * entry = dpm_active.prev;
 		struct device * dev = to_device(entry);
-		if ((error = suspend_device(dev,state))) {
-			if (error != -EAGAIN)
-				goto Error;
-			else
-				error = 0;
-		}
+		error = suspend_device(dev,state);
+
+		if (!error) {
+			list_del(&dev->power.entry);
+			list_add(&dev->power.entry,&dpm_off);
+		} else if (error == -EAGAIN) {
+			list_del(&dev->power.entry);
+			list_add(&dev->power.entry,&dpm_off_irq);
+		} else
+			goto Error;
 	}
  Done:
 	up(&dpm_sem);


  reply	other threads:[~2004-05-28 21:32 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-28 21:25 [BK PATCH] Driver Core fixes for 2.6.7-rc1 Greg KH
2004-05-28 21:25 ` [PATCH] " Greg KH
2004-05-28 21:25   ` Greg KH
2004-05-28 21:25     ` Greg KH
2004-05-28 21:25       ` Greg KH [this message]
2004-05-28 21:25         ` Greg KH
2004-05-28 21:25           ` Greg KH
2004-05-28 21:25             ` Greg KH
2004-05-28 21:25               ` Greg KH
2004-06-04 12:25             ` Pavel Machek
2004-06-04 16:26               ` Greg KH
2004-06-04 18:26                 ` Pavel Machek
2004-06-04 18:42                   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10857795552945@kroah.com \
    --to=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox