summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2018-06-05 19:40:50 -0400
committerTejal Kudav <tkudav@nvidia.com>2018-06-14 09:44:08 -0400
commit7a5d498a711833990a9d8fc3f5d3f3e26bee301c (patch)
tree8fd4d77ea3835bd7c61681eeb90bd5c9f4df1cf9 /drivers/gpu/nvgpu/gv11b/fb_gv11b.c
parentd6c9f9f170a1d7a6bedbf5f7e2f1ec5cf4c9a3f1 (diff)
gpu: nvgpu: handle replayable mmu fault during waiting for SM lockdown
outstanding replayable mmu fault will prevent SM from lockdown, so handle the replayable mmu fault while polling lockdown status. Jira EVLR-2643 Bug 200405202 Change-Id: I811f16ef4394a6cc42a5f37a17e426dd749c5652 Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1741997 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/fb_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/fb_gv11b.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
index 9fd6c857..18906c01 100644
--- a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
@@ -1289,6 +1289,18 @@ void gv11b_fb_handle_dropped_mmu_fault(struct gk20a *g, u32 fault_status)
1289 } 1289 }
1290} 1290}
1291 1291
1292void gv11b_fb_handle_replayable_mmu_fault(struct gk20a *g)
1293{
1294 u32 fault_status = gk20a_readl(g, fb_mmu_fault_status_r());
1295
1296 if (!(fault_status & fb_mmu_fault_status_replayable_m()))
1297 return;
1298
1299 if (gv11b_fb_is_fault_buf_enabled(g, NONREPLAY_REG_INDEX)) {
1300 gv11b_fb_handle_mmu_nonreplay_replay_fault(g,
1301 fault_status, REPLAY_REG_INDEX);
1302 }
1303}
1292 1304
1293static void gv11b_fb_handle_mmu_fault(struct gk20a *g, u32 niso_intr) 1305static void gv11b_fb_handle_mmu_fault(struct gk20a *g, u32 niso_intr)
1294{ 1306{