]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
gpu: nvgpu: Disable IRQs after channel suspend
authorArto Merilainen <amerilainen@nvidia.com>
Thu, 10 Apr 2014 08:40:52 +0000 (11:40 +0300)
committerSeema Khowala <seemaj@nvidia.com>
Wed, 23 Apr 2014 21:04:31 +0000 (14:04 -0700)
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>
drivers/gpu/nvgpu/gk20a/gk20a.c

index 7351579692d4d9b649b662988bb687ee98b3d021..3c69a9d02671c044e7cd060a0b1a8ba4ea9081ac 100644 (file)
@@ -753,6 +753,8 @@ static int gk20a_pm_prepare_poweroff(struct device *_dev)
        if (!g->power_on)
                return 0;
 
+       ret |= gk20a_channel_suspend(g);
+
        /*
         * After this point, gk20a interrupts should not get
         * serviced.
@@ -763,8 +765,6 @@ static int gk20a_pm_prepare_poweroff(struct 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);