Re: [PATCH] pmdomain: core: fix "sd_count" field setting
From: Ulf Hansson
Date: Mon Oct 28 2024 - 09:34:10 EST
On Thu, 24 Oct 2024 at 11:49, Dario Binacchi
<dario.binacchi@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> The "sd_count" field keeps track of the number of subdomains with power
> "on," so if pm_genpd_init() is called with the "is_off" parameter set to
> false, it means that the power domain is already on, and therefore its
> "sd_count" must be 1.
genpd_sd_counter_inc() is being called when adding subdomains. Doesn't
that work correctly for you?
>
> Co-developed-by: Michael Trimarchi <michael@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Michael Trimarchi <michael@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Dario Binacchi <dario.binacchi@xxxxxxxxxxxxxxxxxxxx>
>
Kind regards
Uffe
> ---
>
> drivers/pmdomain/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
> index 5ede0f7eda09..2df6dda98021 100644
> --- a/drivers/pmdomain/core.c
> +++ b/drivers/pmdomain/core.c
> @@ -2221,7 +2221,7 @@ int pm_genpd_init(struct generic_pm_domain *genpd,
> genpd_lock_init(genpd);
> genpd->gov = gov;
> INIT_WORK(&genpd->power_off_work, genpd_power_off_work_fn);
> - atomic_set(&genpd->sd_count, 0);
> + atomic_set(&genpd->sd_count, is_off ? 0 : 1);
> genpd->status = is_off ? GENPD_STATE_OFF : GENPD_STATE_ON;
> genpd->device_count = 0;
> genpd->provider = NULL;
> --
> 2.43.0
>