summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.c
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-12-23 20:45:52 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-12-26 21:41:00 -0500
commitcb55553544dab4291d9b4c4f800580485a670c88 (patch)
tree3ff5449dfdafad6b6ab14be005b44a483ace1bf7 /drivers/gpu/nvgpu/gk20a/gk20a.c
parent57a7064ff46048b4013ec197b0495c9c2fc5b082 (diff)
gpu: nvgpu: do channel resume after hw init
During finalize power on, resume channels only after complete hw initialization is done. Otherwise it will cause issues with unexpected usage of hw. During first boot will not see these issues because there will no channels. But after rail gate/ungate or suspend/resume these issues can be seen if channels are present before rail-gate/suspend. Bug 2039195 Change-Id: Ie96e2f2b91902ba18b37e9a167344eeae07ba8c2 Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1625506 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index c029e9e0..c72b6193 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -294,8 +294,6 @@ int gk20a_finalize_poweron(struct gk20a *g)
294 /* Restore the debug setting */ 294 /* Restore the debug setting */
295 g->ops.fb.set_debug_mode(g, g->mmu_debug_ctrl); 295 g->ops.fb.set_debug_mode(g, g->mmu_debug_ctrl);
296 296
297 gk20a_channel_resume(g);
298
299 gk20a_init_ce_support(g); 297 gk20a_init_ce_support(g);
300 298
301 nvgpu_init_mm_ce_context(g); 299 nvgpu_init_mm_ce_context(g);
@@ -329,6 +327,8 @@ int gk20a_finalize_poweron(struct gk20a *g)
329 } 327 }
330#endif 328#endif
331 329
330 gk20a_channel_resume(g);
331
332done: 332done:
333 if (err) 333 if (err)
334 g->power_on = false; 334 g->power_on = false;