|
@@ -1027,6 +1027,8 @@ static int __device_suspend_noirq(struct device *dev, pm_message_t state, bool a
|
|
|
TRACE_DEVICE(dev);
|
|
|
TRACE_SUSPEND(0);
|
|
|
|
|
|
+ dpm_wait_for_children(dev, async);
|
|
|
+
|
|
|
if (async_error)
|
|
|
goto Complete;
|
|
|
|
|
@@ -1038,8 +1040,6 @@ static int __device_suspend_noirq(struct device *dev, pm_message_t state, bool a
|
|
|
if (dev->power.syscore || dev->power.direct_complete)
|
|
|
goto Complete;
|
|
|
|
|
|
- dpm_wait_for_children(dev, async);
|
|
|
-
|
|
|
if (dev->pm_domain) {
|
|
|
info = "noirq power domain ";
|
|
|
callback = pm_noirq_op(&dev->pm_domain->ops, state);
|
|
@@ -1174,6 +1174,8 @@ static int __device_suspend_late(struct device *dev, pm_message_t state, bool as
|
|
|
|
|
|
__pm_runtime_disable(dev, false);
|
|
|
|
|
|
+ dpm_wait_for_children(dev, async);
|
|
|
+
|
|
|
if (async_error)
|
|
|
goto Complete;
|
|
|
|
|
@@ -1185,8 +1187,6 @@ static int __device_suspend_late(struct device *dev, pm_message_t state, bool as
|
|
|
if (dev->power.syscore || dev->power.direct_complete)
|
|
|
goto Complete;
|
|
|
|
|
|
- dpm_wait_for_children(dev, async);
|
|
|
-
|
|
|
if (dev->pm_domain) {
|
|
|
info = "late power domain ";
|
|
|
callback = pm_late_early_op(&dev->pm_domain->ops, state);
|