summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/power/domain.c10
-rw-r--r--include/linux/pm_domain.h9
2 files changed, 12 insertions, 7 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 9193aacf7b1b..a1f2aff33997 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1258,12 +1258,14 @@ EXPORT_SYMBOL_GPL(pm_genpd_remove_subdomain);
1258 * @genpd: PM domain object to initialize. 1258 * @genpd: PM domain object to initialize.
1259 * @gov: PM domain governor to associate with the domain (may be NULL). 1259 * @gov: PM domain governor to associate with the domain (may be NULL).
1260 * @is_off: Initial value of the domain's power_is_off field. 1260 * @is_off: Initial value of the domain's power_is_off field.
1261 *
1262 * Returns 0 on successful initialization, else a negative error code.
1261 */ 1263 */
1262void pm_genpd_init(struct generic_pm_domain *genpd, 1264int pm_genpd_init(struct generic_pm_domain *genpd,
1263 struct dev_power_governor *gov, bool is_off) 1265 struct dev_power_governor *gov, bool is_off)
1264{ 1266{
1265 if (IS_ERR_OR_NULL(genpd)) 1267 if (IS_ERR_OR_NULL(genpd))
1266 return; 1268 return -EINVAL;
1267 1269
1268 INIT_LIST_HEAD(&genpd->master_links); 1270 INIT_LIST_HEAD(&genpd->master_links);
1269 INIT_LIST_HEAD(&genpd->slave_links); 1271 INIT_LIST_HEAD(&genpd->slave_links);
@@ -1321,6 +1323,8 @@ void pm_genpd_init(struct generic_pm_domain *genpd,
1321 mutex_lock(&gpd_list_lock); 1323 mutex_lock(&gpd_list_lock);
1322 list_add(&genpd->gpd_list_node, &gpd_list); 1324 list_add(&genpd->gpd_list_node, &gpd_list);
1323 mutex_unlock(&gpd_list_lock); 1325 mutex_unlock(&gpd_list_lock);
1326
1327 return 0;
1324} 1328}
1325EXPORT_SYMBOL_GPL(pm_genpd_init); 1329EXPORT_SYMBOL_GPL(pm_genpd_init);
1326 1330
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index dd5b0447d572..31fec858088c 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -127,8 +127,8 @@ extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
127 struct generic_pm_domain *new_subdomain); 127 struct generic_pm_domain *new_subdomain);
128extern int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, 128extern int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
129 struct generic_pm_domain *target); 129 struct generic_pm_domain *target);
130extern void pm_genpd_init(struct generic_pm_domain *genpd, 130extern int pm_genpd_init(struct generic_pm_domain *genpd,
131 struct dev_power_governor *gov, bool is_off); 131 struct dev_power_governor *gov, bool is_off);
132 132
133extern struct dev_power_governor simple_qos_governor; 133extern struct dev_power_governor simple_qos_governor;
134extern struct dev_power_governor pm_domain_always_on_gov; 134extern struct dev_power_governor pm_domain_always_on_gov;
@@ -163,9 +163,10 @@ static inline int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
163{ 163{
164 return -ENOSYS; 164 return -ENOSYS;
165} 165}
166static inline void pm_genpd_init(struct generic_pm_domain *genpd, 166static inline int pm_genpd_init(struct generic_pm_domain *genpd,
167 struct dev_power_governor *gov, bool is_off) 167 struct dev_power_governor *gov, bool is_off)
168{ 168{
169 return -ENOSYS;
169} 170}
170#endif 171#endif
171 172