summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/gr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index 6a79b1ac..050c2bee 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -592,7 +592,14 @@ int gr_gm20b_ctx_state_floorsweep(struct gk20a *g)
592 for (pes_index = 0; pes_index < gr->pe_count_per_gpc; 592 for (pes_index = 0; pes_index < gr->pe_count_per_gpc;
593 pes_index++) 593 pes_index++)
594 pes_tpc_mask |= gr->pes_tpc_mask[pes_index][gpc_index]; 594 pes_tpc_mask |= gr->pes_tpc_mask[pes_index][gpc_index];
595 gk20a_writel(g, gr_fe_tpc_fs_r(), pes_tpc_mask); 595 if (g->tpc_fs_mask_user && g->ops.gr.get_gpc_tpc_mask(g, 0) ==
596 (0x1 << gr->max_tpc_count) - 1) {
597 u32 val = g->tpc_fs_mask_user;
598 val &= (0x1 << gr->max_tpc_count) - 1;
599 gk20a_writel(g, gr_fe_tpc_fs_r(), val);
600 } else {
601 gk20a_writel(g, gr_fe_tpc_fs_r(), pes_tpc_mask);
602 }
596 603
597 for (tpc_index = 0; tpc_index < gr->tpc_count; tpc_index++) { 604 for (tpc_index = 0; tpc_index < gr->tpc_count; tpc_index++) {
598 if (tpc_index == 0) { 605 if (tpc_index == 0) {