[Suspend2][ 2/4] [Suspend2] Try to powerdown using ACPI.

From: Nigel Cunningham
Date: Tue Jun 27 2006 - 00:53:47 EST


Try to powerdown by entering ACPI S3, S4 or S5.

Signed-off-by: Nigel Cunningham <nigel@xxxxxxxxxxxx>

kernel/power/power_off.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/kernel/power/power_off.c b/kernel/power/power_off.c
index 8f9f425..7f7c565 100644
--- a/kernel/power/power_off.c
+++ b/kernel/power/power_off.c
@@ -24,3 +24,29 @@ extern struct pm_ops *pm_ops;
/* Use suspend_enter from main.c */
extern int suspend_enter(suspend_state_t state);

+int try_pm_state_powerdown(void)
+{
+ if (pm_ops && pm_ops->prepare && suspend_powerdown_method &&
+ pm_ops->prepare(suspend_powerdown_method))
+ return 0;
+
+ if (suspend_powerdown_method > 3)
+ kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK);
+ else {
+ if (device_suspend(PMSG_SUSPEND)) {
+ printk(KERN_ERR "Some devices failed to suspend\n");
+ return 0;
+ }
+ }
+
+ if (suspend_enter(suspend_powerdown_method))
+ return 0;
+
+ device_resume();
+
+ if (pm_ops && pm_ops->finish && suspend_powerdown_method)
+ pm_ops->finish(suspend_powerdown_method);
+
+ return 1;
+}
+

--
Nigel Cunningham nigel at suspend2 dot net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/