tegra124: fix the dangerous VPR write order

Currently we put the VPR write code just right before the AVP is going
to freeze. We have no idea does the write operation successful or not
before halting the AVP. And the power_on_main_cpu should be the last step
of that. So we make a fix to change the order.

BUG=none
BRANCH=none
TEST=LP0 suspend stress test and check the VPR is correct;
     LP0 suspend stress test with video playback

Original-Change-Id: Ia62dde2a020910de39796d1cf62c1bf185cdb372
Original-Signed-off-by: Joseph Lo <josephl@nvidia.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/192029
Original-Reviewed-by: Tom Warren <twarren@nvidia.com>
Original-Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
Original-Commit-Queue: Tom Warren <twarren@nvidia.com>
Original-Tested-by: Tom Warren <twarren@nvidia.com>
(cherry picked from commit 51473811fa477cca9ad9cbafdaad4fd4a2309234)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>

Change-Id: Ia28329e38fcf12994594b73c805d061804aa01c4
Reviewed-on: http://review.coreboot.org/7459
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins)
This commit is contained in:
Joseph Lo 2014-03-28 19:13:51 +08:00 committed by Marc Jones
parent bab7896e5e
commit 8253bd912a
1 changed files with 2 additions and 2 deletions

View File

@ -583,13 +583,13 @@ void lp0_resume(void)
config_tsc(); config_tsc();
power_on_main_cpu();
// Disable VPR. // Disable VPR.
write32(0, mc_video_protect_size_mb_ptr); write32(0, mc_video_protect_size_mb_ptr);
write32(VIDEO_PROTECT_WRITE_ACCESS_DISABLE, write32(VIDEO_PROTECT_WRITE_ACCESS_DISABLE,
mc_video_protect_reg_ctrl_ptr); mc_video_protect_reg_ctrl_ptr);
power_on_main_cpu();
// Halt the AVP. // Halt the AVP.
while (1) while (1)
write32(FLOW_MODE_STOP | EVENT_JTAG, write32(FLOW_MODE_STOP | EVENT_JTAG,