summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/mm_gm20b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/mm_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/mm_gm20b.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/mm_gm20b.c b/drivers/gpu/nvgpu/gm20b/mm_gm20b.c
index a16f4adf..ac82d56a 100644
--- a/drivers/gpu/nvgpu/gm20b/mm_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/mm_gm20b.c
@@ -18,6 +18,7 @@
18#include "mm_gm20b.h" 18#include "mm_gm20b.h"
19#include "hw_gmmu_gm20b.h" 19#include "hw_gmmu_gm20b.h"
20#include "hw_fb_gm20b.h" 20#include "hw_fb_gm20b.h"
21#include "hw_gr_gm20b.h"
21 22
22static const u32 gmmu_page_sizes[gmmu_nr_page_sizes] = { SZ_4K, SZ_128K }; 23static const u32 gmmu_page_sizes[gmmu_nr_page_sizes] = { SZ_4K, SZ_128K };
23static const u32 gmmu_page_shifts[gmmu_nr_page_sizes] = { 12, 17 }; 24static const u32 gmmu_page_shifts[gmmu_nr_page_sizes] = { 12, 17 };
@@ -314,8 +315,16 @@ void gm20b_vm_clear_sparse(struct vm_gk20a *vm, u64 vaddr,
314 return; 315 return;
315} 316}
316 317
318bool gm20b_mm_mmu_debug_mode_enabled(struct gk20a *g)
319{
320 u32 debug_ctrl = gk20a_readl(g, gr_gpcs_pri_mmu_debug_ctrl_r());
321 return gr_gpcs_pri_mmu_debug_ctrl_debug_v(debug_ctrl) ==
322 gr_gpcs_pri_mmu_debug_ctrl_debug_enabled_v();
323}
324
317void gm20b_init_mm(struct gpu_ops *gops) 325void gm20b_init_mm(struct gpu_ops *gops)
318{ 326{
319 gops->mm.set_sparse = gm20b_vm_put_sparse; 327 gops->mm.set_sparse = gm20b_vm_put_sparse;
320 gops->mm.clear_sparse = gm20b_vm_clear_sparse; 328 gops->mm.clear_sparse = gm20b_vm_clear_sparse;
329 gops->mm.is_debug_mode_enabled = gm20b_mm_mmu_debug_mode_enabled;
321} 330}