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
@@@ -526,21 -525,18 +525,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.
   * @state: PM transition of the system being carried out.
Simple merge
@@@ -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 */