Message ID | 20200604015317.31389-3-thara.gopinath@linaro.org |
---|---|
State | New |
Headers | show |
Series | Introduce Power domain based warming device driver | expand |
On Thu, 4 Jun 2020 at 03:53, Thara Gopinath <thara.gopinath@linaro.org> wrote: > > Populate .get_performance_state_count in genpd ops to retrieve the count of > performance states supported by a rpmh power domain. > > Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Kind regards Uffe > --- > drivers/soc/qcom/rpmhpd.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c > index e72426221a69..a9c597143525 100644 > --- a/drivers/soc/qcom/rpmhpd.c > +++ b/drivers/soc/qcom/rpmhpd.c > @@ -362,6 +362,13 @@ static unsigned int rpmhpd_get_performance_state(struct generic_pm_domain *genpd > return dev_pm_opp_get_level(opp); > } > > +static int rpmhpd_performance_states_count(struct generic_pm_domain *domain) > +{ > + struct rpmhpd *pd = domain_to_rpmhpd(domain); > + > + return pd->level_count; > +} > + > static int rpmhpd_update_level_mapping(struct rpmhpd *rpmhpd) > { > int i; > @@ -450,6 +457,7 @@ static int rpmhpd_probe(struct platform_device *pdev) > rpmhpds[i]->pd.power_on = rpmhpd_power_on; > rpmhpds[i]->pd.set_performance_state = rpmhpd_set_performance_state; > rpmhpds[i]->pd.opp_to_performance_state = rpmhpd_get_performance_state; > + rpmhpds[i]->pd.get_performance_state_count = rpmhpd_performance_states_count; > pm_genpd_init(&rpmhpds[i]->pd, NULL, true); > > data->domains[i] = &rpmhpds[i]->pd; > -- > 2.20.1 >
diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c index e72426221a69..a9c597143525 100644 --- a/drivers/soc/qcom/rpmhpd.c +++ b/drivers/soc/qcom/rpmhpd.c @@ -362,6 +362,13 @@ static unsigned int rpmhpd_get_performance_state(struct generic_pm_domain *genpd return dev_pm_opp_get_level(opp); } +static int rpmhpd_performance_states_count(struct generic_pm_domain *domain) +{ + struct rpmhpd *pd = domain_to_rpmhpd(domain); + + return pd->level_count; +} + static int rpmhpd_update_level_mapping(struct rpmhpd *rpmhpd) { int i; @@ -450,6 +457,7 @@ static int rpmhpd_probe(struct platform_device *pdev) rpmhpds[i]->pd.power_on = rpmhpd_power_on; rpmhpds[i]->pd.set_performance_state = rpmhpd_set_performance_state; rpmhpds[i]->pd.opp_to_performance_state = rpmhpd_get_performance_state; + rpmhpds[i]->pd.get_performance_state_count = rpmhpd_performance_states_count; pm_genpd_init(&rpmhpds[i]->pd, NULL, true); data->domains[i] = &rpmhpds[i]->pd;