diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/mm_gv11b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/mm_gv11b.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/mm_gv11b.c b/drivers/gpu/nvgpu/gv11b/mm_gv11b.c index 9373ee19..39c79bba 100644 --- a/drivers/gpu/nvgpu/gv11b/mm_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/mm_gv11b.c | |||
@@ -67,15 +67,10 @@ bool gv11b_mm_mmu_fault_pending(struct gk20a *g) | |||
67 | return g->ops.fb.mmu_fault_pending(g); | 67 | return g->ops.fb.mmu_fault_pending(g); |
68 | } | 68 | } |
69 | 69 | ||
70 | void gv11b_mm_fault_info_mem_destroy(struct gk20a *g) | 70 | void gv11b_mm_mmu_fault_disable_hw(struct gk20a *g) |
71 | { | 71 | { |
72 | struct vm_gk20a *vm = g->mm.bar2.vm; | ||
73 | |||
74 | nvgpu_log_fn(g, " "); | ||
75 | |||
76 | nvgpu_mutex_acquire(&g->mm.hub_isr_mutex); | 72 | nvgpu_mutex_acquire(&g->mm.hub_isr_mutex); |
77 | 73 | ||
78 | |||
79 | if ((g->ops.fb.is_fault_buf_enabled(g, | 74 | if ((g->ops.fb.is_fault_buf_enabled(g, |
80 | NVGPU_FB_MMU_FAULT_NONREPLAY_REG_INDEX))) { | 75 | NVGPU_FB_MMU_FAULT_NONREPLAY_REG_INDEX))) { |
81 | g->ops.fb.fault_buf_set_state_hw(g, | 76 | g->ops.fb.fault_buf_set_state_hw(g, |
@@ -90,6 +85,17 @@ void gv11b_mm_fault_info_mem_destroy(struct gk20a *g) | |||
90 | NVGPU_FB_MMU_FAULT_BUF_DISABLED); | 85 | NVGPU_FB_MMU_FAULT_BUF_DISABLED); |
91 | } | 86 | } |
92 | 87 | ||
88 | nvgpu_mutex_release(&g->mm.hub_isr_mutex); | ||
89 | } | ||
90 | |||
91 | void gv11b_mm_fault_info_mem_destroy(struct gk20a *g) | ||
92 | { | ||
93 | struct vm_gk20a *vm = g->mm.bar2.vm; | ||
94 | |||
95 | nvgpu_log_fn(g, " "); | ||
96 | |||
97 | nvgpu_mutex_acquire(&g->mm.hub_isr_mutex); | ||
98 | |||
93 | if (nvgpu_mem_is_valid( | 99 | if (nvgpu_mem_is_valid( |
94 | &g->mm.hw_fault_buf[NVGPU_MM_MMU_FAULT_TYPE_OTHER_AND_NONREPLAY])) | 100 | &g->mm.hw_fault_buf[NVGPU_MM_MMU_FAULT_TYPE_OTHER_AND_NONREPLAY])) |
95 | nvgpu_dma_unmap_free(vm, | 101 | nvgpu_dma_unmap_free(vm, |