summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2016-02-26 14:33:08 -0500
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-04-14 13:10:24 -0400
commite7664f9345772de177fbe20cf415d2fbc6f55d83 (patch)
tree728d3686e5243ef2e516c3a85e1995d90ebee839 /drivers/gpu/nvgpu/gm20b
parent8bd22faafdf6fa37f1e0fa523f639b2bca2e868c (diff)
gpu: nvgpu: make tpc_fs_mask work on production board
On production fused boards, it uses gr_fe_tpc_fs_r() to mask TPCs, rather than fues. Bug 1734150 Change-Id: I7b4eb428f1ad0cf841a57214e0c8c1e8f17b2c5a Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: http://git-master/r/1111630 (cherry picked from commit 869ea54967812e03d9f1e69775ca56fd6459216c) Reviewed-on: http://git-master/r/1122121 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-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) {