diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2016-11-03 03:28:28 -0400 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:56:52 -0500 |
commit | 23ff2eb5c9d498eddd36eb710d4058b23619a0c8 (patch) | |
tree | 802287dd2bfd226766870ae6fc6f0ba39c2c0b75 /drivers/gpu | |
parent | 476f44a0a4bea5ae8a9a22d7d6f05d48ee3096fd (diff) |
gpu: nvgpu: keep sec2 idle
sec2 falcon reset after secure boot complete
to keep sec2 idle
issue: ELPG does not engage if PG engine is
dependent on sec2 idleness
JIRA DNVGPU-71
Change-Id: If264c610dae857ae9b9f9bc77c59f24f239ce1ce
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/1247290
(cherry-picked from commit de2337de1211e4167993982e50237fe1115053a1)
Reviewed-on: http://git-master/r/1267260
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/acr_gp106.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gp106/acr_gp106.c b/drivers/gpu/nvgpu/gp106/acr_gp106.c index b883ad83..5ed6300c 100644 --- a/drivers/gpu/nvgpu/gp106/acr_gp106.c +++ b/drivers/gpu/nvgpu/gp106/acr_gp106.c | |||
@@ -22,7 +22,8 @@ | |||
22 | #include "gk20a/gk20a.h" | 22 | #include "gk20a/gk20a.h" |
23 | #include "gk20a/pmu_gk20a.h" | 23 | #include "gk20a/pmu_gk20a.h" |
24 | #include "gk20a/semaphore_gk20a.h" | 24 | #include "gk20a/semaphore_gk20a.h" |
25 | #include "gm20b/hw_pwr_gm20b.h" | 25 | #include "gp106/hw_psec_gp106.h" |
26 | #include "gp106/hw_pwr_gp106.h" | ||
26 | #include "gm206/acr_gm206.h" | 27 | #include "gm206/acr_gm206.h" |
27 | #include "gm20b/acr_gm20b.h" | 28 | #include "gm20b/acr_gm20b.h" |
28 | #include "gm206/pmu_gm206.h" | 29 | #include "gm206/pmu_gm206.h" |
@@ -1150,6 +1151,14 @@ static int gp106_bootstrap_hs_flcn(struct gk20a *g) | |||
1150 | err = status; | 1151 | err = status; |
1151 | goto err_free_ucode_map; | 1152 | goto err_free_ucode_map; |
1152 | } | 1153 | } |
1154 | |||
1155 | /* sec2 reset - to keep it idle */ | ||
1156 | gk20a_writel(g, psec_falcon_engine_r(), | ||
1157 | pwr_falcon_engine_reset_true_f()); | ||
1158 | udelay(10); | ||
1159 | gk20a_writel(g, psec_falcon_engine_r(), | ||
1160 | pwr_falcon_engine_reset_false_f()); | ||
1161 | |||
1153 | return 0; | 1162 | return 0; |
1154 | err_free_ucode_map: | 1163 | err_free_ucode_map: |
1155 | gk20a_gmmu_unmap_free(vm, &acr->acr_ucode); | 1164 | gk20a_gmmu_unmap_free(vm, &acr->acr_ucode); |