|
@@ -1788,6 +1788,9 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
|
|
End:
|
|
End:
|
|
if (!error) {
|
|
if (!error) {
|
|
dev->power.is_suspended = true;
|
|
dev->power.is_suspended = true;
|
|
|
|
+ if (device_may_wakeup(dev))
|
|
|
|
+ dev->power.wakeup_path = true;
|
|
|
|
+
|
|
dpm_propagate_to_parent(dev);
|
|
dpm_propagate_to_parent(dev);
|
|
dpm_clear_suppliers_direct_complete(dev);
|
|
dpm_clear_suppliers_direct_complete(dev);
|
|
}
|
|
}
|
|
@@ -1912,7 +1915,7 @@ static int device_prepare(struct device *dev, pm_message_t state)
|
|
|
|
|
|
device_lock(dev);
|
|
device_lock(dev);
|
|
|
|
|
|
- dev->power.wakeup_path = device_may_wakeup(dev);
|
|
|
|
|
|
+ dev->power.wakeup_path = false;
|
|
|
|
|
|
if (dev->power.no_pm_callbacks) {
|
|
if (dev->power.no_pm_callbacks) {
|
|
ret = 1; /* Let device go direct_complete */
|
|
ret = 1; /* Let device go direct_complete */
|