diff options
Diffstat (limited to 'drivers/base/power/main.c')
| -rw-r--r-- | drivers/base/power/main.c | 14 | 
1 files changed, 5 insertions, 9 deletions
| diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index cbea78e79f3d..ac4dde8fdb8b 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -32,7 +32,6 @@  #include <linux/suspend.h>  #include <trace/events/power.h>  #include <linux/cpufreq.h> -#include <linux/cpuidle.h>  #include <linux/devfreq.h>  #include <linux/timer.h> @@ -747,8 +746,6 @@ void dpm_resume_noirq(pm_message_t state)  	resume_device_irqs();  	device_wakeup_disarm_wake_irqs(); - -	cpuidle_resume();  }  /** @@ -1051,7 +1048,7 @@ static void device_complete(struct device *dev, pm_message_t state)  	const char *info = NULL;  	if (dev->power.syscore) -		return; +		goto out;  	device_lock(dev); @@ -1081,6 +1078,7 @@ static void device_complete(struct device *dev, pm_message_t state)  	device_unlock(dev); +out:  	pm_runtime_put(dev);  } @@ -1336,8 +1334,6 @@ int dpm_suspend_noirq(pm_message_t state)  {  	int ret; -	cpuidle_pause(); -  	device_wakeup_arm_wake_irqs();  	suspend_device_irqs(); @@ -1794,9 +1790,6 @@ static int device_prepare(struct device *dev, pm_message_t state)  	int (*callback)(struct device *) = NULL;  	int ret = 0; -	if (dev->power.syscore) -		return 0; -  	/*  	 * If a device's parent goes into runtime suspend at the wrong time,  	 * it won't be possible to resume the device.  To prevent this we @@ -1805,6 +1798,9 @@ static int device_prepare(struct device *dev, pm_message_t state)  	 */  	pm_runtime_get_noresume(dev); +	if (dev->power.syscore) +		return 0; +  	device_lock(dev);  	dev->power.wakeup_path = false; |