On Tue, 14 Nov 2023 at 11:08, Stephan Gerhold <stephan.gerhold@xxxxxxxxxxxxxxx> wrote: > > Set GENPD_FLAG_ACTIVE_WAKEUP for all RPM power domains so that power > domains necessary for wakeup/"awake path" devices are kept on across > suspend. > > This is needed for example for the *_AO ("active-only") variants of the > RPMPDs used by the CPU. Those should maintain their votes also across > system suspend to ensure the CPU can keep running for the whole suspend > process (ending in a firmware call). When the RPM firmware detects that > the CPUs are in a deep idle state it will drop those votes automatically. > > Signed-off-by: Stephan Gerhold <stephan.gerhold@xxxxxxxxxxxxxxx> Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Kind regards Uffe > --- > drivers/pmdomain/qcom/rpmpd.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c > index 07590a3ef19c..7796d65f96e8 100644 > --- a/drivers/pmdomain/qcom/rpmpd.c > +++ b/drivers/pmdomain/qcom/rpmpd.c > @@ -1044,6 +1044,7 @@ static int rpmpd_probe(struct platform_device *pdev) > rpmpds[i]->pd.power_off = rpmpd_power_off; > rpmpds[i]->pd.power_on = rpmpd_power_on; > rpmpds[i]->pd.set_performance_state = rpmpd_set_performance; > + rpmpds[i]->pd.flags = GENPD_FLAG_ACTIVE_WAKEUP; > pm_genpd_init(&rpmpds[i]->pd, NULL, true); > > data->domains[i] = &rpmpds[i]->pd; > > -- > 2.39.2 >