drivers/pmdomain/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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.
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
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
On Thu, 24 Oct 2024 at 11:49, Dario Binacchi <dario.binacchi@amarulasolutions.com> 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@amarulasolutions.com> > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com> > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > 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 >
On Mon, Oct 28, 2024 at 2:34 PM Ulf Hansson <ulf.hansson@linaro.org> wrote: > > On Thu, 24 Oct 2024 at 11:49, Dario Binacchi > <dario.binacchi@amarulasolutions.com> 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@amarulasolutions.com> > > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com> > > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> > > > > 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@amarulasolutions.com __________________________________ Amarula Solutions SRL Via Le Canevare 30, 31100 Treviso, Veneto, IT T. +39 042 243 5310 info@amarulasolutions.com www.amarulasolutions.com
On Mon, 28 Oct 2024 at 16:07, Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote: > > On Mon, Oct 28, 2024 at 2:34 PM Ulf Hansson <ulf.hansson@linaro.org> wrote: > > > > On Thu, 24 Oct 2024 at 11:49, Dario Binacchi > > <dario.binacchi@amarulasolutions.com> 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 In that case you don't have a child-domain (subdomain), which means the sd_count should be 0. [...] Kind regards Uffe
© 2016 - 2024 Red Hat, Inc.