Message ID | 20200520034307.20435-2-andrew-sh.cheng@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add cpufreq and cci devfreq for mt8183, and SVS support | expand |
On 20/05/2020 05:42, Andrew-sh.Cheng wrote: > From: Saravana Kannan <saravanak@google.com> > > A Device-A can have a (minimum) performance requirement on another > Device-B to be able to function correctly. This performance requirement > on Device-B can also change based on the current performance level of > Device-A. > > The existing required-opps feature fits well to describe this need. So, > instead of limiting required-opps to point to only PM-domain devices, > allow it to point to any device. > > Signed-off-by: Saravana Kannan <saravanak@google.com> Please check all patches, they are missing your Signed-off-by Regards, Matthias > --- > drivers/opp/core.c | 2 +- > drivers/opp/of.c | 11 ----------- > 2 files changed, 1 insertion(+), 12 deletions(-) > > diff --git a/drivers/opp/core.c b/drivers/opp/core.c > index ba43e6a3dc0a..51403c1f2481 100644 > --- a/drivers/opp/core.c > +++ b/drivers/opp/core.c > @@ -755,7 +755,7 @@ static int _set_required_opps(struct device *dev, > return 0; > > /* Single genpd case */ > - if (!genpd_virt_devs) { > + if (!genpd_virt_devs && required_opp_tables[0]->is_genpd) { > pstate = likely(opp) ? opp->required_opps[0]->pstate : 0; > ret = dev_pm_genpd_set_performance_state(dev, pstate); > if (ret) { > diff --git a/drivers/opp/of.c b/drivers/opp/of.c > index 9cd8f0adacae..6d33de668a7b 100644 > --- a/drivers/opp/of.c > +++ b/drivers/opp/of.c > @@ -195,17 +195,6 @@ static void _opp_table_alloc_required_tables(struct opp_table *opp_table, > > if (IS_ERR(required_opp_tables[i])) > goto free_required_tables; > - > - /* > - * We only support genpd's OPPs in the "required-opps" for now, > - * as we don't know how much about other cases. Error out if the > - * required OPP doesn't belong to a genpd. > - */ > - if (!required_opp_tables[i]->is_genpd) { > - dev_err(dev, "required-opp doesn't belong to genpd: %pOF\n", > - required_np); > - goto free_required_tables; > - } > } > > goto put_np; >
On Wed, 2020-05-20 at 16:54 +0200, Matthias Brugger wrote: > > On 20/05/2020 05:42, Andrew-sh.Cheng wrote: > > From: Saravana Kannan <saravanak@google.com> > > > > A Device-A can have a (minimum) performance requirement on another > > Device-B to be able to function correctly. This performance requirement > > on Device-B can also change based on the current performance level of > > Device-A. > > > > The existing required-opps feature fits well to describe this need. So, > > instead of limiting required-opps to point to only PM-domain devices, > > allow it to point to any device. > > > > Signed-off-by: Saravana Kannan <saravanak@google.com> > > Please check all patches, they are missing your > Signed-off-by > > Regards, > Matthias Hi Matthias, I modify patch [6/12] to meet kernel-5.7 data structure and add signed-off. For [1/12] to [5/12], I didn't modify them. Should I also add signed-off ? BR, Andrew-sh.Cheng > > > --- > > drivers/opp/core.c | 2 +- > > drivers/opp/of.c | 11 ----------- > > 2 files changed, 1 insertion(+), 12 deletions(-) > > > > diff --git a/drivers/opp/core.c b/drivers/opp/core.c > > index ba43e6a3dc0a..51403c1f2481 100644 > > --- a/drivers/opp/core.c > > +++ b/drivers/opp/core.c > > @@ -755,7 +755,7 @@ static int _set_required_opps(struct device *dev, > > return 0; > > > > /* Single genpd case */ > > - if (!genpd_virt_devs) { > > + if (!genpd_virt_devs && required_opp_tables[0]->is_genpd) { > > pstate = likely(opp) ? opp->required_opps[0]->pstate : 0; > > ret = dev_pm_genpd_set_performance_state(dev, pstate); > > if (ret) { > > diff --git a/drivers/opp/of.c b/drivers/opp/of.c > > index 9cd8f0adacae..6d33de668a7b 100644 > > --- a/drivers/opp/of.c > > +++ b/drivers/opp/of.c > > @@ -195,17 +195,6 @@ static void _opp_table_alloc_required_tables(struct opp_table *opp_table, > > > > if (IS_ERR(required_opp_tables[i])) > > goto free_required_tables; > > - > > - /* > > - * We only support genpd's OPPs in the "required-opps" for now, > > - * as we don't know how much about other cases. Error out if the > > - * required OPP doesn't belong to a genpd. > > - */ > > - if (!required_opp_tables[i]->is_genpd) { > > - dev_err(dev, "required-opp doesn't belong to genpd: %pOF\n", > > - required_np); > > - goto free_required_tables; > > - } > > } > > > > goto put_np; > >
diff --git a/drivers/opp/core.c b/drivers/opp/core.c index ba43e6a3dc0a..51403c1f2481 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -755,7 +755,7 @@ static int _set_required_opps(struct device *dev, return 0; /* Single genpd case */ - if (!genpd_virt_devs) { + if (!genpd_virt_devs && required_opp_tables[0]->is_genpd) { pstate = likely(opp) ? opp->required_opps[0]->pstate : 0; ret = dev_pm_genpd_set_performance_state(dev, pstate); if (ret) { diff --git a/drivers/opp/of.c b/drivers/opp/of.c index 9cd8f0adacae..6d33de668a7b 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -195,17 +195,6 @@ static void _opp_table_alloc_required_tables(struct opp_table *opp_table, if (IS_ERR(required_opp_tables[i])) goto free_required_tables; - - /* - * We only support genpd's OPPs in the "required-opps" for now, - * as we don't know how much about other cases. Error out if the - * required OPP doesn't belong to a genpd. - */ - if (!required_opp_tables[i]->is_genpd) { - dev_err(dev, "required-opp doesn't belong to genpd: %pOF\n", - required_np); - goto free_required_tables; - } } goto put_np;