summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-05-27 11:05:12 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:09:58 -0400
commit3f7be93dab3ccb5f1cfc2a65013ff8fefaa5bbbd (patch)
tree104e7a07e0872baae93b54f3ef5ade15a5d1ce2b /drivers/gpu/nvgpu
parent954117fe11481b79c9c525f7c75384ac40b64cbe (diff)
gpu: nvgpu: add railgate check in do_idle()
In gk20a_do_idle(), check gk20a rail status before returning. If rail is off, then only return success otherwise return failure Bug 1376916 Bug 1487804 Change-Id: I6280bf06c686b8baa4d6f49e90f47148411c3e02 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/415281 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index b36beb52..2adf8908 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -1658,9 +1658,20 @@ int gk20a_do_idle(void)
1658 pm_runtime_put_sync(&pdev->dev); 1658 pm_runtime_put_sync(&pdev->dev);
1659 1659
1660 /* add sufficient delay to allow GPU to rail gate */ 1660 /* add sufficient delay to allow GPU to rail gate */
1661 mdelay(platform->railgate_delay + 100); 1661 mdelay(platform->railgate_delay);
1662 1662
1663 return 0; 1663 if (platform->is_railgated(pdev))
1664 return 0;
1665 else {
1666 /* wait for some more time */
1667 mdelay(100);
1668 if (platform->is_railgated(pdev))
1669 return 0;
1670 }
1671
1672 /* GPU is not rail gated by now, return error */
1673 up_write(&g->busy_lock);
1674 return -EBUSY;
1664 1675
1665fail: 1676fail:
1666 pm_runtime_put_noidle(&pdev->dev); 1677 pm_runtime_put_noidle(&pdev->dev);