From: David Brownell <[EMAIL PROTECTED]>

This patch is the first of this series that should actually change any
behavior ...  by issuing the new event, now tha the rest of the kernel is
prepared to receive it.

This converts the PM core to issue the new PRETHAW message, which the rest of
the kernel is now ready to receive.

Signed-off-by: David Brownell <[EMAIL PROTECTED]>
Cc: Greg KH <[EMAIL PROTECTED]>
Cc: "Rafael J. Wysocki" <[EMAIL PROTECTED]>
Cc: Pavel Machek <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 drivers/base/power/suspend.c |    1 +
 kernel/power/disk.c          |    4 ++--
 kernel/power/swsusp.c        |    9 ++++++++-
 kernel/power/user.c          |    2 +-
 4 files changed, 12 insertions(+), 4 deletions(-)

diff -puN drivers/base/power/suspend.c~pm-issue-pm_event_prethaw 
drivers/base/power/suspend.c
--- a/drivers/base/power/suspend.c~pm-issue-pm_event_prethaw
+++ a/drivers/base/power/suspend.c
@@ -34,6 +34,7 @@ static inline char *suspend_verb(u32 eve
        switch (event) {
        case PM_EVENT_SUSPEND:  return "suspend";
        case PM_EVENT_FREEZE:   return "freeze";
+       case PM_EVENT_PRETHAW:  return "prethaw";
        default:                return "(unknown suspend event)";
        }
 }
diff -puN kernel/power/disk.c~pm-issue-pm_event_prethaw kernel/power/disk.c
--- a/kernel/power/disk.c~pm-issue-pm_event_prethaw
+++ a/kernel/power/disk.c
@@ -98,7 +98,7 @@ static void unprepare_processes(void)
 }
 
 /**
- *     pm_suspend_disk - The granpappy of power management.
+ *     pm_suspend_disk - The granpappy of hibernation power management.
  *
  *     If we're going through the firmware, then get it over with quickly.
  *
@@ -207,7 +207,7 @@ static int software_resume(void)
 
        pr_debug("PM: Preparing devices for restore.\n");
 
-       if ((error = device_suspend(PMSG_FREEZE))) {
+       if ((error = device_suspend(PMSG_PRETHAW))) {
                printk("Some devices failed to suspend\n");
                swsusp_free();
                goto Thaw;
diff -puN kernel/power/swsusp.c~pm-issue-pm_event_prethaw kernel/power/swsusp.c
--- a/kernel/power/swsusp.c~pm-issue-pm_event_prethaw
+++ a/kernel/power/swsusp.c
@@ -248,6 +248,9 @@ int swsusp_suspend(void)
        restore_processor_state();
 Restore_highmem:
        restore_highmem();
+       /* NOTE:  device_power_up() is just a resume() for devices
+        * that suspended with irqs off ... no overall powerup.
+        */
        device_power_up();
 Enable_irqs:
        local_irq_enable();
@@ -257,8 +260,12 @@ Enable_irqs:
 int swsusp_resume(void)
 {
        int error;
+
        local_irq_disable();
-       if (device_power_down(PMSG_FREEZE))
+       /* NOTE:  device_power_down() is just a suspend() with irqs off;
+        * it has no special "power things down" semantics
+        */
+       if (device_power_down(PMSG_PRETHAW))
                printk(KERN_ERR "Some devices failed to power down, very 
bad\n");
        /* We'll ignore saved state, but this gets preempt count (etc) right */
        save_processor_state();
diff -puN kernel/power/user.c~pm-issue-pm_event_prethaw kernel/power/user.c
--- a/kernel/power/user.c~pm-issue-pm_event_prethaw
+++ a/kernel/power/user.c
@@ -191,7 +191,7 @@ static int snapshot_ioctl(struct inode *
                }
                down(&pm_sem);
                pm_prepare_console();
-               error = device_suspend(PMSG_FREEZE);
+               error = device_suspend(PMSG_PRETHAW);
                if (!error) {
                        error = swsusp_resume();
                        device_resume();
_

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to