summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c b/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
index 18567064..4f33c78f 100644
--- a/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/ctrl_gk20a.c
@@ -313,33 +313,17 @@ static int nvgpu_gpu_ioctl_set_mmu_debug_mode(
313 struct gk20a *g, 313 struct gk20a *g,
314 struct nvgpu_gpu_mmu_debug_mode_args *args) 314 struct nvgpu_gpu_mmu_debug_mode_args *args)
315{ 315{
316 int err = 0; 316 if (gk20a_busy(g->dev)) {
317 u32 reg_val, mmu_debug_ctrl;
318
319 err = gk20a_busy(g->dev);
320 if (err) {
321 gk20a_err(dev_from_gk20a(g), "failed to power on gpu\n"); 317 gk20a_err(dev_from_gk20a(g), "failed to power on gpu\n");
322 return -EINVAL; 318 return -EINVAL;
323 } 319 }
324 320
325 mutex_lock(&g->dbg_sessions_lock); 321 mutex_lock(&g->dbg_sessions_lock);
326 322 g->ops.mm.set_debug_mode(g, args->state == 1);
327 if (args->state == 1) {
328 mmu_debug_ctrl = fb_mmu_debug_ctrl_debug_enabled_f();
329 g->mmu_debug_ctrl = true;
330 } else {
331 mmu_debug_ctrl = fb_mmu_debug_ctrl_debug_disabled_f();
332 g->mmu_debug_ctrl = false;
333 }
334
335 reg_val = gk20a_readl(g, fb_mmu_debug_ctrl_r());
336 reg_val = set_field(reg_val,
337 fb_mmu_debug_ctrl_debug_m(), mmu_debug_ctrl);
338 gk20a_writel(g, fb_mmu_debug_ctrl_r(), reg_val);
339
340 mutex_unlock(&g->dbg_sessions_lock); 323 mutex_unlock(&g->dbg_sessions_lock);
324
341 gk20a_idle(g->dev); 325 gk20a_idle(g->dev);
342 return err; 326 return 0;
343} 327}
344 328
345static int nvgpu_gpu_ioctl_set_debug_mode( 329static int nvgpu_gpu_ioctl_set_debug_mode(