Re: [PATCH] pmdomain: core: fix "sd_count" field setting

From: Dario Binacchi
Date: Mon Oct 28 2024 - 11:07:51 EST


On Mon, Oct 28, 2024 at 2:34 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
>
> 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?

In my use case the genpd_add_subdomain() is not called.
I am working on :
drivers/pmdomain/imx/gpcv2.c
drivers/pmdomain/imx/imx8m-blk-ctrl.c

Thanks and regards,
Dario

>
> >
> > 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
> >



--

Dario Binacchi

Senior Embedded Linux Developer

dario.binacchi@xxxxxxxxxxxxxxxxxxxx

__________________________________


Amarula Solutions SRL

Via Le Canevare 30, 31100 Treviso, Veneto, IT

T. +39 042 243 5310
info@xxxxxxxxxxxxxxxxxxxx

www.amarulasolutions.com