diff options
author | Prashant Malani <pmalani@nvidia.com> | 2014-01-24 12:08:05 -0800 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-01-30 02:12:00 -0800 |
commit | a37ca473bdddc664aa1049b5c4ce965052ec8441 (patch) | |
tree | 83e894f954e9021daefba5d8dc8629cb6d2b1991 /drivers | |
parent | 7420ee613533ea7e57cfc34cfbe9f69feaf14a61 (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.c | 16 |
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; |