diff options
Diffstat (limited to 'drivers/acpi/sleep.c')
| -rw-r--r-- | drivers/acpi/sleep.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 5f2c379ab7bf..79d33d908b5a 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
| @@ -81,6 +81,23 @@ static int acpi_sleep_prepare(u32 acpi_state) | |||
| 81 | #ifdef CONFIG_ACPI_SLEEP | 81 | #ifdef CONFIG_ACPI_SLEEP |
| 82 | static u32 acpi_target_sleep_state = ACPI_STATE_S0; | 82 | static u32 acpi_target_sleep_state = ACPI_STATE_S0; |
| 83 | /* | 83 | /* |
| 84 | * According to the ACPI specification the BIOS should make sure that ACPI is | ||
| 85 | * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, | ||
| 86 | * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI | ||
| 87 | * on such systems during resume. Unfortunately that doesn't help in | ||
| 88 | * particularly pathological cases in which SCI_EN has to be set directly on | ||
| 89 | * resume, although the specification states very clearly that this flag is | ||
| 90 | * owned by the hardware. The set_sci_en_on_resume variable will be set in such | ||
| 91 | * cases. | ||
| 92 | */ | ||
| 93 | static bool set_sci_en_on_resume; | ||
| 94 | |||
| 95 | void __init acpi_set_sci_en_on_resume(void) | ||
| 96 | { | ||
| 97 | set_sci_en_on_resume = true; | ||
| 98 | } | ||
| 99 | |||
| 100 | /* | ||
| 84 | * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the | 101 | * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the |
| 85 | * user to request that behavior by using the 'acpi_old_suspend_ordering' | 102 | * user to request that behavior by using the 'acpi_old_suspend_ordering' |
| 86 | * kernel command line option that causes the following variable to be set. | 103 | * kernel command line option that causes the following variable to be set. |
| @@ -170,18 +187,6 @@ static void acpi_pm_end(void) | |||
| 170 | #endif /* CONFIG_ACPI_SLEEP */ | 187 | #endif /* CONFIG_ACPI_SLEEP */ |
| 171 | 188 | ||
| 172 | #ifdef CONFIG_SUSPEND | 189 | #ifdef CONFIG_SUSPEND |
| 173 | /* | ||
| 174 | * According to the ACPI specification the BIOS should make sure that ACPI is | ||
| 175 | * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, | ||
| 176 | * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI | ||
| 177 | * on such systems during resume. Unfortunately that doesn't help in | ||
| 178 | * particularly pathological cases in which SCI_EN has to be set directly on | ||
| 179 | * resume, although the specification states very clearly that this flag is | ||
| 180 | * owned by the hardware. The set_sci_en_on_resume variable will be set in such | ||
| 181 | * cases. | ||
| 182 | */ | ||
| 183 | static bool set_sci_en_on_resume; | ||
| 184 | |||
| 185 | extern void do_suspend_lowlevel(void); | 190 | extern void do_suspend_lowlevel(void); |
| 186 | 191 | ||
| 187 | static u32 acpi_suspend_states[] = { | 192 | static u32 acpi_suspend_states[] = { |
