diff options
author | Seema Khowala <seemaj@nvidia.com> | 2017-09-22 12:19:05 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-01 18:26:11 -0400 |
commit | 5d260a24a526c35e42ed9f0bd90ba30b8dd19a60 (patch) | |
tree | cf06a405e0ccc94d68bda97cb5887fd7b4e9764a /drivers/gpu/nvgpu | |
parent | 15e259bc5255e891f776a84b5f28a97ea0567178 (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')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 25 |
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 | } |