]> err.no Git - linux-2.6/blobdiff - include/linux/pm.h
Merge branch 'for-linus' of git://neil.brown.name/md
[linux-2.6] / include / linux / pm.h
index 390dd95a375e4b538d8329e918e7a6aaa1eba293..4dcce54b6d76f798e11f3e3ae08032ee0fbac592 100644 (file)
@@ -22,8 +22,6 @@
 #define _LINUX_PM_H
 
 #include <linux/list.h>
-#include <asm/atomic.h>
-#include <asm/errno.h>
 
 /*
  * Callbacks for platform drivers to implement.
@@ -247,6 +245,21 @@ struct pm_ext_ops {
  * RECOVER     Creation of a hibernation image or restoration of the main
  *             memory contents from a hibernation image has failed, call
  *             ->thaw() and ->complete() for all devices.
+ *
+ * The following PM_EVENT_ messages are defined for internal use by
+ * kernel subsystems.  They are never issued by the PM core.
+ *
+ * USER_SUSPEND                Manual selective suspend was issued by userspace.
+ *
+ * USER_RESUME         Manual selective resume was issued by userspace.
+ *
+ * REMOTE_WAKEUP       Remote-wakeup request was received from the device.
+ *
+ * AUTO_SUSPEND                Automatic (device idle) runtime suspend was
+ *                     initiated by the subsystem.
+ *
+ * AUTO_RESUME         Automatic (device needed) runtime resume was
+ *                     requested by a driver.
  */
 
 #define PM_EVENT_ON            0x0000
@@ -258,9 +271,18 @@ struct pm_ext_ops {
 #define PM_EVENT_THAW          0x0020
 #define PM_EVENT_RESTORE       0x0040
 #define PM_EVENT_RECOVER       0x0080
+#define PM_EVENT_USER          0x0100
+#define PM_EVENT_REMOTE                0x0200
+#define PM_EVENT_AUTO          0x0400
 
-#define PM_EVENT_SLEEP (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE)
+#define PM_EVENT_SLEEP         (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE)
+#define PM_EVENT_USER_SUSPEND  (PM_EVENT_USER | PM_EVENT_SUSPEND)
+#define PM_EVENT_USER_RESUME   (PM_EVENT_USER | PM_EVENT_RESUME)
+#define PM_EVENT_REMOTE_WAKEUP (PM_EVENT_REMOTE | PM_EVENT_RESUME)
+#define PM_EVENT_AUTO_SUSPEND  (PM_EVENT_AUTO | PM_EVENT_SUSPEND)
+#define PM_EVENT_AUTO_RESUME   (PM_EVENT_AUTO | PM_EVENT_RESUME)
 
+#define PMSG_ON                ((struct pm_message){ .event = PM_EVENT_ON, })
 #define PMSG_FREEZE    ((struct pm_message){ .event = PM_EVENT_FREEZE, })
 #define PMSG_QUIESCE   ((struct pm_message){ .event = PM_EVENT_QUIESCE, })
 #define PMSG_SUSPEND   ((struct pm_message){ .event = PM_EVENT_SUSPEND, })
@@ -269,7 +291,16 @@ struct pm_ext_ops {
 #define PMSG_THAW      ((struct pm_message){ .event = PM_EVENT_THAW, })
 #define PMSG_RESTORE   ((struct pm_message){ .event = PM_EVENT_RESTORE, })
 #define PMSG_RECOVER   ((struct pm_message){ .event = PM_EVENT_RECOVER, })
-#define PMSG_ON                ((struct pm_message){ .event = PM_EVENT_ON, })
+#define PMSG_USER_SUSPEND      ((struct pm_messge) \
+                                       { .event = PM_EVENT_USER_SUSPEND, })
+#define PMSG_USER_RESUME       ((struct pm_messge) \
+                                       { .event = PM_EVENT_USER_RESUME, })
+#define PMSG_REMOTE_RESUME     ((struct pm_messge) \
+                                       { .event = PM_EVENT_REMOTE_RESUME, })
+#define PMSG_AUTO_SUSPEND      ((struct pm_messge) \
+                                       { .event = PM_EVENT_AUTO_SUSPEND, })
+#define PMSG_AUTO_RESUME               ((struct pm_messge) \
+                                       { .event = PM_EVENT_AUTO_RESUME, })
 
 /**
  * Device power management states