#include <linux/resume-trace.h>
#include <linux/freezer.h>
#include <linux/vmstat.h>
+#include <linux/syscalls.h>
#include "power.h"
/* This is just an arbitrary number */
#define FREE_PAGE_NUMBER (100)
-struct platform_suspend_ops *suspend_ops;
+static struct platform_suspend_ops *suspend_ops;
/**
* suspend_set_ops - Set the global suspend method table.
return state == PM_SUSPEND_MEM;
}
-
-static inline void pm_finish(suspend_state_t state)
-{
- if (suspend_ops->finish)
- suspend_ops->finish(state);
-}
-
/**
* suspend_prepare - Do prep work before entering low-power state.
*
goto Resume_console;
}
if (suspend_ops->prepare) {
- error = suspend_ops->prepare(state);
+ error = suspend_ops->prepare();
if (error)
goto Resume_devices;
}
suspend_enter(state);
enable_nonboot_cpus();
- pm_finish(state);
+ if (suspend_ops->finish)
+ suspend_ops->finish();
Resume_devices:
device_resume();
Resume_console:
if (!valid_state(state))
return -ENODEV;
+
if (!mutex_trylock(&pm_mutex))
return -EBUSY;
+ printk("Syncing filesystems ... ");
+ sys_sync();
+ printk("done.\n");
+
pr_debug("PM: Preparing system for %s sleep\n", pm_states[state]);
if ((error = suspend_prepare()))
goto Unlock;