diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gr_gv11b.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index e0c60efb..7f6d1906 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c | |||
@@ -3979,6 +3979,7 @@ void gv11b_gr_egpc_etpc_priv_addr_table(struct gk20a *g, u32 addr, | |||
3979 | u32 gpc, u32 broadcast_flags, u32 *priv_addr_table, u32 *t) | 3979 | u32 gpc, u32 broadcast_flags, u32 *priv_addr_table, u32 *t) |
3980 | { | 3980 | { |
3981 | u32 gpc_num, tpc_num; | 3981 | u32 gpc_num, tpc_num; |
3982 | u32 priv_addr, gpc_addr; | ||
3982 | 3983 | ||
3983 | nvgpu_log_info(g, "addr=0x%x", addr); | 3984 | nvgpu_log_info(g, "addr=0x%x", addr); |
3984 | 3985 | ||
@@ -4017,10 +4018,16 @@ void gv11b_gr_egpc_etpc_priv_addr_table(struct gk20a *g, u32 addr, | |||
4017 | g, gpc_num, tpc_num, addr, | 4018 | g, gpc_num, tpc_num, addr, |
4018 | priv_addr_table, t); | 4019 | priv_addr_table, t); |
4019 | } else { | 4020 | } else { |
4020 | priv_addr_table[*t] = | 4021 | priv_addr = pri_egpc_addr(g, |
4021 | pri_egpc_addr(g, | 4022 | pri_gpccs_addr_mask(addr), |
4022 | pri_gpccs_addr_mask(addr), | 4023 | gpc_num); |
4023 | gpc_num); | 4024 | |
4025 | gpc_addr = pri_gpccs_addr_mask(priv_addr); | ||
4026 | tpc_num = g->ops.gr.get_tpc_num(g, gpc_addr); | ||
4027 | if (tpc_num >= g->gr.gpc_tpc_count[gpc_num]) | ||
4028 | continue; | ||
4029 | |||
4030 | priv_addr_table[*t] = priv_addr; | ||
4024 | nvgpu_log_info(g, "priv_addr_table[%d]:%#08x", | 4031 | nvgpu_log_info(g, "priv_addr_table[%d]:%#08x", |
4025 | *t, priv_addr_table[*t]); | 4032 | *t, priv_addr_table[*t]); |
4026 | (*t)++; | 4033 | (*t)++; |