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; |
