diff options
Diffstat (limited to 'drivers/base/power/main.c')
| -rw-r--r-- | drivers/base/power/main.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index a3c1404c793..2b7f77d3fcb 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -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;  }  |