diff options
Diffstat (limited to 'drivers/base/power/common.c')
| -rw-r--r-- | drivers/base/power/common.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/base/power/common.c b/drivers/base/power/common.c index 781968a128ff..6ecf9ce4a4e6 100644 --- a/drivers/base/power/common.c +++ b/drivers/base/power/common.c @@ -83,7 +83,7 @@ EXPORT_SYMBOL_GPL(dev_pm_put_subsys_data);  /**   * dev_pm_domain_attach - Attach a device to its PM domain.   * @dev: Device to attach. - * @power_on: Used to indicate whether we should power on the device. + * @flags: indicate whether we should power on/off the device on attach/detach   *   * The @dev may only be attached to a single PM domain. By iterating through   * the available alternatives we try to find a valid PM domain for the device. @@ -100,17 +100,20 @@ EXPORT_SYMBOL_GPL(dev_pm_put_subsys_data);   * Returns 0 on successfully attached PM domain, or when it is found that the   * device doesn't need a PM domain, else a negative error code.   */ -int dev_pm_domain_attach(struct device *dev, bool power_on) +int dev_pm_domain_attach(struct device *dev, u32 flags)  {  	int ret;  	if (dev->pm_domain)  		return 0; -	ret = acpi_dev_pm_attach(dev, power_on); +	ret = acpi_dev_pm_attach(dev, !!(flags & PD_FLAG_ATTACH_POWER_ON));  	if (!ret)  		ret = genpd_dev_pm_attach(dev); +	if (dev->pm_domain) +		dev->power.detach_power_off = !!(flags & PD_FLAG_DETACH_POWER_OFF); +  	return ret < 0 ? ret : 0;  }  EXPORT_SYMBOL_GPL(dev_pm_domain_attach);  | 
