mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-25 16:11:45 +00:00
[PATCH] uswsusp: add pmops->{prepare,enter,finish} support (aka "platform mode")
Add an ioctl to the userspace swsusp code that enables the usage of the pmops->prepare, pmops->enter and pmops->finish methods (the in-kernel suspend knows these as "platform method"). These are needed on many machines to (among others) speed up resuming by letting the BIOS skip some steps or let my hp nx5000 recognise the correct ac_adapter state after resume again. It also ensures on many machines, that changed hardware (unplugged AC adapters) gets correctly detected and that kacpid does not run wild after resume. Signed-off-by: Stefan Seyfried <seife@suse.de> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
074cec54d1
commit
3592695c36
2 changed files with 34 additions and 1 deletions
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include <linux/suspend.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/miscdevice.h>
|
||||
|
@ -313,6 +314,33 @@ OutS3:
|
|||
up(&pm_sem);
|
||||
break;
|
||||
|
||||
case SNAPSHOT_PMOPS:
|
||||
switch (arg) {
|
||||
|
||||
case PMOPS_PREPARE:
|
||||
if (pm_ops->prepare) {
|
||||
error = pm_ops->prepare(PM_SUSPEND_DISK);
|
||||
}
|
||||
break;
|
||||
|
||||
case PMOPS_ENTER:
|
||||
kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK);
|
||||
error = pm_ops->enter(PM_SUSPEND_DISK);
|
||||
break;
|
||||
|
||||
case PMOPS_FINISH:
|
||||
if (pm_ops && pm_ops->finish) {
|
||||
pm_ops->finish(PM_SUSPEND_DISK);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
printk(KERN_ERR "SNAPSHOT_PMOPS: invalid argument %ld\n", arg);
|
||||
error = -EINVAL;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
error = -ENOTTY;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue