summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c
index ddf2039b..7ec9f5d3 100644
--- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c
@@ -232,7 +232,12 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, bool disable_powergate)
232 return err; 232 return err;
233 233
234 /*do elpg disable before clock gating */ 234 /*do elpg disable before clock gating */
235 nvgpu_pmu_pg_global_enable(g, false); 235
236 /* we should not disabled it again, if it's already so */
237 if (g->elpg_enabled) {
238 g->elpg_enabled = false;
239 nvgpu_pmu_pg_global_enable(g, false);
240 }
236 241
237 if (g->ops.clock_gating.slcg_gr_load_gating_prod) 242 if (g->ops.clock_gating.slcg_gr_load_gating_prod)
238 g->ops.clock_gating.slcg_gr_load_gating_prod(g, 243 g->ops.clock_gating.slcg_gr_load_gating_prod(g,
@@ -276,7 +281,12 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, bool disable_powergate)
276 slcg_gr_load_gating_prod(g, 281 slcg_gr_load_gating_prod(g,
277 g->slcg_enabled); 282 g->slcg_enabled);
278 } 283 }
279 nvgpu_pmu_pg_global_enable(g, true); 284
285 /* we should not enable it again, if it's already so */
286 if (!g->elpg_enabled) {
287 g->elpg_enabled = true;
288 nvgpu_pmu_pg_global_enable(g, true);
289 }
280 290
281 nvgpu_log(g, gpu_dbg_gpu_dbg | gpu_dbg_fn, 291 nvgpu_log(g, gpu_dbg_gpu_dbg | gpu_dbg_fn,
282 "module idle"); 292 "module idle");