diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 21e861fe..6350bcf5 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -358,32 +358,6 @@ int gk20a_can_busy(struct gk20a *g) | |||
358 | return 1; | 358 | return 1; |
359 | } | 359 | } |
360 | 360 | ||
361 | /* | ||
362 | * Start the process for unloading the driver. Set NVGPU_DRIVER_IS_DYING. | ||
363 | */ | ||
364 | void gk20a_driver_start_unload(struct gk20a *g) | ||
365 | { | ||
366 | gk20a_dbg(gpu_dbg_shutdown, "Driver is now going down!\n"); | ||
367 | |||
368 | down_write(&g->busy_lock); | ||
369 | __nvgpu_set_enabled(g, NVGPU_DRIVER_IS_DYING, true); | ||
370 | up_write(&g->busy_lock); | ||
371 | |||
372 | if (g->is_virtual) | ||
373 | return; | ||
374 | |||
375 | gk20a_wait_for_idle(dev_from_gk20a(g)); | ||
376 | |||
377 | nvgpu_wait_for_deferred_interrupts(g); | ||
378 | gk20a_channel_cancel_pending_sema_waits(g); | ||
379 | |||
380 | if (g->nonstall_work_queue) { | ||
381 | cancel_work_sync(&g->nonstall_fn_work); | ||
382 | destroy_workqueue(g->nonstall_work_queue); | ||
383 | g->nonstall_work_queue = NULL; | ||
384 | } | ||
385 | } | ||
386 | |||
387 | int gk20a_wait_for_idle(struct device *dev) | 361 | int gk20a_wait_for_idle(struct device *dev) |
388 | { | 362 | { |
389 | struct gk20a *g = get_gk20a(dev); | 363 | struct gk20a *g = get_gk20a(dev); |