diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/mm_gv11b.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/mm_gv11b.c b/drivers/gpu/nvgpu/gv11b/mm_gv11b.c index d49c3b73..fd77ed10 100644 --- a/drivers/gpu/nvgpu/gv11b/mm_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/mm_gv11b.c | |||
@@ -42,6 +42,15 @@ static void gv11b_init_inst_block(struct mem_desc *inst_block, | |||
42 | g->ops.mm.set_big_page_size(g, inst_block, big_page_size); | 42 | g->ops.mm.set_big_page_size(g, inst_block, big_page_size); |
43 | } | 43 | } |
44 | 44 | ||
45 | static bool gv11b_mm_mmu_fault_pending(struct gk20a *g) | ||
46 | { | ||
47 | if (gk20a_readl(g, fb_niso_intr_r()) & | ||
48 | (fb_niso_intr_mmu_nonreplayable_fault_notify_pending_f() | | ||
49 | fb_niso_intr_mmu_nonreplayable_fault_overflow_pending_f())) | ||
50 | return true; | ||
51 | |||
52 | return false; | ||
53 | } | ||
45 | 54 | ||
46 | void gv11b_init_mm(struct gpu_ops *gops) | 55 | void gv11b_init_mm(struct gpu_ops *gops) |
47 | { | 56 | { |
@@ -50,4 +59,5 @@ void gv11b_init_mm(struct gpu_ops *gops) | |||
50 | gops->mm.is_bar1_supported = gv11b_mm_is_bar1_supported; | 59 | gops->mm.is_bar1_supported = gv11b_mm_is_bar1_supported; |
51 | gops->mm.init_inst_block = gv11b_init_inst_block; | 60 | gops->mm.init_inst_block = gv11b_init_inst_block; |
52 | gops->mm.init_mm_setup_hw = gk20a_init_mm_setup_hw; | 61 | gops->mm.init_mm_setup_hw = gk20a_init_mm_setup_hw; |
62 | gops->mm.mmu_fault_pending = gv11b_mm_mmu_fault_pending; | ||
53 | } | 63 | } |