summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2017-08-31 18:08:43 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-10-29 13:59:59 -0400
commit6b3b2b9c08a745288efcd1e608c0fa95da966c4e (patch)
treea451ffd884d934feacf689c8e3144b1c35251ff8 /drivers
parentf073e6d4a385837a6f775bd496888fb9cef29307 (diff)
gpu: nvgpu: allow suspend when engine is busy
We currently check that engine is idle before proceeding with suspend. This prevents suspend when we could simply disable and preempt all channels. Moreover, doing such a check in virtualization case, would require to query engine status from RM server, before proceeding with suspend. Removed check on engine idle for system suspend. JIRA EVLR-1852 Change-Id: Ic6dc65af14b00f236db20038dfc04fa0928c1fe2 Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1552347 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/common/linux/module.c5
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c3
2 files changed, 0 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/module.c b/drivers/gpu/nvgpu/common/linux/module.c
index b7d13f05..51336c51 100644
--- a/drivers/gpu/nvgpu/common/linux/module.c
+++ b/drivers/gpu/nvgpu/common/linux/module.c
@@ -276,11 +276,6 @@ static int gk20a_pm_prepare_poweroff(struct device *dev)
276 if (!g->power_on) 276 if (!g->power_on)
277 goto done; 277 goto done;
278 278
279 if (gk20a_fifo_is_engine_busy(g)) {
280 ret = -EBUSY;
281 goto done;
282 }
283
284 gk20a_scale_suspend(dev); 279 gk20a_scale_suspend(dev);
285 280
286 gk20a_cde_suspend(l); 281 gk20a_cde_suspend(l);
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 2b99b52c..47f6c56c 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -96,9 +96,6 @@ int gk20a_prepare_poweroff(struct gk20a *g)
96 96
97 gk20a_dbg_fn(""); 97 gk20a_dbg_fn("");
98 98
99 if (gk20a_fifo_is_engine_busy(g))
100 return -EBUSY;
101
102 ret = gk20a_channel_suspend(g); 99 ret = gk20a_channel_suspend(g);
103 if (ret) 100 if (ret)
104 return ret; 101 return ret;