Skip to contentSkip to conversation

pmdomain: tegra: Add GENPD_FLAG_NO_STAY_ON flag

PATCH In review Jon Hunter 2 participants 2 messages Nov 21, 2025 – Nov 24, 2025

Subsystems (2)
lore
Share & tools
lore

Jon Hunter

author maintainer
#0 lore raw

PATCH 1/1 pmdomain: tegra: Add GENPD_FLAG_NO_STAY_ON flag

Commit 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds on until late_initcall_sync") kept power-domains on longer during boot which is causing some GPU related tests to fail on Tegra234. While this is being investigated, add the flag GENPD_FLAG_NO_STAY_ON for Tegra devices to restore the previous behaviour to fix this.

Fixes 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds on until late_initcall_sync")
---
 drivers/pmdomain/tegra/powergate-bpmp.c | 1 +
 1 file changed, 1 insertion(+)
drivers/pmdomain/tegra/powergate-bpmp.c +1 -0
index b0138ca9f851..9f4366250bfd 100644
@@ -184,6 +184,7 @@ tegra_powergate_add(struct tegra_bpmp *bpmp,
 	powergate->genpd.name = kstrdup(info->name, GFP_KERNEL);
 	powergate->genpd.power_on = tegra_powergate_power_on;
 	powergate->genpd.power_off = tegra_powergate_power_off;
+	powergate->genpd.flags = GENPD_FLAG_NO_STAY_ON;
 
 	err = pm_genpd_init(&powergate->genpd, NULL, off);
 	if (err < 0) {
Signature · 1 line
2.43.0
#1 lore raw
Quoted 9 lines · Jon Hunter

Commit 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds on until late_initcall_sync") kept power-domains on longer during boot which is causing some GPU related tests to fail on Tegra234. While this is being investigated, add the flag GENPD_FLAG_NO_STAY_ON for Tegra devices to restore the previous behaviour to fix this.

Fixes 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds on until late_initcall_sync")

Applied for fixes and by adding a stable tag, thanks!

Kind regards
Uffe

Quoted 19 lines
---
 drivers/pmdomain/tegra/powergate-bpmp.c | 1 +
 1 file changed, 1 insertion(+)
drivers/pmdomain/tegra/powergate-bpmp.c +1 -1
index b0138ca9f851..9f4366250bfd 100644
@@ -184,6 +184,7 @@ tegra_powergate_add(struct tegra_bpmp *bpmp,
        powergate->genpd.name = kstrdup(info->name, GFP_KERNEL);
        powergate->genpd.power_on = tegra_powergate_power_on;
        powergate->genpd.power_off = tegra_powergate_power_off;
+       powergate->genpd.flags = GENPD_FLAG_NO_STAY_ON;
 
        err = pm_genpd_init(&powergate->genpd, NULL, off);
        if (err < 0) {
--

2.43.0