summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c16
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.h1
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c1
3 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index 7ed36144..101f4211 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -1516,3 +1516,19 @@ u32 gr_gm20b_get_pmm_per_chiplet_offset(void)
1516{ 1516{
1517 return (perf_pmmsys_extent_v() - perf_pmmsys_base_v() + 1); 1517 return (perf_pmmsys_extent_v() - perf_pmmsys_base_v() + 1);
1518} 1518}
1519
1520void gm20b_gr_set_debug_mode(struct gk20a *g, bool enable)
1521{
1522 u32 reg_val, gpc_debug_ctrl;
1523
1524 if (enable) {
1525 gpc_debug_ctrl = gr_gpcs_pri_mmu_debug_ctrl_debug_enabled_f();
1526 } else {
1527 gpc_debug_ctrl = gr_gpcs_pri_mmu_debug_ctrl_debug_disabled_f();
1528 }
1529
1530 reg_val = gk20a_readl(g, gr_gpcs_pri_mmu_debug_ctrl_r());
1531 reg_val = set_field(reg_val,
1532 gr_gpcs_pri_mmu_debug_ctrl_debug_m(), gpc_debug_ctrl);
1533 gk20a_writel(g, gr_gpcs_pri_mmu_debug_ctrl_r(), reg_val);
1534}
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.h b/drivers/gpu/nvgpu/gm20b/gr_gm20b.h
index 7c3baa59..0f5dfe53 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.h
@@ -127,4 +127,5 @@ int gr_gm20b_get_preemption_mode_flags(struct gk20a *g,
127void gm20b_gr_clear_sm_hww(struct gk20a *g, u32 gpc, u32 tpc, u32 sm, 127void gm20b_gr_clear_sm_hww(struct gk20a *g, u32 gpc, u32 tpc, u32 sm,
128 u32 global_esr); 128 u32 global_esr);
129u32 gr_gm20b_get_pmm_per_chiplet_offset(void); 129u32 gr_gm20b_get_pmm_per_chiplet_offset(void);
130void gm20b_gr_set_debug_mode(struct gk20a *g, bool enable);
130#endif 131#endif
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index a2b23cca..3b80ede0 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -329,6 +329,7 @@ static const struct gpu_ops gm20b_ops = {
329 .commit_global_ctx_buffers = gr_gk20a_commit_global_ctx_buffers, 329 .commit_global_ctx_buffers = gr_gk20a_commit_global_ctx_buffers,
330 .get_offset_in_gpccs_segment = 330 .get_offset_in_gpccs_segment =
331 gr_gk20a_get_offset_in_gpccs_segment, 331 gr_gk20a_get_offset_in_gpccs_segment,
332 .set_debug_mode = gm20b_gr_set_debug_mode,
332 }, 333 },
333 .fb = { 334 .fb = {
334 .reset = fb_gk20a_reset, 335 .reset = fb_gk20a_reset,