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)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 19 May 2022 17:35:54 +0000 (19:35 +0200)
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.

Fixes: 6abf32f1d9c50 ("cpuidle: Add RISC-V SBI CPU idle driver")
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>
drivers/cpuidle/cpuidle-riscv-sbi.c

index 5c852e6..1151e5e 100644 (file)
@@ -414,7 +414,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)
@@ -433,7 +433,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)