diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 16 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 1 |
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 | |||
1520 | void 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, | |||
127 | void gm20b_gr_clear_sm_hww(struct gk20a *g, u32 gpc, u32 tpc, u32 sm, | 127 | void gm20b_gr_clear_sm_hww(struct gk20a *g, u32 gpc, u32 tpc, u32 sm, |
128 | u32 global_esr); | 128 | u32 global_esr); |
129 | u32 gr_gm20b_get_pmm_per_chiplet_offset(void); | 129 | u32 gr_gm20b_get_pmm_per_chiplet_offset(void); |
130 | void 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, |