summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp106/acr_gp106.c
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2016-11-03 03:28:28 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:56:52 -0500
commit23ff2eb5c9d498eddd36eb710d4058b23619a0c8 (patch)
tree802287dd2bfd226766870ae6fc6f0ba39c2c0b75 /drivers/gpu/nvgpu/gp106/acr_gp106.c
parent476f44a0a4bea5ae8a9a22d7d6f05d48ee3096fd (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/nvgpu/gp106/acr_gp106.c')
-rw-r--r--drivers/gpu/nvgpu/gp106/acr_gp106.c11
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;
1154err_free_ucode_map: 1163err_free_ucode_map:
1155 gk20a_gmmu_unmap_free(vm, &acr->acr_ucode); 1164 gk20a_gmmu_unmap_free(vm, &acr->acr_ucode);