summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c11
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 0206c915..64ae4401 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -91,9 +91,11 @@ int gk20a_prepare_poweroff(struct gk20a *g)
91 91
92 gk20a_dbg_fn(""); 92 gk20a_dbg_fn("");
93 93
94 ret = gk20a_channel_suspend(g); 94 if (g->ops.fifo.channel_suspend) {
95 if (ret) 95 ret = g->ops.fifo.channel_suspend(g);
96 return ret; 96 if (ret)
97 return ret;
98 }
97 99
98 /* disable elpg before gr or fifo suspend */ 100 /* disable elpg before gr or fifo suspend */
99 if (g->ops.pmu.is_pmu_supported(g)) 101 if (g->ops.pmu.is_pmu_supported(g))
@@ -330,7 +332,8 @@ int gk20a_finalize_poweron(struct gk20a *g)
330 } 332 }
331#endif 333#endif
332 334
333 gk20a_channel_resume(g); 335 if (g->ops.fifo.channel_resume)
336 g->ops.fifo.channel_resume(g);
334 337
335 nvgpu_init_mm_ce_context(g); 338 nvgpu_init_mm_ce_context(g);
336 339
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 76413600..c7653133 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -633,6 +633,8 @@ struct gpu_ops {
633 bool *verbose, u32 *ms); 633 bool *verbose, u32 *ms);
634 bool (*check_ch_ctxsw_timeout)(struct channel_gk20a *ch, 634 bool (*check_ch_ctxsw_timeout)(struct channel_gk20a *ch,
635 bool *verbose, u32 *ms); 635 bool *verbose, u32 *ms);
636 int (*channel_suspend)(struct gk20a *g);
637 int (*channel_resume)(struct gk20a *g);
636#ifdef CONFIG_TEGRA_GK20A_NVHOST 638#ifdef CONFIG_TEGRA_GK20A_NVHOST
637 int (*alloc_syncpt_buf)(struct channel_gk20a *c, 639 int (*alloc_syncpt_buf)(struct channel_gk20a *c,
638 u32 syncpt_id, struct nvgpu_mem *syncpt_buf); 640 u32 syncpt_id, struct nvgpu_mem *syncpt_buf);