cpuidle: psci: Fix regression leading to no genpd governor
authorUlf Hansson <ulf.hansson@linaro.org>
Sat, 14 May 2022 15:20:32 +0000 (17:20 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 19 May 2022 17:35:54 +0000 (19:35 +0200)
While factoring out the PM domain related code from PSCI domain driver into
a set of library functions, a regression when initializing the genpds got
introduced. More precisely, we fail to assign a genpd governor, so let's
fix this.

Fixes: 9d976d6721df ("cpuidle: Factor-out power domain related code from PSCI domain driver")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/cpuidle-psci-domain.c

index 755bbdf..3db4fca 100644 (file)
@@ -52,7 +52,7 @@ static int psci_pd_init(struct device_node *np, bool use_osi)
        struct generic_pm_domain *pd;
        struct psci_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, psci_dt_parse_state_node);
        if (!pd)
@@ -71,7 +71,7 @@ static int psci_pd_init(struct device_node *np, bool use_osi)
                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)