diff options
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gr_gv11b.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index 2b083203..0fcbd0d7 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c | |||
@@ -1786,7 +1786,8 @@ static int gr_gv11b_pre_process_sm_exception(struct gk20a *g, | |||
1786 | } | 1786 | } |
1787 | 1787 | ||
1788 | /* reset the HWW errors after locking down */ | 1788 | /* reset the HWW errors after locking down */ |
1789 | global_esr_copy = gk20a_readl(g, gr_gpc0_tpc0_sm0_hww_global_esr_r() + offset); | 1789 | global_esr_copy = g->ops.gr.get_sm_hww_global_esr(g, |
1790 | gpc, tpc, sm); | ||
1790 | gk20a_gr_clear_sm_hww(g, gpc, tpc, global_esr_copy); | 1791 | gk20a_gr_clear_sm_hww(g, gpc, tpc, global_esr_copy); |
1791 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg, | 1792 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg, |
1792 | "CILP: HWWs cleared for " | 1793 | "CILP: HWWs cleared for " |
@@ -2995,6 +2996,19 @@ static u32 gv11b_gr_get_sm_hww_warp_esr(struct gk20a *g, | |||
2995 | return hww_warp_esr; | 2996 | return hww_warp_esr; |
2996 | } | 2997 | } |
2997 | 2998 | ||
2999 | static u32 gv11b_gr_get_sm_hww_global_esr(struct gk20a *g, | ||
3000 | u32 gpc, u32 tpc, u32 sm) | ||
3001 | { | ||
3002 | u32 offset = gk20a_gr_gpc_offset(g, gpc) + | ||
3003 | gk20a_gr_tpc_offset(g, tpc) + | ||
3004 | gv11b_gr_sm_offset(g, sm); | ||
3005 | |||
3006 | u32 hww_global_esr = gk20a_readl(g, | ||
3007 | gr_gpc0_tpc0_sm0_hww_global_esr_r() + offset); | ||
3008 | |||
3009 | return hww_global_esr; | ||
3010 | } | ||
3011 | |||
2998 | void gv11b_init_gr(struct gpu_ops *gops) | 3012 | void gv11b_init_gr(struct gpu_ops *gops) |
2999 | { | 3013 | { |
3000 | gp10b_init_gr(gops); | 3014 | gp10b_init_gr(gops); |
@@ -3069,4 +3083,5 @@ void gv11b_init_gr(struct gpu_ops *gops) | |||
3069 | gops->gr.resume_all_sms = gv11b_gr_resume_all_sms; | 3083 | gops->gr.resume_all_sms = gv11b_gr_resume_all_sms; |
3070 | gops->gr.resume_from_pause = gv11b_gr_resume_from_pause; | 3084 | gops->gr.resume_from_pause = gv11b_gr_resume_from_pause; |
3071 | gops->gr.get_sm_hww_warp_esr = gv11b_gr_get_sm_hww_warp_esr; | 3085 | gops->gr.get_sm_hww_warp_esr = gv11b_gr_get_sm_hww_warp_esr; |
3086 | gops->gr.get_sm_hww_global_esr = gv11b_gr_get_sm_hww_global_esr; | ||
3072 | } | 3087 | } |