PM / OPP: Add helpers for initializing CPU OPPs
With "operating-points-v2" its possible to tell which devices share OPPs. We already have infrastructure to decode that information. This patch adds following APIs: - of_get_cpus_sharing_opps: Returns cpumask of CPUs sharing OPPs (only valid with v2 bindings). - of_cpumask_init_opp_table: Initializes OPPs for all CPUs present in cpumask. - of_cpumask_free_opp_table: Frees OPPs for all CPUs present in cpumask. - set_cpus_sharing_opps: Sets which CPUs share OPPs (only valid with old OPP bindings, as this information isn't present in DT). Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
ad656a6a8b
commit
8d4d4e98ac
2 changed files with 198 additions and 0 deletions
|
|
@ -121,6 +121,10 @@ static inline struct srcu_notifier_head *dev_pm_opp_get_notifier(
|
|||
#if defined(CONFIG_PM_OPP) && defined(CONFIG_OF)
|
||||
int of_init_opp_table(struct device *dev);
|
||||
void of_free_opp_table(struct device *dev);
|
||||
int of_cpumask_init_opp_table(cpumask_var_t cpumask);
|
||||
void of_cpumask_free_opp_table(cpumask_var_t cpumask);
|
||||
int of_get_cpus_sharing_opps(struct device *cpu_dev, cpumask_var_t cpumask);
|
||||
int set_cpus_sharing_opps(struct device *cpu_dev, cpumask_var_t cpumask);
|
||||
#else
|
||||
static inline int of_init_opp_table(struct device *dev)
|
||||
{
|
||||
|
|
@ -130,6 +134,25 @@ static inline int of_init_opp_table(struct device *dev)
|
|||
static inline void of_free_opp_table(struct device *dev)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int of_cpumask_init_opp_table(cpumask_var_t cpumask)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline void of_cpumask_free_opp_table(cpumask_var_t cpumask)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int of_get_cpus_sharing_opps(struct device *cpu_dev, cpumask_var_t cpumask)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int set_cpus_sharing_opps(struct device *cpu_dev, cpumask_var_t cpumask)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_OPP_H__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue