From 87373abc9598bf5c57f429ea246497d3019a6034 Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Wed, 23 Jul 2014 13:52:48 -0700 Subject: gpu: nvgpu: gm20b: use gpc_mmu to check debug mode Bug 1534793 Change-Id: I8a4c35914b58dd13a7c10c668de9d4662d947d8c Signed-off-by: Kevin Huang Reviewed-on: http://git-master/r/441377 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h | 8 ++++++++ drivers/gpu/nvgpu/gm20b/mm_gm20b.c | 9 +++++++++ 2 files changed, 17 insertions(+) (limited to 'drivers/gpu/nvgpu/gm20b') diff --git a/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h index eb6cf4ad..21a46d33 100644 --- a/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h @@ -3210,6 +3210,14 @@ static inline u32 gr_gpcs_pri_mmu_debug_ctrl_r(void) { return 0x004188b0; } +static inline u32 gr_gpcs_pri_mmu_debug_ctrl_debug_v(u32 r) +{ + return (r >> 16) & 0x1; +} +static inline u32 gr_gpcs_pri_mmu_debug_ctrl_debug_enabled_v(void) +{ + return 0x00000001; +} static inline u32 gr_gpcs_pri_mmu_debug_wr_r(void) { return 0x004188b4; 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 @@ #include "mm_gm20b.h" #include "hw_gmmu_gm20b.h" #include "hw_fb_gm20b.h" +#include "hw_gr_gm20b.h" static const u32 gmmu_page_sizes[gmmu_nr_page_sizes] = { SZ_4K, SZ_128K }; static 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, return; } +bool gm20b_mm_mmu_debug_mode_enabled(struct gk20a *g) +{ + u32 debug_ctrl = gk20a_readl(g, gr_gpcs_pri_mmu_debug_ctrl_r()); + return gr_gpcs_pri_mmu_debug_ctrl_debug_v(debug_ctrl) == + gr_gpcs_pri_mmu_debug_ctrl_debug_enabled_v(); +} + void gm20b_init_mm(struct gpu_ops *gops) { gops->mm.set_sparse = gm20b_vm_put_sparse; gops->mm.clear_sparse = gm20b_vm_clear_sparse; + gops->mm.is_debug_mode_enabled = gm20b_mm_mmu_debug_mode_enabled; } -- cgit v1.2.2