On Tue, 8 Oct 2024 at 08:16, Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> wrote: > > If low level driver claims to keep its own power domain always on, > let pd driver respect the flag of GENPD_FLAG_RPM_ALWAYS_ON. > > Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> > --- > > Changes in v3: None > Changes in v2: None > > drivers/pmdomain/rockchip/pm-domains.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c > index cb0f938..b2bb458 100644 > --- a/drivers/pmdomain/rockchip/pm-domains.c > +++ b/drivers/pmdomain/rockchip/pm-domains.c > @@ -621,6 +621,9 @@ static int rockchip_pd_power_off(struct generic_pm_domain *domain) > { > struct rockchip_pm_domain *pd = to_rockchip_pd(domain); > > + if (pd->genpd.flags & GENPD_FLAG_RPM_ALWAYS_ON) > + return 0; During system suspend, genpd may try to power off the PM domains that have the GENPD_FLAG_RPM_ALWAYS_ON being set. It seems like you need to prevent the PM domains from being power off during system suspend too, right? In that case, why not use GENPD_FLAG_ALWAYS_ON instead? Or maybe the use case is different, let's continue to discuss patch5 first. > + > return rockchip_pd_power(pd, false); > } > > -- > 2.7.4 > Kind regards Uffe