diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/power_features')
-rw-r--r-- | drivers/gpu/nvgpu/common/power_features/cg/cg.c | 12 |
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 | ||
432 | check_can_blcg: | 435 | check_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 | } | ||
452 | pg_gr_load: | 458 | pg_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 | ||
542 | done: | 551 | done: |
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 | ||
614 | done: | 626 | done: |
615 | nvgpu_mutex_release(&g->cg_pg_lock); | 627 | nvgpu_mutex_release(&g->cg_pg_lock); |