summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_dbg.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_dbg.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c b/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c
index 2aba2664..31e7e2cb 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c
@@ -228,7 +228,7 @@ static int nvgpu_dbg_gpu_ioctl_timeout(struct dbg_session_gk20a *dbg_s,
228 int err; 228 int err;
229 struct gk20a *g = dbg_s->g; 229 struct gk20a *g = dbg_s->g;
230 230
231 nvgpu_log_fn(g, "powergate mode = %d", args->enable); 231 nvgpu_log(g, gpu_dbg_fn, "timeout enable/disable = %d", args->enable);
232 232
233 nvgpu_mutex_acquire(&g->dbg_sessions_lock); 233 nvgpu_mutex_acquire(&g->dbg_sessions_lock);
234 err = nvgpu_dbg_timeout_enable(dbg_s, args->enable); 234 err = nvgpu_dbg_timeout_enable(dbg_s, args->enable);
@@ -385,18 +385,14 @@ static int nvgpu_dbg_timeout_enable(struct dbg_session_gk20a *dbg_s,
385 385
386 switch (timeout_mode) { 386 switch (timeout_mode) {
387 case NVGPU_DBG_GPU_IOCTL_TIMEOUT_ENABLE: 387 case NVGPU_DBG_GPU_IOCTL_TIMEOUT_ENABLE:
388 if (dbg_s->is_timeout_disabled && 388 if (dbg_s->is_timeout_disabled == true)
389 --g->dbg_timeout_disabled_refcount == 0) { 389 nvgpu_atomic_dec(&g->timeouts_disabled_refcount);
390 g->timeouts_enabled = true;
391 }
392 dbg_s->is_timeout_disabled = false; 390 dbg_s->is_timeout_disabled = false;
393 break; 391 break;
394 392
395 case NVGPU_DBG_GPU_IOCTL_TIMEOUT_DISABLE: 393 case NVGPU_DBG_GPU_IOCTL_TIMEOUT_DISABLE:
396 if ((dbg_s->is_timeout_disabled == false) && 394 if (dbg_s->is_timeout_disabled == false)
397 (g->dbg_timeout_disabled_refcount++ == 0)) { 395 nvgpu_atomic_inc(&g->timeouts_disabled_refcount);
398 g->timeouts_enabled = false;
399 }
400 dbg_s->is_timeout_disabled = true; 396 dbg_s->is_timeout_disabled = true;
401 break; 397 break;
402 398
@@ -408,9 +404,11 @@ static int nvgpu_dbg_timeout_enable(struct dbg_session_gk20a *dbg_s,
408 break; 404 break;
409 } 405 }
410 406
411 nvgpu_log(g, gpu_dbg_gpu_dbg, "Timeouts enabled : %s", 407 if (!err)
412 g->timeouts_enabled ? "Yes" : "No"); 408 nvgpu_log(g, gpu_dbg_gpu_dbg, "dbg is timeout disabled %s, "
413 409 "timeouts disabled refcount %d",
410 dbg_s->is_timeout_disabled ? "true" : "false",
411 nvgpu_atomic_read(&g->timeouts_disabled_refcount));
414 return err; 412 return err;
415} 413}
416 414
@@ -1598,11 +1596,11 @@ static int nvgpu_ioctl_profiler_reserve(struct dbg_session_gk20a *dbg_s,
1598static void nvgpu_dbg_gpu_ioctl_get_timeout(struct dbg_session_gk20a *dbg_s, 1596static void nvgpu_dbg_gpu_ioctl_get_timeout(struct dbg_session_gk20a *dbg_s,
1599 struct nvgpu_dbg_gpu_timeout_args *args) 1597 struct nvgpu_dbg_gpu_timeout_args *args)
1600{ 1598{
1601 int status; 1599 bool status;
1602 struct gk20a *g = dbg_s->g; 1600 struct gk20a *g = dbg_s->g;
1603 1601
1604 nvgpu_mutex_acquire(&g->dbg_sessions_lock); 1602 nvgpu_mutex_acquire(&g->dbg_sessions_lock);
1605 status = g->timeouts_enabled; 1603 status = nvgpu_is_timeouts_enabled(g);
1606 nvgpu_mutex_release(&g->dbg_sessions_lock); 1604 nvgpu_mutex_release(&g->dbg_sessions_lock);
1607 1605
1608 if (status) 1606 if (status)