summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index a65ca6c2..bed728cf 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -47,6 +47,8 @@
47#include "nvgpu_common.h" 47#include "nvgpu_common.h"
48#include "debug_gk20a.h" 48#include "debug_gk20a.h"
49#include "ctrl_gk20a.h" 49#include "ctrl_gk20a.h"
50#include "channel_sync_gk20a.h"
51
50#include "hw_mc_gk20a.h" 52#include "hw_mc_gk20a.h"
51#include "hw_timer_gk20a.h" 53#include "hw_timer_gk20a.h"
52#include "hw_bus_gk20a.h" 54#include "hw_bus_gk20a.h"
@@ -66,6 +68,7 @@
66#include "pstate/pstate.h" 68#include "pstate/pstate.h"
67#endif 69#endif
68 70
71
69#define CREATE_TRACE_POINTS 72#define CREATE_TRACE_POINTS
70#include <trace/events/gk20a.h> 73#include <trace/events/gk20a.h>
71 74
@@ -708,6 +711,10 @@ void gk20a_remove_support(struct device *dev)
708 if (g->dbg_regops_tmp_buf) 711 if (g->dbg_regops_tmp_buf)
709 kfree(g->dbg_regops_tmp_buf); 712 kfree(g->dbg_regops_tmp_buf);
710 713
714 nvgpu_wait_for_deferred_interrupts(g);
715
716 gk20a_channel_cancel_pending_sema_waits(g);
717
711 if (g->pmu.remove_support) 718 if (g->pmu.remove_support)
712 g->pmu.remove_support(&g->pmu); 719 g->pmu.remove_support(&g->pmu);
713 720
@@ -1740,6 +1747,7 @@ void gk20a_busy_noresume(struct device *dev)
1740 */ 1747 */
1741void gk20a_driver_start_unload(struct gk20a *g) 1748void gk20a_driver_start_unload(struct gk20a *g)
1742{ 1749{
1750 gk20a_dbg(gpu_dbg_shutdown, "Driver is now going down!\n");
1743 g->driver_is_dying = 1; 1751 g->driver_is_dying = 1;
1744} 1752}
1745 1753