aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/user.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/power/user.c')
-rw-r--r--kernel/power/user.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/power/user.c b/kernel/power/user.c
index d991d3b0e5a4..4c24ca5d62e3 100644
--- a/kernel/power/user.c
+++ b/kernel/power/user.c
@@ -11,6 +11,7 @@
11 11
12#include <linux/suspend.h> 12#include <linux/suspend.h>
13#include <linux/syscalls.h> 13#include <linux/syscalls.h>
14#include <linux/reboot.h>
14#include <linux/string.h> 15#include <linux/string.h>
15#include <linux/device.h> 16#include <linux/device.h>
16#include <linux/miscdevice.h> 17#include <linux/miscdevice.h>
@@ -313,6 +314,33 @@ OutS3:
313 up(&pm_sem); 314 up(&pm_sem);
314 break; 315 break;
315 316
317 case SNAPSHOT_PMOPS:
318 switch (arg) {
319
320 case PMOPS_PREPARE:
321 if (pm_ops->prepare) {
322 error = pm_ops->prepare(PM_SUSPEND_DISK);
323 }
324 break;
325
326 case PMOPS_ENTER:
327 kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK);
328 error = pm_ops->enter(PM_SUSPEND_DISK);
329 break;
330
331 case PMOPS_FINISH:
332 if (pm_ops && pm_ops->finish) {
333 pm_ops->finish(PM_SUSPEND_DISK);
334 }
335 break;
336
337 default:
338 printk(KERN_ERR "SNAPSHOT_PMOPS: invalid argument %ld\n", arg);
339 error = -EINVAL;
340
341 }
342 break;
343
316 default: 344 default:
317 error = -ENOTTY; 345 error = -ENOTTY;
318 346