diff options
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/power/main.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index ead3e79d6fcf..4747a1e8b44a 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
28 | #include <linux/async.h> | 28 | #include <linux/async.h> |
29 | #include <linux/suspend.h> | ||
29 | 30 | ||
30 | #include "../base.h" | 31 | #include "../base.h" |
31 | #include "power.h" | 32 | #include "power.h" |
@@ -1052,8 +1053,10 @@ static int dpm_prepare(pm_message_t state) | |||
1052 | mutex_unlock(&dpm_list_mtx); | 1053 | mutex_unlock(&dpm_list_mtx); |
1053 | 1054 | ||
1054 | pm_runtime_get_noresume(dev); | 1055 | pm_runtime_get_noresume(dev); |
1055 | if (pm_runtime_barrier(dev) && device_may_wakeup(dev)) { | 1056 | if (pm_runtime_barrier(dev) && device_may_wakeup(dev)) |
1056 | /* Wake-up requested during system sleep transition. */ | 1057 | pm_wakeup_event(dev, 0); |
1058 | |||
1059 | if (!pm_check_wakeup_events()) { | ||
1057 | pm_runtime_put_sync(dev); | 1060 | pm_runtime_put_sync(dev); |
1058 | error = -EBUSY; | 1061 | error = -EBUSY; |
1059 | } else { | 1062 | } else { |
@@ -1068,8 +1071,8 @@ static int dpm_prepare(pm_message_t state) | |||
1068 | error = 0; | 1071 | error = 0; |
1069 | continue; | 1072 | continue; |
1070 | } | 1073 | } |
1071 | printk(KERN_ERR "PM: Failed to prepare device %s " | 1074 | printk(KERN_INFO "PM: Device %s not prepared " |
1072 | "for power transition: error %d\n", | 1075 | "for power transition: code %d\n", |
1073 | kobject_name(&dev->kobj), error); | 1076 | kobject_name(&dev->kobj), error); |
1074 | put_device(dev); | 1077 | put_device(dev); |
1075 | break; | 1078 | break; |