summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
diff options
context:
space:
mode:
authorSeema Khowala <seemaj@nvidia.com>2017-09-22 12:19:05 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-01 18:26:11 -0400
commit5d260a24a526c35e42ed9f0bd90ba30b8dd19a60 (patch)
treecf06a405e0ccc94d68bda97cb5887fd7b4e9764a /drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
parent15e259bc5255e891f776a84b5f28a97ea0567178 (diff)
gpu: nvgpu: halt gr pipe & gr_reset do not work on fmodel
Do not halt gr pipe as it will hang simulator. Also during ch/tsg teardown, gr_reset without halting gr pipe crashes simulator. Bug 1958308 Change-Id: I4036b4a4999932f05a0f292d4fc51de21d3a030a Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1566575 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index 17ae626b..5d04aa0c 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -1237,16 +1237,21 @@ void gk20a_fifo_reset_engine(struct gk20a *g, u32 engine_id)
1237 if (g->ops.fecs_trace.reset) 1237 if (g->ops.fecs_trace.reset)
1238 g->ops.fecs_trace.reset(g); 1238 g->ops.fecs_trace.reset(g);
1239#endif 1239#endif
1240 1240 if (!nvgpu_platform_is_simulation(g)) {
1241 /* HALT_PIPELINE method, halt GR engine. */ 1241 /*HALT_PIPELINE method, halt GR engine*/
1242 if (gr_gk20a_halt_pipe(g)) 1242 if (gr_gk20a_halt_pipe(g))
1243 nvgpu_err(g, "failed to HALT gr pipe"); 1243 nvgpu_err(g, "failed to HALT gr pipe");
1244 1244 /*
1245 /* 1245 * resetting engine using mc_enable_r() is not
1246 * Resetting engine using mc_enable_r() is not enough; we must 1246 * enough, we do full init sequence
1247 * do full init sequence. 1247 */
1248 */ 1248 nvgpu_log(g, gpu_dbg_info, "resetting gr engine");
1249 gk20a_gr_reset(g); 1249 gk20a_gr_reset(g);
1250 } else {
1251 nvgpu_log(g, gpu_dbg_info,
1252 "HALT gr pipe not supported and "
1253 "gr cannot be reset without halting gr pipe");
1254 }
1250 if (g->support_pmu && g->can_elpg) 1255 if (g->support_pmu && g->can_elpg)
1251 nvgpu_pmu_enable_elpg(g); 1256 nvgpu_pmu_enable_elpg(g);
1252 } 1257 }