diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/mm_gv11b.c | 18 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/mm_gv11b.h | 1 |
3 files changed, 14 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index efac772c..d479fef8 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c | |||
@@ -656,6 +656,7 @@ static const struct gpu_ops gv11b_ops = { | |||
656 | .init_bar2_vm = gp10b_init_bar2_vm, | 656 | .init_bar2_vm = gp10b_init_bar2_vm, |
657 | .remove_bar2_vm = gp10b_remove_bar2_vm, | 657 | .remove_bar2_vm = gp10b_remove_bar2_vm, |
658 | .fault_info_mem_destroy = gv11b_mm_fault_info_mem_destroy, | 658 | .fault_info_mem_destroy = gv11b_mm_fault_info_mem_destroy, |
659 | .mmu_fault_disable_hw = gv11b_mm_mmu_fault_disable_hw, | ||
659 | }, | 660 | }, |
660 | .therm = { | 661 | .therm = { |
661 | .init_therm_setup_hw = gv11b_init_therm_setup_hw, | 662 | .init_therm_setup_hw = gv11b_init_therm_setup_hw, |
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, |
diff --git a/drivers/gpu/nvgpu/gv11b/mm_gv11b.h b/drivers/gpu/nvgpu/gv11b/mm_gv11b.h index 6ad4a91a..ba247088 100644 --- a/drivers/gpu/nvgpu/gv11b/mm_gv11b.h +++ b/drivers/gpu/nvgpu/gv11b/mm_gv11b.h | |||
@@ -37,5 +37,6 @@ void gv11b_mm_l2_flush(struct gk20a *g, bool invalidate); | |||
37 | u64 gv11b_gpu_phys_addr(struct gk20a *g, | 37 | u64 gv11b_gpu_phys_addr(struct gk20a *g, |
38 | struct nvgpu_gmmu_attrs *attrs, u64 phys); | 38 | struct nvgpu_gmmu_attrs *attrs, u64 phys); |
39 | void gv11b_mm_fault_info_mem_destroy(struct gk20a *g); | 39 | void gv11b_mm_fault_info_mem_destroy(struct gk20a *g); |
40 | void gv11b_mm_mmu_fault_disable_hw(struct gk20a *g); | ||
40 | 41 | ||
41 | #endif | 42 | #endif |