summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPrashant Malani <pmalani@nvidia.com>2014-01-24 12:08:05 -0800
committerTerje Bergstrom <tbergstrom@nvidia.com>2014-01-30 02:12:00 -0800
commita37ca473bdddc664aa1049b5c4ce965052ec8441 (patch)
tree83e894f954e9021daefba5d8dc8629cb6d2b1991 /drivers
parent7420ee613533ea7e57cfc34cfbe9f69feaf14a61 (diff)
video: tegra: host: gk20a: reorder free_irq
Free IRQs before the various subunits are suspended. This is to prevent potential races between the IRQ thread and the suspend routine. Bug 1437749 Change-Id: I835f20a54d177f4b30a66e0dcb41c8240e5c97fd Signed-off-by: Prashant Malani <pmalani@nvidia.com> Reviewed-on: http://git-master/r/359990 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/host/gk20a/gk20a.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/video/tegra/host/gk20a/gk20a.c b/drivers/video/tegra/host/gk20a/gk20a.c
index d704e40b492e..a9ead0e3c7d0 100644
--- a/drivers/video/tegra/host/gk20a/gk20a.c
+++ b/drivers/video/tegra/host/gk20a/gk20a.c
@@ -773,14 +773,6 @@ int nvhost_gk20a_prepare_poweroff(struct platform_device *dev)
if (!g->power_on)
return 0;
- ret |= gk20a_channel_suspend(g);
-
- /* disable elpg before gr or fifo suspend */
- ret |= gk20a_pmu_destroy(g);
- ret |= gk20a_gr_suspend(g);
- ret |= gk20a_mm_suspend(g);
- ret |= gk20a_fifo_suspend(g);
-
/*
* After this point, gk20a interrupts should not get
* serviced.
@@ -791,6 +783,14 @@ int nvhost_gk20a_prepare_poweroff(struct platform_device *dev)
g->irq_requested = false;
}
+ ret |= gk20a_channel_suspend(g);
+
+ /* disable elpg before gr or fifo suspend */
+ ret |= gk20a_pmu_destroy(g);
+ ret |= gk20a_gr_suspend(g);
+ ret |= gk20a_mm_suspend(g);
+ ret |= gk20a_fifo_suspend(g);
+
/* Disable GPCPLL */
ret |= gk20a_suspend_clk_support(g);
g->power_on = false;