1

OPP: Handle all genpd cases together in _set_required_opps()

There is no real need of keeping separate code for single genpd case, it
can be made to work with a simple change.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Viresh Kumar 2023-02-22 16:36:37 +05:30
parent e9eadc2827
commit 29b1a92e5e

View File

@ -959,7 +959,8 @@ static int _set_required_opps(struct device *dev,
struct dev_pm_opp *opp, bool up)
{
struct opp_table **required_opp_tables = opp_table->required_opp_tables;
struct device **genpd_virt_devs = opp_table->genpd_virt_devs;
struct device **genpd_virt_devs =
opp_table->genpd_virt_devs ? opp_table->genpd_virt_devs : &dev;
int i, ret = 0;
if (!required_opp_tables)
@ -979,12 +980,6 @@ static int _set_required_opps(struct device *dev,
return -ENOENT;
}
/* Single genpd case */
if (!genpd_virt_devs)
return _set_required_opp(dev, dev, opp, 0);
/* Multiple genpd case */
/*
* Acquire genpd_virt_dev_lock to make sure we don't use a genpd_dev
* after it is freed from another thread.