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.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index e1bf2b4b..02baf683 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -33,6 +33,7 @@
33#include <nvgpu/pmu.h> 33#include <nvgpu/pmu.h>
34#include <nvgpu/gmmu.h> 34#include <nvgpu/gmmu.h>
35#include <nvgpu/ltc.h> 35#include <nvgpu/ltc.h>
36#include <nvgpu/vidmem.h>
36 37
37#include <trace/events/gk20a.h> 38#include <trace/events/gk20a.h>
38 39
@@ -97,8 +98,6 @@ int gk20a_prepare_poweroff(struct gk20a *g)
97 if (gk20a_fifo_is_engine_busy(g)) 98 if (gk20a_fifo_is_engine_busy(g))
98 return -EBUSY; 99 return -EBUSY;
99 100
100 gk20a_ce_suspend(g);
101
102 ret = gk20a_channel_suspend(g); 101 ret = gk20a_channel_suspend(g);
103 if (ret) 102 if (ret)
104 return ret; 103 return ret;
@@ -111,6 +110,8 @@ int gk20a_prepare_poweroff(struct gk20a *g)
111 ret |= gk20a_mm_suspend(g); 110 ret |= gk20a_mm_suspend(g);
112 ret |= gk20a_fifo_suspend(g); 111 ret |= gk20a_fifo_suspend(g);
113 112
113 gk20a_ce_suspend(g);
114
114 /* Disable GPCPLL */ 115 /* Disable GPCPLL */
115 if (g->ops.clk.suspend_clk_support) 116 if (g->ops.clk.suspend_clk_support)
116 ret |= g->ops.clk.suspend_clk_support(g); 117 ret |= g->ops.clk.suspend_clk_support(g);
@@ -323,6 +324,8 @@ int gk20a_finalize_poweron(struct gk20a *g)
323 } 324 }
324 } 325 }
325 326
327 nvgpu_vidmem_thread_unpause(&g->mm);
328
326#if defined(CONFIG_TEGRA_GK20A_NVHOST) && defined(CONFIG_TEGRA_19x_GPU) 329#if defined(CONFIG_TEGRA_GK20A_NVHOST) && defined(CONFIG_TEGRA_19x_GPU)
327 if (gk20a_platform_has_syncpoints(g) && g->syncpt_unit_size) { 330 if (gk20a_platform_has_syncpoints(g) && g->syncpt_unit_size) {
328 if (!nvgpu_mem_is_valid(&g->syncpt_mem)) { 331 if (!nvgpu_mem_is_valid(&g->syncpt_mem)) {