aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/sleep
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/sleep')
-rw-r--r--drivers/acpi/sleep/main.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c
index 96d23b3cfc4..e2e4e617952 100644
--- a/drivers/acpi/sleep/main.c
+++ b/drivers/acpi/sleep/main.c
@@ -63,11 +63,11 @@ static u32 acpi_suspend_states[] = {
63static int init_8259A_after_S1; 63static int init_8259A_after_S1;
64 64
65/** 65/**
66 * acpi_pm_set_target - Set the target system sleep state to the state 66 * acpi_pm_begin - Set the target system sleep state to the state
67 * associated with given @pm_state, if supported. 67 * associated with given @pm_state, if supported.
68 */ 68 */
69 69
70static int acpi_pm_set_target(suspend_state_t pm_state) 70static int acpi_pm_begin(suspend_state_t pm_state)
71{ 71{
72 u32 acpi_state = acpi_suspend_states[pm_state]; 72 u32 acpi_state = acpi_suspend_states[pm_state];
73 int error = 0; 73 int error = 0;
@@ -164,7 +164,7 @@ static int acpi_pm_enter(suspend_state_t pm_state)
164} 164}
165 165
166/** 166/**
167 * acpi_pm_finish - Finish up suspend sequence. 167 * acpi_pm_finish - Instruct the platform to leave a sleep state.
168 * 168 *
169 * This is called after we wake back up (or if entering the sleep state 169 * This is called after we wake back up (or if entering the sleep state
170 * failed). 170 * failed).
@@ -190,6 +190,19 @@ static void acpi_pm_finish(void)
190#endif 190#endif
191} 191}
192 192
193/**
194 * acpi_pm_end - Finish up suspend sequence.
195 */
196
197static void acpi_pm_end(void)
198{
199 /*
200 * This is necessary in case acpi_pm_finish() is not called during a
201 * failing transition to a sleep state.
202 */
203 acpi_target_sleep_state = ACPI_STATE_S0;
204}
205
193static int acpi_pm_state_valid(suspend_state_t pm_state) 206static int acpi_pm_state_valid(suspend_state_t pm_state)
194{ 207{
195 u32 acpi_state; 208 u32 acpi_state;
@@ -208,10 +221,11 @@ static int acpi_pm_state_valid(suspend_state_t pm_state)
208 221
209static struct platform_suspend_ops acpi_pm_ops = { 222static struct platform_suspend_ops acpi_pm_ops = {
210 .valid = acpi_pm_state_valid, 223 .valid = acpi_pm_state_valid,
211 .set_target = acpi_pm_set_target, 224 .begin = acpi_pm_begin,
212 .prepare = acpi_pm_prepare, 225 .prepare = acpi_pm_prepare,
213 .enter = acpi_pm_enter, 226 .enter = acpi_pm_enter,
214 .finish = acpi_pm_finish, 227 .finish = acpi_pm_finish,
228 .end = acpi_pm_end,
215}; 229};
216 230
217/* 231/*