summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h
diff options
context:
space:
mode:
authorCory Perry <cperry@nvidia.com>2017-03-07 12:32:53 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-14 14:46:52 -0400
commitde568db9dee599fa27cdc2ead88186099fff3c3b (patch)
treee7f448c7b79aece79e4a98aef334f17d8fedca40 /drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h
parent403874fa75dbb00e974a8d0f88b6e92be01ba42e (diff)
gpu: nvgpu: fix suspending all SMs
In gk20a_suspend_all_sms(), we currently loop over all GPCs and then loop over all TPCs in inner loop But this is incorrect and leads to SM with invalid GPC,TPC ids Fix this by looping over number of TPCs in each GPC in inner loop Also, fix gk20a_gr_wait_for_sm_lock_down() as per below - we right now wait infinitely for SM to lock down - restrict this wait with a timeout on silicon platforms - return ETIMEDOUT instead of EAGAIN - add more debug prints with additional data for SM lock down failures Bug 200258704 Change-Id: Id6fe32e579647fd8ac287a4b2ec80cbf98791e0d Signed-off-by: Cory Perry <cperry@nvidia.com> Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1316471 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h
index c20da067..c6490f7a 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h
@@ -3478,14 +3478,26 @@ static inline u32 gr_gpc0_tpc0_sm_warp_valid_mask_r(void)
3478{ 3478{
3479 return 0x00504614; 3479 return 0x00504614;
3480} 3480}
3481static inline u32 gr_gpc0_tpc0_sm_warp_valid_mask_1_r(void)
3482{
3483 return 0x00504618;
3484}
3481static inline u32 gr_gpc0_tpc0_sm_dbgr_bpt_pause_mask_r(void) 3485static inline u32 gr_gpc0_tpc0_sm_dbgr_bpt_pause_mask_r(void)
3482{ 3486{
3483 return 0x00504624; 3487 return 0x00504624;
3484} 3488}
3489static inline u32 gr_gpc0_tpc0_sm_dbgr_bpt_pause_mask_1_r(void)
3490{
3491 return 0x00504628;
3492}
3485static inline u32 gr_gpc0_tpc0_sm_dbgr_bpt_trap_mask_r(void) 3493static inline u32 gr_gpc0_tpc0_sm_dbgr_bpt_trap_mask_r(void)
3486{ 3494{
3487 return 0x00504634; 3495 return 0x00504634;
3488} 3496}
3497static inline u32 gr_gpc0_tpc0_sm_dbgr_bpt_trap_mask_1_r(void)
3498{
3499 return 0x00504638;
3500}
3489static inline u32 gr_gpcs_tpcs_sm_dbgr_bpt_pause_mask_r(void) 3501static inline u32 gr_gpcs_tpcs_sm_dbgr_bpt_pause_mask_r(void)
3490{ 3502{
3491 return 0x00419e24; 3503 return 0x00419e24;