]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/power/disk.c
PM: no suspend_prepare() phase
[linux-2.6-omap-h63xx.git] / kernel / power / disk.c
index e03d85e55291c89632d02d3f6880e584e810ab1e..a3c34fb143215ac8d10fa5565ecf2977426e47b1 100644 (file)
 #include "power.h"
 
 
-extern suspend_disk_method_t pm_disk_mode;
-
-extern int swsusp_shrink_memory(void);
-extern int swsusp_suspend(void);
-extern int swsusp_write(struct pbe *pblist, unsigned int nr_pages);
-extern int swsusp_check(void);
-extern int swsusp_read(struct pbe **pblist_ptr);
-extern void swsusp_close(void);
-extern int swsusp_resume(void);
-
-
 static int noresume = 0;
 char resume_file[256] = CONFIG_PM_STD_PARTITION;
 dev_t swsusp_resume_device;
@@ -70,10 +59,6 @@ static void power_down(suspend_disk_method_t mode)
        while(1);
 }
 
-
-static int in_suspend __nosavedata = 0;
-
-
 static inline void platform_finish(void)
 {
        if (pm_disk_mode == PM_DISK_PLATFORM) {
@@ -87,7 +72,6 @@ static int prepare_processes(void)
        int error;
 
        pm_prepare_console();
-       sys_sync();
        disable_nonboot_cpus();
 
        if (freeze_processes()) {
@@ -114,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.
  *
@@ -145,7 +129,7 @@ int pm_suspend_disk(void)
        if (in_suspend) {
                device_resume();
                pr_debug("PM: writing image.\n");
-               error = swsusp_write(pagedir_nosave, nr_copy_pages);
+               error = swsusp_write();
                if (!error)
                        power_down(pm_disk_mode);
                else {
@@ -216,14 +200,14 @@ static int software_resume(void)
 
        pr_debug("PM: Reading swsusp image.\n");
 
-       if ((error = swsusp_read(&pagedir_nosave))) {
+       if ((error = swsusp_read())) {
                swsusp_free();
                goto Thaw;
        }
 
        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;
@@ -247,7 +231,7 @@ static int software_resume(void)
 late_initcall(software_resume);
 
 
-static char * pm_disk_modes[] = {
+static const char * const pm_disk_modes[] = {
        [PM_DISK_FIRMWARE]      = "firmware",
        [PM_DISK_PLATFORM]      = "platform",
        [PM_DISK_SHUTDOWN]      = "shutdown",
@@ -360,14 +344,14 @@ power_attr(resume);
 
 static ssize_t image_size_show(struct subsystem * subsys, char *buf)
 {
-       return sprintf(buf, "%u\n", image_size);
+       return sprintf(buf, "%lu\n", image_size);
 }
 
 static ssize_t image_size_store(struct subsystem * subsys, const char * buf, size_t n)
 {
-       unsigned int size;
+       unsigned long size;
 
-       if (sscanf(buf, "%u", &size) == 1) {
+       if (sscanf(buf, "%lu", &size) == 1) {
                image_size = size;
                return n;
        }