diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/power/suspend.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index d4feda084a3a..bef86d121eb2 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
@@ -76,8 +76,20 @@ EXPORT_SYMBOL_GPL(suspend_set_ops); | |||
76 | 76 | ||
77 | bool valid_state(suspend_state_t state) | 77 | bool valid_state(suspend_state_t state) |
78 | { | 78 | { |
79 | if (state == PM_SUSPEND_FREEZE) | 79 | if (state == PM_SUSPEND_FREEZE) { |
80 | return true; | 80 | #ifdef CONFIG_PM_DEBUG |
81 | if (pm_test_level != TEST_NONE && | ||
82 | pm_test_level != TEST_FREEZER && | ||
83 | pm_test_level != TEST_DEVICES && | ||
84 | pm_test_level != TEST_PLATFORM) { | ||
85 | printk(KERN_WARNING "Unsupported pm_test mode for " | ||
86 | "freeze state, please choose " | ||
87 | "none/freezer/devices/platform.\n"); | ||
88 | return false; | ||
89 | } | ||
90 | #endif | ||
91 | return true; | ||
92 | } | ||
81 | /* | 93 | /* |
82 | * PM_SUSPEND_STANDBY and PM_SUSPEND_MEMORY states need lowlevel | 94 | * PM_SUSPEND_STANDBY and PM_SUSPEND_MEMORY states need lowlevel |
83 | * support and need to be valid to the lowlevel | 95 | * support and need to be valid to the lowlevel |
@@ -184,6 +196,9 @@ static int suspend_enter(suspend_state_t state, bool *wakeup) | |||
184 | goto Platform_wake; | 196 | goto Platform_wake; |
185 | } | 197 | } |
186 | 198 | ||
199 | if (suspend_test(TEST_PLATFORM)) | ||
200 | goto Platform_wake; | ||
201 | |||
187 | /* | 202 | /* |
188 | * PM_SUSPEND_FREEZE equals | 203 | * PM_SUSPEND_FREEZE equals |
189 | * frozen processes + suspended devices + idle processors. | 204 | * frozen processes + suspended devices + idle processors. |
@@ -195,9 +210,6 @@ static int suspend_enter(suspend_state_t state, bool *wakeup) | |||
195 | goto Platform_wake; | 210 | goto Platform_wake; |
196 | } | 211 | } |
197 | 212 | ||
198 | if (suspend_test(TEST_PLATFORM)) | ||
199 | goto Platform_wake; | ||
200 | |||
201 | error = disable_nonboot_cpus(); | 213 | error = disable_nonboot_cpus(); |
202 | if (error || suspend_test(TEST_CPUS)) | 214 | if (error || suspend_test(TEST_CPUS)) |
203 | goto Enable_cpus; | 215 | goto Enable_cpus; |