diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 86b9f045..4c31d5e4 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -3723,6 +3723,24 @@ bool gk20a_mm_mmu_debug_mode_enabled(struct gk20a *g) | |||
3723 | fb_mmu_debug_ctrl_debug_enabled_v(); | 3723 | fb_mmu_debug_ctrl_debug_enabled_v(); |
3724 | } | 3724 | } |
3725 | 3725 | ||
3726 | static void gk20a_mm_mmu_set_debug_mode(struct gk20a *g, bool enable) | ||
3727 | { | ||
3728 | u32 reg_val, debug_ctrl; | ||
3729 | |||
3730 | reg_val = gk20a_readl(g, fb_mmu_debug_ctrl_r()); | ||
3731 | if (enable) { | ||
3732 | debug_ctrl = fb_mmu_debug_ctrl_debug_enabled_f(); | ||
3733 | g->mmu_debug_ctrl = true; | ||
3734 | } else { | ||
3735 | debug_ctrl = fb_mmu_debug_ctrl_debug_disabled_f(); | ||
3736 | g->mmu_debug_ctrl = false; | ||
3737 | } | ||
3738 | |||
3739 | reg_val = set_field(reg_val, | ||
3740 | fb_mmu_debug_ctrl_debug_m(), debug_ctrl); | ||
3741 | gk20a_writel(g, fb_mmu_debug_ctrl_r(), reg_val); | ||
3742 | } | ||
3743 | |||
3726 | u32 gk20a_mm_get_physical_addr_bits(struct gk20a *g) | 3744 | u32 gk20a_mm_get_physical_addr_bits(struct gk20a *g) |
3727 | { | 3745 | { |
3728 | return 34; | 3746 | return 34; |
@@ -3769,6 +3787,7 @@ clean_up: | |||
3769 | void gk20a_init_mm(struct gpu_ops *gops) | 3787 | void gk20a_init_mm(struct gpu_ops *gops) |
3770 | { | 3788 | { |
3771 | gops->mm.is_debug_mode_enabled = gk20a_mm_mmu_debug_mode_enabled; | 3789 | gops->mm.is_debug_mode_enabled = gk20a_mm_mmu_debug_mode_enabled; |
3790 | gops->mm.set_debug_mode = gk20a_mm_mmu_set_debug_mode; | ||
3772 | gops->mm.gmmu_map = gk20a_locked_gmmu_map; | 3791 | gops->mm.gmmu_map = gk20a_locked_gmmu_map; |
3773 | gops->mm.gmmu_unmap = gk20a_locked_gmmu_unmap; | 3792 | gops->mm.gmmu_unmap = gk20a_locked_gmmu_unmap; |
3774 | gops->mm.vm_remove = gk20a_vm_remove_support; | 3793 | gops->mm.vm_remove = gk20a_vm_remove_support; |