diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/power/main.c | 21 | ||||
-rw-r--r-- | kernel/sys.c | 2 |
2 files changed, 8 insertions, 15 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c index 5a779270cdbc..f6dda685e7e2 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
@@ -184,17 +184,21 @@ static void suspend_finish(suspend_state_t state) | |||
184 | static const char * const pm_states[PM_SUSPEND_MAX] = { | 184 | static const char * const pm_states[PM_SUSPEND_MAX] = { |
185 | [PM_SUSPEND_STANDBY] = "standby", | 185 | [PM_SUSPEND_STANDBY] = "standby", |
186 | [PM_SUSPEND_MEM] = "mem", | 186 | [PM_SUSPEND_MEM] = "mem", |
187 | #ifdef CONFIG_SOFTWARE_SUSPEND | ||
188 | [PM_SUSPEND_DISK] = "disk", | 187 | [PM_SUSPEND_DISK] = "disk", |
189 | #endif | ||
190 | }; | 188 | }; |
191 | 189 | ||
192 | static inline int valid_state(suspend_state_t state) | 190 | static inline int valid_state(suspend_state_t state) |
193 | { | 191 | { |
194 | /* Suspend-to-disk does not really need low-level support. | 192 | /* Suspend-to-disk does not really need low-level support. |
195 | * It can work with reboot if needed. */ | 193 | * It can work with shutdown/reboot if needed. If it isn't |
194 | * configured, then it cannot be supported. | ||
195 | */ | ||
196 | if (state == PM_SUSPEND_DISK) | 196 | if (state == PM_SUSPEND_DISK) |
197 | #ifdef CONFIG_SOFTWARE_SUSPEND | ||
197 | return 1; | 198 | return 1; |
199 | #else | ||
200 | return 0; | ||
201 | #endif | ||
198 | 202 | ||
199 | /* all other states need lowlevel support and need to be | 203 | /* all other states need lowlevel support and need to be |
200 | * valid to the lowlevel implementation, no valid callback | 204 | * valid to the lowlevel implementation, no valid callback |
@@ -244,17 +248,6 @@ static int enter_state(suspend_state_t state) | |||
244 | return error; | 248 | return error; |
245 | } | 249 | } |
246 | 250 | ||
247 | #ifdef CONFIG_SOFTWARE_SUSPEND | ||
248 | /* | ||
249 | * This is main interface to the outside world. It needs to be | ||
250 | * called from process context. | ||
251 | */ | ||
252 | int software_suspend(void) | ||
253 | { | ||
254 | return enter_state(PM_SUSPEND_DISK); | ||
255 | } | ||
256 | #endif | ||
257 | |||
258 | 251 | ||
259 | /** | 252 | /** |
260 | * pm_suspend - Externally visible function for suspending system. | 253 | * pm_suspend - Externally visible function for suspending system. |
diff --git a/kernel/sys.c b/kernel/sys.c index 123b165080e6..fe1f3ab20477 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -881,7 +881,7 @@ asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user | |||
881 | #ifdef CONFIG_SOFTWARE_SUSPEND | 881 | #ifdef CONFIG_SOFTWARE_SUSPEND |
882 | case LINUX_REBOOT_CMD_SW_SUSPEND: | 882 | case LINUX_REBOOT_CMD_SW_SUSPEND: |
883 | { | 883 | { |
884 | int ret = software_suspend(); | 884 | int ret = pm_suspend(PM_SUSPEND_DISK); |
885 | unlock_kernel(); | 885 | unlock_kernel(); |
886 | return ret; | 886 | return ret; |
887 | } | 887 | } |