|
@@ -513,6 +513,8 @@ static int device_resume_early(struct device *dev, pm_message_t state)
|
|
|
|
|
|
Out:
|
|
|
TRACE_RESUME(error);
|
|
|
+
|
|
|
+ pm_runtime_enable(dev);
|
|
|
return error;
|
|
|
}
|
|
|
|
|
@@ -589,8 +591,6 @@ static int device_resume(struct device *dev, pm_message_t state, bool async)
|
|
|
if (!dev->power.is_suspended)
|
|
|
goto Unlock;
|
|
|
|
|
|
- pm_runtime_enable(dev);
|
|
|
-
|
|
|
if (dev->pm_domain) {
|
|
|
info = "power domain ";
|
|
|
callback = pm_op(&dev->pm_domain->ops, state);
|
|
@@ -930,6 +930,8 @@ static int device_suspend_late(struct device *dev, pm_message_t state)
|
|
|
pm_callback_t callback = NULL;
|
|
|
char *info = NULL;
|
|
|
|
|
|
+ __pm_runtime_disable(dev, false);
|
|
|
+
|
|
|
if (dev->power.syscore)
|
|
|
return 0;
|
|
|
|
|
@@ -1133,11 +1135,8 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
|
|
|
|
|
|
Complete:
|
|
|
complete_all(&dev->power.completion);
|
|
|
-
|
|
|
if (error)
|
|
|
async_error = error;
|
|
|
- else if (dev->power.is_suspended)
|
|
|
- __pm_runtime_disable(dev, false);
|
|
|
|
|
|
return error;
|
|
|
}
|