diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_dbg.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/ioctl_dbg.c | 26 |
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, | |||
1598 | static void nvgpu_dbg_gpu_ioctl_get_timeout(struct dbg_session_gk20a *dbg_s, | 1596 | static 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) |