diff options
| author | Amit Daniel Kachhap <amit.daniel@samsung.com> | 2014-12-14 22:38:59 -0500 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-12-16 20:33:34 -0500 |
| commit | 7496fcbe8a643097efc061160e1c3b65ee2fa350 (patch) | |
| tree | 51ea842076e5eed2360f1b2e54ca52b4b67b9294 | |
| parent | cffa91380d6dd29befe7608e052693698b78dc9c (diff) | |
PM / Domains: Export of_genpd_get_from_provider function
This function looks up a PM domain form the provider. This will be
useful to add parent/child domain relationship from the SoC specific
code. The caller of the function must make sure that PM domain provider
is already registered.
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
| -rw-r--r-- | drivers/base/power/domain.c | 3 | ||||
| -rw-r--r-- | include/linux/pm_domain.h | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 5d7b7548873a..1bd119efaac1 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c | |||
| @@ -2108,7 +2108,7 @@ EXPORT_SYMBOL_GPL(of_genpd_del_provider); | |||
| 2108 | * Returns a valid pointer to struct generic_pm_domain on success or ERR_PTR() | 2108 | * Returns a valid pointer to struct generic_pm_domain on success or ERR_PTR() |
| 2109 | * on failure. | 2109 | * on failure. |
| 2110 | */ | 2110 | */ |
| 2111 | static struct generic_pm_domain *of_genpd_get_from_provider( | 2111 | struct generic_pm_domain *of_genpd_get_from_provider( |
| 2112 | struct of_phandle_args *genpdspec) | 2112 | struct of_phandle_args *genpdspec) |
| 2113 | { | 2113 | { |
| 2114 | struct generic_pm_domain *genpd = ERR_PTR(-ENOENT); | 2114 | struct generic_pm_domain *genpd = ERR_PTR(-ENOENT); |
| @@ -2128,6 +2128,7 @@ static struct generic_pm_domain *of_genpd_get_from_provider( | |||
| 2128 | 2128 | ||
| 2129 | return genpd; | 2129 | return genpd; |
| 2130 | } | 2130 | } |
| 2131 | EXPORT_SYMBOL_GPL(of_genpd_get_from_provider); | ||
| 2131 | 2132 | ||
| 2132 | /** | 2133 | /** |
| 2133 | * genpd_dev_pm_detach - Detach a device from its PM domain. | 2134 | * genpd_dev_pm_detach - Detach a device from its PM domain. |
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 1dd6c7f64166..ba7ca5468a7b 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h | |||
| @@ -275,6 +275,8 @@ typedef struct generic_pm_domain *(*genpd_xlate_t)(struct of_phandle_args *args, | |||
| 275 | int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, | 275 | int __of_genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, |
| 276 | void *data); | 276 | void *data); |
| 277 | void of_genpd_del_provider(struct device_node *np); | 277 | void of_genpd_del_provider(struct device_node *np); |
| 278 | struct generic_pm_domain *of_genpd_get_from_provider( | ||
| 279 | struct of_phandle_args *genpdspec); | ||
| 278 | 280 | ||
| 279 | struct generic_pm_domain *__of_genpd_xlate_simple( | 281 | struct generic_pm_domain *__of_genpd_xlate_simple( |
| 280 | struct of_phandle_args *genpdspec, | 282 | struct of_phandle_args *genpdspec, |
| @@ -292,6 +294,12 @@ static inline int __of_genpd_add_provider(struct device_node *np, | |||
| 292 | } | 294 | } |
| 293 | static inline void of_genpd_del_provider(struct device_node *np) {} | 295 | static inline void of_genpd_del_provider(struct device_node *np) {} |
| 294 | 296 | ||
| 297 | static inline struct generic_pm_domain *of_genpd_get_from_provider( | ||
| 298 | struct of_phandle_args *genpdspec) | ||
| 299 | { | ||
| 300 | return NULL; | ||
| 301 | } | ||
| 302 | |||
| 295 | #define __of_genpd_xlate_simple NULL | 303 | #define __of_genpd_xlate_simple NULL |
| 296 | #define __of_genpd_xlate_onecell NULL | 304 | #define __of_genpd_xlate_onecell NULL |
| 297 | 305 | ||
