Commit b4fd4ae6c6420c18e4bae2c294b7e06f5ff5210f

Authored by Linus Torvalds

Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  PM / Domains: Fix build for CONFIG_PM_RUNTIME unset

Showing 3 changed files Side-by-side Diff

drivers/base/power/domain.c
... ... @@ -460,6 +460,21 @@
460 460 return 0;
461 461 }
462 462  
  463 +/**
  464 + * pm_genpd_poweroff_unused - Power off all PM domains with no devices in use.
  465 + */
  466 +void pm_genpd_poweroff_unused(void)
  467 +{
  468 + struct generic_pm_domain *genpd;
  469 +
  470 + mutex_lock(&gpd_list_lock);
  471 +
  472 + list_for_each_entry(genpd, &gpd_list, gpd_list_node)
  473 + genpd_queue_power_off_work(genpd);
  474 +
  475 + mutex_unlock(&gpd_list_lock);
  476 +}
  477 +
463 478 #else
464 479  
465 480 static inline void genpd_power_off_work_fn(struct work_struct *work) {}
... ... @@ -1253,21 +1268,6 @@
1253 1268 genpd->domain.ops.complete = pm_genpd_complete;
1254 1269 mutex_lock(&gpd_list_lock);
1255 1270 list_add(&genpd->gpd_list_node, &gpd_list);
1256   - mutex_unlock(&gpd_list_lock);
1257   -}
1258   -
1259   -/**
1260   - * pm_genpd_poweroff_unused - Power off all PM domains with no devices in use.
1261   - */
1262   -void pm_genpd_poweroff_unused(void)
1263   -{
1264   - struct generic_pm_domain *genpd;
1265   -
1266   - mutex_lock(&gpd_list_lock);
1267   -
1268   - list_for_each_entry(genpd, &gpd_list, gpd_list_node)
1269   - genpd_queue_power_off_work(genpd);
1270   -
1271 1271 mutex_unlock(&gpd_list_lock);
1272 1272 }
include/linux/pm_domain.h
... ... @@ -72,8 +72,6 @@
72 72 extern void pm_genpd_init(struct generic_pm_domain *genpd,
73 73 struct dev_power_governor *gov, bool is_off);
74 74 extern int pm_genpd_poweron(struct generic_pm_domain *genpd);
75   -extern void pm_genpd_poweroff_unused(void);
76   -extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd);
77 75 #else
78 76 static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
79 77 struct device *dev)
80 78  
... ... @@ -101,8 +99,14 @@
101 99 {
102 100 return -ENOSYS;
103 101 }
104   -static inline void pm_genpd_poweroff_unused(void) {}
  102 +#endif
  103 +
  104 +#ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME
  105 +extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd);
  106 +extern void pm_genpd_poweroff_unused(void);
  107 +#else
105 108 static inline void genpd_queue_power_off_work(struct generic_pm_domain *gpd) {}
  109 +static inline void pm_genpd_poweroff_unused(void) {}
106 110 #endif
107 111  
108 112 #endif /* _LINUX_PM_DOMAIN_H */
kernel/power/Kconfig
... ... @@ -231,4 +231,8 @@
231 231 config PM_GENERIC_DOMAINS
232 232 bool
233 233 depends on PM
  234 +
  235 +config PM_GENERIC_DOMAINS_RUNTIME
  236 + def_bool y
  237 + depends on PM_RUNTIME && PM_GENERIC_DOMAINS