On 20/05/2020 05:42, Andrew-sh.Cheng wrote: > From: Saravana Kannan <saravanak@xxxxxxxxxx> > > 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@xxxxxxxxxx> 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; >