diff options
author | Deepak Goyal <dgoyal@nvidia.com> | 2018-09-14 02:15:19 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-09-27 01:24:52 -0400 |
commit | 34732a14b22f09d8f9d52f756612178f0313f120 (patch) | |
tree | 94f634efcad3179ddbca82dedaf82dfe8f099030 /drivers/gpu/nvgpu/include | |
parent | 991179f29cea8ab8272465789496c2f15bad6240 (diff) |
nvgpu: gpu: Support multiple tpc-pg masks.
- TPC powergating should be done before
calling gk20a_enable_gr_hw.
gk20a_enable_gr_hw() issues a GR engine reset.
Without this fix, enabling 1 TPC from each PES
causes ctxsw timeout error while running GFX Benchmark.
- Adds valid tpc-pg mask for 1/2/3/4 active TPC configs.
TPC Config - TPC-MASK
4 TPC configuration - 0x0
3 TPC configuration - 0x1/0x2/0x4/0x8
2 TPC configuration - 0x5/0x9/0x6/0xa
- We should not write to gr_fe_tpc_pesmask_r()
as part of TPC-PG sequence. This register is for
debug purpose only.
Bug 200442360
Change-Id: I6fbe1ad8fbc836ace8cbaf00ec3d21a12c73e0bd
Signed-off-by: Deepak Goyal <dgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1809772
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/gk20a.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 2ebe0011..8d7ccfa8 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h | |||
@@ -138,6 +138,8 @@ enum gk20a_cbc_op { | |||
138 | 138 | ||
139 | #define nvgpu_get_litter_value(g, v) (g)->ops.get_litter_value((g), v) | 139 | #define nvgpu_get_litter_value(g, v) (g)->ops.get_litter_value((g), v) |
140 | 140 | ||
141 | #define MAX_TPC_PG_CONFIGS 3 | ||
142 | |||
141 | enum nvgpu_unit; | 143 | enum nvgpu_unit; |
142 | 144 | ||
143 | enum nvgpu_flush_op; | 145 | enum nvgpu_flush_op; |
@@ -1592,7 +1594,7 @@ struct gk20a { | |||
1592 | u32 tpc_pg_mask; | 1594 | u32 tpc_pg_mask; |
1593 | bool can_tpc_powergate; | 1595 | bool can_tpc_powergate; |
1594 | 1596 | ||
1595 | u32 valid_tpc_mask; | 1597 | u32 valid_tpc_mask[MAX_TPC_PG_CONFIGS]; |
1596 | 1598 | ||
1597 | struct nvgpu_bios bios; | 1599 | struct nvgpu_bios bios; |
1598 | bool bios_is_init; | 1600 | bool bios_is_init; |