Merge back PM core material for v4.16.
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 16 Dec 2017 01:05:48 +0000 (02:05 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 16 Dec 2017 01:05:48 +0000 (02:05 +0100)
1  2 
drivers/acpi/device_pm.c
drivers/base/power/main.c
drivers/pci/pci-driver.c
include/linux/pm.h

Simple merge
index 08744b572af6a25184d274ba91304e19ec2be732,cd48b1c69167ccd776d4be5385cb90f986a0ab99..6e8cc5de93fd28754497ac82f309d522e699673b
@@@ -525,21 -524,18 +524,33 @@@ static void dpm_watchdog_clear(struct d
  
  /*------------------------- Resume routines -------------------------*/
  
 +/**
 + * dev_pm_skip_next_resume_phases - Skip next system resume phases for device.
 + * @dev: Target device.
 + *
 + * Make the core skip the "early resume" and "resume" phases for @dev.
 + *
 + * This function can be called by middle-layer code during the "noirq" phase of
 + * system resume if necessary, but not by device drivers.
 + */
 +void dev_pm_skip_next_resume_phases(struct device *dev)
 +{
 +      dev->power.is_late_suspended = false;
 +      dev->power.is_suspended = false;
 +}
 +
+ /**
+  * dev_pm_may_skip_resume - System-wide device resume optimization check.
+  * @dev: Target device.
+  *
+  * Checks whether or not the device may be left in suspend after a system-wide
+  * transition to the working state.
+  */
+ bool dev_pm_may_skip_resume(struct device *dev)
+ {
+       return !dev->power.must_resume && pm_transition.event != PM_EVENT_RESTORE;
+ }
  /**
   * device_resume_noirq - Execute a "noirq resume" callback for given device.
   * @dev: Device to handle.
Simple merge
index 492ed473ba7e440ad422c3a5c16833ef47e66374,b5a40b713e9ec76787031974aae156111d51f373..e723b78d835706f2af7e06dc2e0379e9406a981c
@@@ -765,7 -772,7 +772,8 @@@ extern int pm_generic_poweroff_late(str
  extern int pm_generic_poweroff(struct device *dev);
  extern void pm_generic_complete(struct device *dev);
  
 +extern void dev_pm_skip_next_resume_phases(struct device *dev);
+ extern bool dev_pm_may_skip_resume(struct device *dev);
  extern bool dev_pm_smart_suspend_and_suspended(struct device *dev);
  
  #else /* !CONFIG_PM_SLEEP */