summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/power_features/cg/cg.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/power_features/cg/cg.c')
-rw-r--r--drivers/gpu/nvgpu/common/power_features/cg/cg.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/power_features/cg/cg.c b/drivers/gpu/nvgpu/common/power_features/cg/cg.c
index a538c44b..39796bc8 100644
--- a/drivers/gpu/nvgpu/common/power_features/cg/cg.c
+++ b/drivers/gpu/nvgpu/common/power_features/cg/cg.c
@@ -428,6 +428,9 @@ void nvgpu_cg_init_gr_load_gating_prod(struct gk20a *g)
428 if (g->ops.clock_gating.slcg_xbar_load_gating_prod != NULL) { 428 if (g->ops.clock_gating.slcg_xbar_load_gating_prod != NULL) {
429 g->ops.clock_gating.slcg_xbar_load_gating_prod(g, true); 429 g->ops.clock_gating.slcg_xbar_load_gating_prod(g, true);
430 } 430 }
431 if (g->ops.clock_gating.slcg_hshub_load_gating_prod != NULL) {
432 g->ops.clock_gating.slcg_hshub_load_gating_prod(g, true);
433 }
431 434
432check_can_blcg: 435check_can_blcg:
433 if (!nvgpu_is_enabled(g, NVGPU_GPU_CAN_BLCG)) { 436 if (!nvgpu_is_enabled(g, NVGPU_GPU_CAN_BLCG)) {
@@ -449,6 +452,9 @@ check_can_blcg:
449 if (g->ops.clock_gating.blcg_xbar_load_gating_prod != NULL) { 452 if (g->ops.clock_gating.blcg_xbar_load_gating_prod != NULL) {
450 g->ops.clock_gating.blcg_xbar_load_gating_prod(g, true); 453 g->ops.clock_gating.blcg_xbar_load_gating_prod(g, true);
451 } 454 }
455 if (g->ops.clock_gating.blcg_hshub_load_gating_prod != NULL) {
456 g->ops.clock_gating.blcg_hshub_load_gating_prod(g, true);
457 }
452pg_gr_load: 458pg_gr_load:
453 if (g->ops.clock_gating.pg_gr_load_gating_prod != NULL) { 459 if (g->ops.clock_gating.pg_gr_load_gating_prod != NULL) {
454 g->ops.clock_gating.pg_gr_load_gating_prod(g, true); 460 g->ops.clock_gating.pg_gr_load_gating_prod(g, true);
@@ -538,6 +544,9 @@ void nvgpu_cg_blcg_set_blcg_enabled(struct gk20a *g, bool enable)
538 if (g->ops.clock_gating.blcg_xbar_load_gating_prod != NULL) { 544 if (g->ops.clock_gating.blcg_xbar_load_gating_prod != NULL) {
539 g->ops.clock_gating.blcg_xbar_load_gating_prod(g, enable); 545 g->ops.clock_gating.blcg_xbar_load_gating_prod(g, enable);
540 } 546 }
547 if (g->ops.clock_gating.blcg_hshub_load_gating_prod != NULL) {
548 g->ops.clock_gating.blcg_hshub_load_gating_prod(g, enable);
549 }
541 550
542done: 551done:
543 nvgpu_mutex_release(&g->cg_pg_lock); 552 nvgpu_mutex_release(&g->cg_pg_lock);
@@ -610,6 +619,9 @@ void nvgpu_cg_slcg_set_slcg_enabled(struct gk20a *g, bool enable)
610 if (g->ops.clock_gating.slcg_xbar_load_gating_prod != NULL) { 619 if (g->ops.clock_gating.slcg_xbar_load_gating_prod != NULL) {
611 g->ops.clock_gating.slcg_xbar_load_gating_prod(g, enable); 620 g->ops.clock_gating.slcg_xbar_load_gating_prod(g, enable);
612 } 621 }
622 if (g->ops.clock_gating.slcg_hshub_load_gating_prod != NULL) {
623 g->ops.clock_gating.slcg_hshub_load_gating_prod(g, enable);
624 }
613 625
614done: 626done:
615 nvgpu_mutex_release(&g->cg_pg_lock); 627 nvgpu_mutex_release(&g->cg_pg_lock);