OPP: Handle all genpd cases together in _set_required_opps()
authorViresh Kumar <viresh.kumar@linaro.org>
Wed, 22 Feb 2023 11:06:37 +0000 (16:36 +0530)
committerViresh Kumar <viresh.kumar@linaro.org>
Mon, 3 Apr 2023 04:15:09 +0000 (09:45 +0530)
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>
drivers/opp/core.c

index e87567d..6d7016c 100644 (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.