summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2018-04-09 10:26:59 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-04-10 14:23:30 -0400
commitd91ea322e1a6ae51ae8e017d09bfaf3e139ecf2d (patch)
treec8f95d7f89ad3a7cec265ee0b69b619119af161e /drivers/gpu/nvgpu/gk20a/gk20a.h
parentaa1f8e01ced661b640ee612f6a7bd201f0bbd6a4 (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/gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index c2a8d6ce..e3b37747 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -244,7 +244,8 @@ struct gpu_ops {
244 u32 addr, int *addr_type, 244 u32 addr, int *addr_type,
245 u32 *gpc_num, u32 *tpc_num, u32 *broadcast_flags); 245 u32 *gpc_num, u32 *tpc_num, u32 *broadcast_flags);
246 void (*egpc_etpc_priv_addr_table)(struct gk20a *g, u32 addr, 246 void (*egpc_etpc_priv_addr_table)(struct gk20a *g, u32 addr,
247 u32 gpc, u32 broadcast_flags, u32 *priv_addr_table, 247 u32 gpc, u32 tpc, u32 broadcast_flags,
248 u32 *priv_addr_table,
248 u32 *priv_addr_table_index); 249 u32 *priv_addr_table_index);
249 bool (*is_tpc_addr)(struct gk20a *g, u32 addr); 250 bool (*is_tpc_addr)(struct gk20a *g, u32 addr);
250 bool (*is_egpc_addr)(struct gk20a *g, u32 addr); 251 bool (*is_egpc_addr)(struct gk20a *g, u32 addr);