diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index a5e130cb4..f107d83d9 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -215,6 +215,7 @@ struct gpu_ops { void (*blcg_ltc_load_gating_prod)(struct gk20a *g, bool prod); void (*blcg_pwr_csb_load_gating_prod)(struct gk20a *g, bool prod); void (*blcg_pmu_load_gating_prod)(struct gk20a *g, bool prod); + void (*blcg_xbar_load_gating_prod)(struct gk20a *g, bool prod); void (*pg_gr_load_gating_prod)(struct gk20a *g, bool prod); } clock_gating; struct { diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index 96a945f8e..996fe221b 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c @@ -115,6 +115,9 @@ static ssize_t blcg_enable_store(struct device *device, g->ops.clock_gating.blcg_ltc_load_gating_prod(g, g->blcg_enabled); if (g->ops.clock_gating.blcg_pmu_load_gating_prod) g->ops.clock_gating.blcg_pmu_load_gating_prod(g, g->blcg_enabled); + if (g->ops.clock_gating.blcg_xbar_load_gating_prod) + g->ops.clock_gating.blcg_xbar_load_gating_prod(g, + g->blcg_enabled); gk20a_idle(g->dev); dev_info(device, "BLCG is %s.\n", g->blcg_enabled ? "enabled" : diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 19d9cffce..25679c4c1 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -4227,11 +4227,18 @@ static void gr_gk20a_load_gating_prod(struct gk20a *g) g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g, g->slcg_enabled); g->ops.clock_gating.slcg_perf_load_gating_prod(g, g->slcg_enabled); + if (g->ops.clock_gating.slcg_xbar_load_gating_prod) + g->ops.clock_gating.slcg_xbar_load_gating_prod(g, + g->slcg_enabled); + /* blcg prod values */ g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, g->blcg_enabled); + if (g->ops.clock_gating.blcg_xbar_load_gating_prod) + g->ops.clock_gating.blcg_xbar_load_gating_prod(g, + g->blcg_enabled); g->ops.clock_gating.pg_gr_load_gating_prod(g, true); }