mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-12-19 16:31:27 +01:00
power: domain: ti: fix ti_pd_get() to return after verifying transition
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
by using "ti_pd_wait()" before returning from "ti_pd_get()".
Fixes: 144464bd2c67 ("power: domain: Introduce driver for raw TI K3 PDs")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Tested-by: Hrushikesh Salunke <h-salunke@ti.com>
This commit is contained in:
parent
642a9e716e
commit
e3b7dd93d3
@ -227,7 +227,7 @@ static int ti_pd_get(struct ti_pd *pd)
|
||||
|
||||
pd_write(pdctl, pd, PSC_PDCTL);
|
||||
|
||||
return 0;
|
||||
return ti_pd_wait(pd);
|
||||
}
|
||||
|
||||
static int ti_pd_put(struct ti_pd *pd)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user