diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index c1cca445..4a175a3c 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |||
@@ -282,12 +282,6 @@ static int dbg_unbind_channel_gk20a(struct dbg_session_gk20a *dbg_s) | |||
282 | 282 | ||
283 | --g->dbg_sessions; | 283 | --g->dbg_sessions; |
284 | 284 | ||
285 | /* Powergate enable is called here as possibility of dbg_session | ||
286 | * which called powergate disable ioctl, to be killed without calling | ||
287 | * powergate enable ioctl | ||
288 | */ | ||
289 | dbg_set_powergate(dbg_s, NVGPU_DBG_GPU_POWERGATE_MODE_ENABLE); | ||
290 | |||
291 | dbg_s->ch = NULL; | 285 | dbg_s->ch = NULL; |
292 | fput(dbg_s->ch_f); | 286 | fput(dbg_s->ch_f); |
293 | dbg_s->ch_f = NULL; | 287 | dbg_s->ch_f = NULL; |
@@ -303,6 +297,7 @@ static int dbg_unbind_channel_gk20a(struct dbg_session_gk20a *dbg_s) | |||
303 | int gk20a_dbg_gpu_dev_release(struct inode *inode, struct file *filp) | 297 | int gk20a_dbg_gpu_dev_release(struct inode *inode, struct file *filp) |
304 | { | 298 | { |
305 | struct dbg_session_gk20a *dbg_s = filp->private_data; | 299 | struct dbg_session_gk20a *dbg_s = filp->private_data; |
300 | struct gk20a *g = dbg_s->g; | ||
306 | 301 | ||
307 | gk20a_dbg(gpu_dbg_gpu_dbg | gpu_dbg_fn, "%s", dev_name(dbg_s->dev)); | 302 | gk20a_dbg(gpu_dbg_gpu_dbg | gpu_dbg_fn, "%s", dev_name(dbg_s->dev)); |
308 | 303 | ||
@@ -310,6 +305,14 @@ int gk20a_dbg_gpu_dev_release(struct inode *inode, struct file *filp) | |||
310 | if (dbg_s->ch) | 305 | if (dbg_s->ch) |
311 | dbg_unbind_channel_gk20a(dbg_s); | 306 | dbg_unbind_channel_gk20a(dbg_s); |
312 | 307 | ||
308 | /* Powergate enable is called here as possibility of dbg_session | ||
309 | * which called powergate disable ioctl, to be killed without calling | ||
310 | * powergate enable ioctl | ||
311 | */ | ||
312 | mutex_lock(&g->dbg_sessions_lock); | ||
313 | dbg_set_powergate(dbg_s, NVGPU_DBG_GPU_POWERGATE_MODE_ENABLE); | ||
314 | mutex_unlock(&g->dbg_sessions_lock); | ||
315 | |||
313 | kfree(dbg_s); | 316 | kfree(dbg_s); |
314 | return 0; | 317 | return 0; |
315 | } | 318 | } |