summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorArto Merilainen <amerilainen@nvidia.com>2014-04-10 04:40:52 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:09:08 -0400
commitb4f4eca2bb8e4b8b80ef431071f57360f741be1b (patch)
tree43f5ff25ba02fe0a39a99756cced5800b420dba2 /drivers/gpu
parent8323c0a015719420df61bbd7003898be3482d16a (diff)
gpu: nvgpu: Disable IRQs after channel suspend
Interrupts may be needed before we have actually silenced all channels. Few possible scenarios include channel recovery during teardown and sw method before the channels have been suspended. This patch modifies the teardown path so that we disable interrupts after the channels have been suspended. Change-Id: Ifc36dbb74b1d36bd88d1220fa50a53c4072df4d8 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/394599 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu')
-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 73515796..3c69a9d0 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -753,6 +753,8 @@ static int gk20a_pm_prepare_poweroff(struct device *_dev)
753 if (!g->power_on) 753 if (!g->power_on)
754 return 0; 754 return 0;
755 755
756 ret |= gk20a_channel_suspend(g);
757
756 /* 758 /*
757 * After this point, gk20a interrupts should not get 759 * After this point, gk20a interrupts should not get
758 * serviced. 760 * serviced.
@@ -763,8 +765,6 @@ static int gk20a_pm_prepare_poweroff(struct device *_dev)
763 g->irq_requested = false; 765 g->irq_requested = false;
764 } 766 }
765 767
766 ret |= gk20a_channel_suspend(g);
767
768 /* disable elpg before gr or fifo suspend */ 768 /* disable elpg before gr or fifo suspend */
769 ret |= gk20a_pmu_destroy(g); 769 ret |= gk20a_pmu_destroy(g);
770 ret |= gk20a_gr_suspend(g); 770 ret |= gk20a_gr_suspend(g);