From 7a5d498a711833990a9d8fc3f5d3f3e26bee301c Mon Sep 17 00:00:00 2001 From: Richard Zhao Date: Tue, 5 Jun 2018 16:40:50 -0700 Subject: 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 Reviewed-on: https://git-master.nvidia.com/r/1741997 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gv11b/fb_gv11b.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers/gpu/nvgpu/gv11b/fb_gv11b.c') 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) } } +void gv11b_fb_handle_replayable_mmu_fault(struct gk20a *g) +{ + u32 fault_status = gk20a_readl(g, fb_mmu_fault_status_r()); + + if (!(fault_status & fb_mmu_fault_status_replayable_m())) + return; + + if (gv11b_fb_is_fault_buf_enabled(g, NONREPLAY_REG_INDEX)) { + gv11b_fb_handle_mmu_nonreplay_replay_fault(g, + fault_status, REPLAY_REG_INDEX); + } +} static void gv11b_fb_handle_mmu_fault(struct gk20a *g, u32 niso_intr) { -- cgit v1.2.2