diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 14 |
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"); |