Message ID | 20220514152044.758802-1-ulf.hansson@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] cpuidle: psci: Fix regression leading to no genpd governor | expand |
On Sat, May 14, 2022 at 8:50 PM Ulf Hansson <ulf.hansson@linaro.org> wrote: > > 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> Looks good to me. I have tested this on QEMU RISC-V as well. Reviewed-by: Anup Patel <anup@brainfault.org> Tested-by: Anup Patel <anup@brainfault.org> Thanks, Anup > --- > drivers/cpuidle/cpuidle-riscv-sbi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c > index b459eda2cd37..478970fa3b0c 100644 > --- a/drivers/cpuidle/cpuidle-riscv-sbi.c > +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c > @@ -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) > -- > 2.25.1 >
diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c index b459eda2cd37..478970fa3b0c 100644 --- a/drivers/cpuidle/cpuidle-riscv-sbi.c +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -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)
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> --- drivers/cpuidle/cpuidle-riscv-sbi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)