cpuidle: riscv-sbi: Fix code to allow a genpd governor to be used
authorUlf Hansson <ulf.hansson@linaro.org>
Sat, 14 May 2022 15:20:44 +0000 (17:20 +0200)
committermason.huo <mason.huo@starfivetech.com>
Thu, 27 Oct 2022 05:54:44 +0000 (13:54 +0800)
The intent is to use a genpd governor when there are some states that needs
to be managed. Although, the current code ends up to never assign a
governor, let's fix this.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Anup Patel <anup@brainfault.org>
Tested-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: minda.chen <minda.chen@starfivetech.com>
drivers/cpuidle/cpuidle-riscv-sbi.c

index 936152b..3c38d55 100644 (file)
@@ -413,7 +413,7 @@ static int sbi_pd_init(struct device_node *np)
        struct generic_pm_domain *pd;
        struct sbi_pd_provider *pd_provider;
        struct dev_power_governor *pd_gov;
-       int ret = -ENOMEM, state_count = 0;
+       int ret = -ENOMEM;
 
        pd = dt_idle_pd_alloc(np, sbi_dt_parse_state_node);
        if (!pd)
@@ -432,7 +432,7 @@ static int sbi_pd_init(struct device_node *np)
                pd->flags |= GENPD_FLAG_ALWAYS_ON;
 
        /* Use governor for CPU PM domains if it has some states to manage. */
-       pd_gov = state_count > 0 ? &pm_domain_cpu_gov : NULL;
+       pd_gov = pd->states ? &pm_domain_cpu_gov : NULL;
 
        ret = pm_genpd_init(pd, pd_gov, false);
        if (ret)