On Fri, 21 Dec 2018 at 09:57, Rajendra Nayak <rnayak@xxxxxxxxxxxxxx> wrote: > > Now that we have atleast 2 genpd providers, both using a simple > routine to read a performance state value from device tree and > return it, in order to implement the .opp_to_performance_state > callback, add a simple_opp_to_performance_state() helper to do > it, so it can be resued across all such genpd providers which > just need to read the value from DT. > > Suggested-by: Stephen Boyd <sboyd@xxxxxxxxxx> > Signed-off-by: Rajendra Nayak <rnayak@xxxxxxxxxxxxxx> > Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> > --- > drivers/base/power/domain.c | 17 +++++++++++++++++ > include/linux/pm_domain.h | 9 +++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c > index 8e554e6a82a2..193872afbe20 100644 > --- a/drivers/base/power/domain.c > +++ b/drivers/base/power/domain.c > @@ -2520,6 +2520,23 @@ int of_genpd_parse_idle_states(struct device_node *dn, > } > EXPORT_SYMBOL_GPL(of_genpd_parse_idle_states); > > +unsigned int simple_opp_to_performance_state(struct generic_pm_domain *genpd, > + struct dev_pm_opp *opp, > + const char *name) > +{ Looks like this function should be moved into the OPP library instead. There is no use of the genpd. > + struct device_node *np; > + unsigned int perf_state = 0; > + > + np = dev_pm_opp_get_of_node(opp); > + if (of_property_read_u32(np, name, &perf_state)) > + pr_err("%s: missing %s property\n", __func__, name); > + > + of_node_put(np); > + > + return perf_state; > +} > +EXPORT_SYMBOL_GPL(simple_opp_to_performance_state); > + Kind regards Uffe