msm: idle-v7: Fix for the issue of lost barrier during reset.
On Krait processor, there exists a CPU cycle when a CPU exits the reset
state where it could lose a barrier operation and thereby causing the
other CPU to wait indefinitely. The issue exists on the version 1 of the
Krait processors only.
The workaround for the problem is to have a CPU remove itself from the
inner and outer shareability realms just before executing the WFI to
collapse and then add itself back to the inner and outer shareablity
realms during warmboot. However, the L2CPMR register access, to remove a
processor from the shareability realms, are available only in a secure
state. Hence, the kernel performs a SMC call to call into TZ to do the
above before TZ executes a WFI to initiate a power collapse.
Signed-off-by: Maheshkumar Sivasubramanian <msivasub@codeaurora.org>
1 file changed