diff options
Diffstat (limited to 'kernel/power/suspend.c')
| -rw-r--r-- | kernel/power/suspend.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index f37cb7dd4402..7335952ee473 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c  | |||
| @@ -136,19 +136,19 @@ static int suspend_enter(suspend_state_t state) | |||
| 136 | if (suspend_ops->prepare) { | 136 | if (suspend_ops->prepare) { | 
| 137 | error = suspend_ops->prepare(); | 137 | error = suspend_ops->prepare(); | 
| 138 | if (error) | 138 | if (error) | 
| 139 | return error; | 139 | goto Platform_finish; | 
| 140 | } | 140 | } | 
| 141 | 141 | ||
| 142 | error = dpm_suspend_noirq(PMSG_SUSPEND); | 142 | error = dpm_suspend_noirq(PMSG_SUSPEND); | 
| 143 | if (error) { | 143 | if (error) { | 
| 144 | printk(KERN_ERR "PM: Some devices failed to power down\n"); | 144 | printk(KERN_ERR "PM: Some devices failed to power down\n"); | 
| 145 | goto Platfrom_finish; | 145 | goto Platform_finish; | 
| 146 | } | 146 | } | 
| 147 | 147 | ||
| 148 | if (suspend_ops->prepare_late) { | 148 | if (suspend_ops->prepare_late) { | 
| 149 | error = suspend_ops->prepare_late(); | 149 | error = suspend_ops->prepare_late(); | 
| 150 | if (error) | 150 | if (error) | 
| 151 | goto Power_up_devices; | 151 | goto Platform_wake; | 
| 152 | } | 152 | } | 
| 153 | 153 | ||
| 154 | if (suspend_test(TEST_PLATFORM)) | 154 | if (suspend_test(TEST_PLATFORM)) | 
| @@ -163,8 +163,10 @@ static int suspend_enter(suspend_state_t state) | |||
| 163 | 163 | ||
| 164 | error = sysdev_suspend(PMSG_SUSPEND); | 164 | error = sysdev_suspend(PMSG_SUSPEND); | 
| 165 | if (!error) { | 165 | if (!error) { | 
| 166 | if (!suspend_test(TEST_CORE)) | 166 | if (!suspend_test(TEST_CORE) && pm_check_wakeup_events()) { | 
| 167 | error = suspend_ops->enter(state); | 167 | error = suspend_ops->enter(state); | 
| 168 | events_check_enabled = false; | ||
| 169 | } | ||
| 168 | sysdev_resume(); | 170 | sysdev_resume(); | 
| 169 | } | 171 | } | 
| 170 | 172 | ||
| @@ -178,10 +180,9 @@ static int suspend_enter(suspend_state_t state) | |||
| 178 | if (suspend_ops->wake) | 180 | if (suspend_ops->wake) | 
| 179 | suspend_ops->wake(); | 181 | suspend_ops->wake(); | 
| 180 | 182 | ||
| 181 | Power_up_devices: | ||
| 182 | dpm_resume_noirq(PMSG_RESUME); | 183 | dpm_resume_noirq(PMSG_RESUME); | 
| 183 | 184 | ||
| 184 | Platfrom_finish: | 185 | Platform_finish: | 
| 185 | if (suspend_ops->finish) | 186 | if (suspend_ops->finish) | 
| 186 | suspend_ops->finish(); | 187 | suspend_ops->finish(); | 
| 187 | 188 | ||
