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.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 069dfc95..44786e4b 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -822,7 +822,8 @@ static int gk20a_pm_prepare_poweroff(struct device *dev)
822 * serviced. 822 * serviced.
823 */ 823 */
824 disable_irq(g->irq_stall); 824 disable_irq(g->irq_stall);
825 disable_irq(g->irq_nonstall); 825 if (g->irq_stall != g->irq_nonstall)
826 disable_irq(g->irq_nonstall);
826 827
827 ret |= gk20a_gr_suspend(g); 828 ret |= gk20a_gr_suspend(g);
828 ret |= gk20a_mm_suspend(g); 829 ret |= gk20a_mm_suspend(g);
@@ -907,6 +908,15 @@ int gk20a_pm_finalize_poweron(struct device *dev)
907 if (err) 908 if (err)
908 goto done; 909 goto done;
909 910
911 /*
912 * Before probing the GPU make sure the GPU's state is cleared. This is
913 * relevant for rebind operations.
914 */
915 if (g->ops.xve.reset_gpu && !g->gpu_reset_done) {
916 g->ops.xve.reset_gpu(g);
917 g->gpu_reset_done = true;
918 }
919
910 if (g->ops.bios.init) 920 if (g->ops.bios.init)
911 err = g->ops.bios.init(g); 921 err = g->ops.bios.init(g);
912 if (err) 922 if (err)