|
@@ -24,7 +24,30 @@
|
|
|
|
|
|
u8 sleep_states[ACPI_S_STATE_COUNT];
|
|
|
|
|
|
+#ifdef CONFIG_PM_SLEEP
|
|
|
static u32 acpi_target_sleep_state = ACPI_STATE_S0;
|
|
|
+#endif
|
|
|
+
|
|
|
+int acpi_sleep_prepare(u32 acpi_state)
|
|
|
+{
|
|
|
+#ifdef CONFIG_ACPI_SLEEP
|
|
|
+ /* do we have a wakeup address for S2 and S3? */
|
|
|
+ if (acpi_state == ACPI_STATE_S3) {
|
|
|
+ if (!acpi_wakeup_address) {
|
|
|
+ return -EFAULT;
|
|
|
+ }
|
|
|
+ acpi_set_firmware_waking_vector((acpi_physical_address)
|
|
|
+ virt_to_phys((void *)
|
|
|
+ acpi_wakeup_address));
|
|
|
+
|
|
|
+ }
|
|
|
+ ACPI_FLUSH_CPU_CACHE();
|
|
|
+ acpi_enable_wakeup_device_prep(acpi_state);
|
|
|
+#endif
|
|
|
+ acpi_gpe_sleep_prepare(acpi_state);
|
|
|
+ acpi_enter_sleep_state_prep(acpi_state);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
|
|
|
#ifdef CONFIG_SUSPEND
|
|
|
static struct pm_ops acpi_pm_ops;
|
|
@@ -60,27 +83,6 @@ static int acpi_pm_set_target(suspend_state_t pm_state)
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
-int acpi_sleep_prepare(u32 acpi_state)
|
|
|
-{
|
|
|
-#ifdef CONFIG_ACPI_SLEEP
|
|
|
- /* do we have a wakeup address for S2 and S3? */
|
|
|
- if (acpi_state == ACPI_STATE_S3) {
|
|
|
- if (!acpi_wakeup_address) {
|
|
|
- return -EFAULT;
|
|
|
- }
|
|
|
- acpi_set_firmware_waking_vector((acpi_physical_address)
|
|
|
- virt_to_phys((void *)
|
|
|
- acpi_wakeup_address));
|
|
|
-
|
|
|
- }
|
|
|
- ACPI_FLUSH_CPU_CACHE();
|
|
|
- acpi_enable_wakeup_device_prep(acpi_state);
|
|
|
-#endif
|
|
|
- acpi_gpe_sleep_prepare(acpi_state);
|
|
|
- acpi_enter_sleep_state_prep(acpi_state);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* acpi_pm_prepare - Do preliminary suspend work.
|
|
|
* @pm_state: ignored
|
|
@@ -299,6 +301,7 @@ int acpi_suspend(u32 acpi_state)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_PM_SLEEP
|
|
|
/**
|
|
|
* acpi_pm_device_sleep_state - return preferred power state of ACPI device
|
|
|
* in the system sleep state given by %acpi_target_sleep_state
|
|
@@ -373,6 +376,7 @@ int acpi_pm_device_sleep_state(struct device *dev, int wake, int *d_min_p)
|
|
|
*d_min_p = d_min;
|
|
|
return d_max;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
static void acpi_power_off_prepare(void)
|
|
|
{
|