]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
gpu: nvgpu: bail out from poweroff if channel suspend fails
authorDeepak Nibade <dnibade@nvidia.com>
Wed, 11 Jun 2014 13:52:51 +0000 (19:22 +0530)
committerMandar Padmawar <mpadmawar@nvidia.com>
Thu, 19 Jun 2014 04:33:47 +0000 (21:33 -0700)
During gk20a_pm_prepare_poweroff(), if call to gk20a_channel_suspend()
fails, we proceed to disable other components and then return error.
But when genpd sees the error, it will abort the suspend sequence and
keep the device state as active.

But since we have already disabled all the components, GPU lands in
invalid state.

Hence, if channel_suspend() fails then do not proceed but return
the error immediately

Bug 200010416

Change-Id: I553a2a25832a1be4941bb6b6ce490c950cdbe7fa
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/422248
(cherry picked from commit 7352415a206b6bec41c762085e49efec5036dec9)
Reviewed-on: http://git-master/r/424541
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
drivers/gpu/nvgpu/gk20a/gk20a.c

index dc0afda0379b5d2caf40a36c5909fa6bf9b8247e..c1ba88926a4bec79dd8a462873684bb994f6016b 100644 (file)
@@ -754,7 +754,9 @@ static int gk20a_pm_prepare_poweroff(struct device *dev)
        if (!g->power_on)
                return 0;
 
-       ret |= gk20a_channel_suspend(g);
+       ret = gk20a_channel_suspend(g);
+       if (ret)
+               return ret;
 
        /*
         * After this point, gk20a interrupts should not get