]> err.no Git - linux-2.6/blobdiff - include/linux/pm.h
m68k: remove unused adb.h
[linux-2.6] / include / linux / pm.h
index 9bd86db4d395dadbf8765aa9bcccd23379af0af1..6e8fa3049e5d097fc5f96400350240e5224ca48e 100644 (file)
@@ -112,21 +112,25 @@ typedef int __bitwise suspend_state_t;
 
 typedef int __bitwise suspend_disk_method_t;
 
-#define        PM_DISK_FIRMWARE        ((__force suspend_disk_method_t) 1)
-#define        PM_DISK_PLATFORM        ((__force suspend_disk_method_t) 2)
-#define        PM_DISK_SHUTDOWN        ((__force suspend_disk_method_t) 3)
-#define        PM_DISK_REBOOT          ((__force suspend_disk_method_t) 4)
-#define        PM_DISK_TEST            ((__force suspend_disk_method_t) 5)
-#define        PM_DISK_TESTPROC        ((__force suspend_disk_method_t) 6)
-#define        PM_DISK_MAX             ((__force suspend_disk_method_t) 7)
+/* invalid must be 0 so struct pm_ops initialisers can leave it out */
+#define PM_DISK_INVALID                ((__force suspend_disk_method_t) 0)
+#define        PM_DISK_PLATFORM        ((__force suspend_disk_method_t) 1)
+#define        PM_DISK_SHUTDOWN        ((__force suspend_disk_method_t) 2)
+#define        PM_DISK_REBOOT          ((__force suspend_disk_method_t) 3)
+#define        PM_DISK_TEST            ((__force suspend_disk_method_t) 4)
+#define        PM_DISK_TESTPROC        ((__force suspend_disk_method_t) 5)
+#define        PM_DISK_MAX             ((__force suspend_disk_method_t) 6)
 
 /**
  * struct pm_ops - Callbacks for managing platform dependent suspend states.
  * @valid: Callback to determine whether the given state can be entered.
  *     If %CONFIG_SOFTWARE_SUSPEND is set then %PM_SUSPEND_DISK is
- *     always valid and never passed to this call.
- *     If not assigned, all suspend states are advertised as valid
- *     in /sys/power/state (but can still be rejected by prepare or enter.)
+ *     always valid and never passed to this call. If not assigned,
+ *     no suspend states are valid.
+ *     Valid states are advertised in /sys/power/state but can still
+ *     be rejected by prepare or enter if the conditions aren't right.
+ *     There is a %pm_valid_only_mem function available that can be assigned
+ *     to this if you only implement mem sleep.
  *
  * @prepare: Prepare the platform for the given suspend state. Can return a
  *     negative error code if necessary.
@@ -137,17 +141,16 @@ typedef int __bitwise suspend_disk_method_t;
  * @finish: Called when the system has left the given state and all devices
  *     are resumed. The return value is ignored.
  *
- * @pm_disk_mode: Set to the disk method that the user should be able to
- *     configure for suspend-to-disk. Since %PM_DISK_SHUTDOWN,
- *     %PM_DISK_REBOOT, %PM_DISK_TEST and %PM_DISK_TESTPROC
- *     are always allowed, currently only %PM_DISK_PLATFORM
- *     makes sense. If the user then choses %PM_DISK_PLATFORM,
- *     the @prepare call will be called before suspending to disk
- *     (if present), the @enter call should be present and will
- *     be called after all state has been saved and the machine
- *     is ready to be shut down/suspended/..., and the @finish
- *     callback is called after state has been restored. All
- *     these calls are called with %PM_SUSPEND_DISK as the state.
+ * @pm_disk_mode: The generic code always allows one of the shutdown methods
+ *     %PM_DISK_SHUTDOWN, %PM_DISK_REBOOT, %PM_DISK_TEST and
+ *     %PM_DISK_TESTPROC. If this variable is set, the mode it is set
+ *     to is allowed in addition to those modes and is also made default.
+ *     When this mode is sent selected, the @prepare call will be called
+ *     before suspending to disk (if present), the @enter call should be
+ *     present and will be called after all state has been saved and the
+ *     machine is ready to be powered off; the @finish callback is called
+ *     after state has been restored. All these calls are called with
+ *     %PM_SUSPEND_DISK as the state.
  */
 struct pm_ops {
        int (*valid)(suspend_state_t state);
@@ -165,6 +168,7 @@ extern void pm_set_ops(struct pm_ops *pm_ops);
 extern struct pm_ops *pm_ops;
 extern int pm_suspend(suspend_state_t state);
 
+extern int pm_valid_only_mem(suspend_state_t state);
 
 /**
  * arch_suspend_disable_irqs - disable IRQs for suspend
@@ -328,7 +332,7 @@ static inline void dpm_runtime_resume(struct device * dev)
 
 static inline int call_platform_enable_wakeup(struct device *dev, int is_on)
 {
-       return -EIO;
+       return 0;
 }
 
 #endif