diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-12-25 23:43:11 +0100 | 
|---|---|---|
| committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-12-25 23:43:11 +0100 | 
| commit | 6d10463b2fa1b6b81091661c1917f26436b38c53 (patch) | |
| tree | 1fb5be10a08a3178fb644c9eb5a2a31423985cfa /drivers/base/power/qos.c | |
| parent | 0015afaa1f818d38ea9f8e81a84a6aeeca5fdaf0 (diff) | |
| parent | a8cf27bee7adc40d91956cf1b9e44d7001f93aba (diff) | |
| download | olio-linux-3.10-6d10463b2fa1b6b81091661c1917f26436b38c53.tar.xz olio-linux-3.10-6d10463b2fa1b6b81091661c1917f26436b38c53.zip  | |
Merge branch 'pm-domains' into pm-for-linus
* pm-domains:
  PM / shmobile: Allow the A4R domain to be turned off at run time
  PM / input / touchscreen: Make st1232 use device PM QoS constraints
  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()
  PM / shmobile: Remove the stay_on flag from SH7372's PM domains
  PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode
  ARM: S3C64XX: Implement basic power domain support
  PM / shmobile: Use common always on power domain governor
  PM / Domains: Provide an always on power domain governor
  PM / Domains: Fix default system suspend/resume operations
  PM / Domains: Make it possible to assign names to generic PM domains
  PM / Domains: fix compilation failure for CONFIG_PM_GENERIC_DOMAINS unset
  PM / Domains: Automatically update overoptimistic latency information
  PM / Domains: Add default power off governor function (v4)
  PM / Domains: Add device stop governor function (v4)
  PM / Domains: Rework system suspend callback routines (v2)
  PM / Domains: Introduce "save/restore state" device callbacks
  PM / Domains: Make it possible to use per-device domain callbacks
Diffstat (limited to 'drivers/base/power/qos.c')
| -rw-r--r-- | drivers/base/power/qos.c | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/base/power/qos.c b/drivers/base/power/qos.c index 03f4bd069ca..c5d35883746 100644 --- a/drivers/base/power/qos.c +++ b/drivers/base/power/qos.c @@ -420,3 +420,28 @@ int dev_pm_qos_remove_global_notifier(struct notifier_block *notifier)  	return blocking_notifier_chain_unregister(&dev_pm_notifiers, notifier);  }  EXPORT_SYMBOL_GPL(dev_pm_qos_remove_global_notifier); + +/** + * dev_pm_qos_add_ancestor_request - Add PM QoS request for device's ancestor. + * @dev: Device whose ancestor to add the request for. + * @req: Pointer to the preallocated handle. + * @value: Constraint latency value. + */ +int dev_pm_qos_add_ancestor_request(struct device *dev, +				    struct dev_pm_qos_request *req, s32 value) +{ +	struct device *ancestor = dev->parent; +	int error = -ENODEV; + +	while (ancestor && !ancestor->power.ignore_children) +		ancestor = ancestor->parent; + +	if (ancestor) +		error = dev_pm_qos_add_request(ancestor, req, value); + +	if (error) +		req->dev = NULL; + +	return error; +} +EXPORT_SYMBOL_GPL(dev_pm_qos_add_ancestor_request);  |