diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2018-04-09 10:26:59 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-04-10 14:23:30 -0400 |
commit | d91ea322e1a6ae51ae8e017d09bfaf3e139ecf2d (patch) | |
tree | c8f95d7f89ad3a7cec265ee0b69b619119af161e /drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |
parent | aa1f8e01ced661b640ee612f6a7bd201f0bbd6a4 (diff) |
gpu: nvgpu: fix gpc/tpc index for SMPC broadcast conversion
In gv11b_gr_egpc_etpc_priv_addr_table(), we call
gv11b_gr_update_priv_addr_table_smpc() to convert SMPC broadcast address into
list of unicast addresses
But before calling gv11b_gr_update_priv_addr_table_smpc() we sometimes
incorrectly set gpc_num/tpc_num to zero and that leads to generating incorrect
list of unicast addresses
Remove this incorrect initialization of gpc_num/tpc_num
Also update gv11b_gr_egpc_etpc_priv_addr_table() to receive tpc_num along with
gpc_num
Bug 2099717
Jira NVGPU-580
Change-Id: Idd4e5f78dbe6ca1800efae93c66355d06417d1f2
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1691373
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index e4344b9f..96bc72af 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -6421,7 +6421,7 @@ int gr_gk20a_create_priv_addr_table(struct gk20a *g, | |||
6421 | (addr_type == CTXSW_ADDR_TYPE_ETPC)) && | 6421 | (addr_type == CTXSW_ADDR_TYPE_ETPC)) && |
6422 | g->ops.gr.egpc_etpc_priv_addr_table) { | 6422 | g->ops.gr.egpc_etpc_priv_addr_table) { |
6423 | gk20a_dbg(gpu_dbg_gpu_dbg, "addr_type : EGPC/ETPC"); | 6423 | gk20a_dbg(gpu_dbg_gpu_dbg, "addr_type : EGPC/ETPC"); |
6424 | g->ops.gr.egpc_etpc_priv_addr_table(g, addr, gpc_num, | 6424 | g->ops.gr.egpc_etpc_priv_addr_table(g, addr, gpc_num, tpc_num, |
6425 | broadcast_flags, priv_addr_table, &t); | 6425 | broadcast_flags, priv_addr_table, &t); |
6426 | } else if (broadcast_flags & PRI_BROADCAST_FLAGS_LTSS) { | 6426 | } else if (broadcast_flags & PRI_BROADCAST_FLAGS_LTSS) { |
6427 | g->ops.gr.split_lts_broadcast_addr(g, addr, | 6427 | g->ops.gr.split_lts_broadcast_addr(g, addr, |