|
@@ -1713,8 +1713,10 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
|
|
|
|
|
|
dpm_wait_for_subordinate(dev, async);
|
|
dpm_wait_for_subordinate(dev, async);
|
|
|
|
|
|
- if (async_error)
|
|
|
|
|
|
+ if (async_error) {
|
|
|
|
+ dev->power.direct_complete = false;
|
|
goto Complete;
|
|
goto Complete;
|
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
/*
|
|
* If a device configured to wake up the system from sleep states
|
|
* If a device configured to wake up the system from sleep states
|
|
@@ -1726,6 +1728,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
|
|
pm_wakeup_event(dev, 0);
|
|
pm_wakeup_event(dev, 0);
|
|
|
|
|
|
if (pm_wakeup_pending()) {
|
|
if (pm_wakeup_pending()) {
|
|
|
|
+ dev->power.direct_complete = false;
|
|
async_error = -EBUSY;
|
|
async_error = -EBUSY;
|
|
goto Complete;
|
|
goto Complete;
|
|
}
|
|
}
|