summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/gr_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
index 67603739..f8461f9d 100644
--- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
@@ -4513,10 +4513,16 @@ int gr_gv11b_decode_priv_addr(struct gk20a *g, u32 addr,
4513 return 0; 4513 return 0;
4514} 4514}
4515 4515
4516static u32 gr_gv11b_pri_pmmgpc_addr(u32 gpc_num, u32 domain_idx, u32 offset) 4516u32 gr_gv11b_get_pmm_per_chiplet_offset(void)
4517{
4518 return (perf_pmmsys_extent_v() - perf_pmmsys_base_v() + 1);
4519}
4520
4521static u32 gr_gv11b_pri_pmmgpc_addr(struct gk20a *g, u32 gpc_num,
4522 u32 domain_idx, u32 offset)
4517{ 4523{
4518 return perf_pmmgpc_base_v() + 4524 return perf_pmmgpc_base_v() +
4519 (gpc_num * (perf_pmmsys_extent_v() - perf_pmmsys_base_v() + 1)) + 4525 (gpc_num * g->ops.gr.get_pmm_per_chiplet_offset()) +
4520 (domain_idx * perf_pmmgpc_perdomain_offset_v()) + 4526 (domain_idx * perf_pmmgpc_perdomain_offset_v()) +
4521 offset; 4527 offset;
4522} 4528}
@@ -4531,8 +4537,7 @@ static void gr_gv11b_split_pmm_fbp_broadcast_address(struct gk20a *g,
4531 4537
4532 for (fbp_num = 0; fbp_num < g->gr.num_fbps; fbp_num++) { 4538 for (fbp_num = 0; fbp_num < g->gr.num_fbps; fbp_num++) {
4533 base = perf_pmmfbp_base_v() + 4539 base = perf_pmmfbp_base_v() +
4534 (fbp_num * 4540 (fbp_num * g->ops.gr.get_pmm_per_chiplet_offset());
4535 (perf_pmmsys_extent_v() - perf_pmmsys_base_v() + 1));
4536 4541
4537 for (domain_idx = domain_start; 4542 for (domain_idx = domain_start;
4538 domain_idx < (domain_start + num_domains); 4543 domain_idx < (domain_start + num_domains);
@@ -4653,7 +4658,7 @@ int gr_gv11b_create_priv_addr_table(struct gk20a *g,
4653 domain_idx < (pmm_domain_start + num_domains); 4658 domain_idx < (pmm_domain_start + num_domains);
4654 domain_idx++) { 4659 domain_idx++) {
4655 priv_addr_table[t++] = 4660 priv_addr_table[t++] =
4656 gr_gv11b_pri_pmmgpc_addr(gpc_num, 4661 gr_gv11b_pri_pmmgpc_addr(g, gpc_num,
4657 domain_idx, offset); 4662 domain_idx, offset);
4658 } 4663 }
4659 } 4664 }