Merge branch 'v3.4-for-rafael' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into pm-domains

* 'v3.4-for-rafael' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: EXYNOS: Hook up power domains to generic power domain infrastructure
  PM / Domains: Add OF support
This commit is contained in:
Rafael J. Wysocki
2012-02-01 22:18:43 +01:00
11 changed files with 262 additions and 203 deletions
+32
View File
@@ -1229,6 +1229,38 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
return ret;
}
/**
* __pm_genpd_of_add_device - Add a device to an I/O PM domain.
* @genpd_node: Device tree node pointer representing a PM domain to which the
* the device is added to.
* @dev: Device to be added.
* @td: Set of PM QoS timing parameters to attach to the device.
*/
int __pm_genpd_of_add_device(struct device_node *genpd_node, struct device *dev,
struct gpd_timing_data *td)
{
struct generic_pm_domain *genpd = NULL, *gpd;
dev_dbg(dev, "%s()\n", __func__);
if (IS_ERR_OR_NULL(genpd_node) || IS_ERR_OR_NULL(dev))
return -EINVAL;
mutex_lock(&gpd_list_lock);
list_for_each_entry(gpd, &gpd_list, gpd_list_node) {
if (gpd->of_node == genpd_node) {
genpd = gpd;
break;
}
}
mutex_unlock(&gpd_list_lock);
if (!genpd)
return -EINVAL;
return __pm_genpd_add_device(genpd, dev, td);
}
/**
* pm_genpd_remove_device - Remove a device from an I/O PM domain.
* @genpd: PM domain to remove the device from.