[PATCH] power: domain: ti: fix ti_pd_get() to return after verifying transition
Siddharth Vadapalli
s-vadapalli at ti.com
Fri Nov 14 12:46:10 CET 2025
The helper function "ti_pd_get()" is responsible for powering on a
domain if it is powered off. In the current implementation, if a power
domain is determined to be powered off - no prior users and the PDCTL
register indicates that the user desired state is OFF, then powering on
the domain constitutes setting 'PDCTL_STATE_ON' field of the PDCTL
register.
While the current implementation indeed requests the power domain to be
transition to the ON state, the helper function "ti_pd_get()" doesn't
verify that the power domain has 'transitioned' to the ON state before
returning to its caller. As a result, it is possible that the device(s)
belonging to the power domain may be accessed before it is truly powered
on, leading to a bus abort.
Fix this by waiting for the power domain to transition to the ON state
before returning from "ti_pd_get()".
Fixes: 144464bd2c67 ("power: domain: Introduce driver for raw TI K3 PDs")
Signed-off-by: Siddharth Vadapalli <s-vadapalli at ti.com>
---
Hello,
This patch is based on commit
6c2f2d9aa63 Merge branch 'master' of git://source.denx.de/u-boot-usb
of the master branch of Mainline U-Boot.
Regards,
Siddharth.
drivers/power/domain/ti-power-domain.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/power/domain/ti-power-domain.c b/drivers/power/domain/ti-power-domain.c
index c3519307340..8f43d0fed30 100644
--- a/drivers/power/domain/ti-power-domain.c
+++ b/drivers/power/domain/ti-power-domain.c
@@ -227,6 +227,10 @@ static int ti_pd_get(struct ti_pd *pd)
pd_write(pdctl, pd, PSC_PDCTL);
+ ret = ti_pd_wait(psc_pd);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.51.1
More information about the U-Boot
mailing list