diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2014-11-05 01:25:29 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:12:04 -0400 |
commit | 0e89e423181ca2609fc6911e9c2f828a3e135e7b (patch) | |
tree | 8dd558f51889781d5a429ba97b4a6343f4875cda /drivers/gpu/nvgpu/gk20a/gk20a.c | |
parent | 1d0e302b534eb63f27f690d0002e2341198684b9 (diff) |
gpu: nvgpu: force CAR reset in do_idle() for gm20b
In gk20a_do_idle(), we wait for platform->railgate_delay
to allow GPU to go into rail gate
But sometimes we set platform->railgate_delay = INT_MAX
to disable GPU rail gating but allow it to suspend during
low power state
Due to this, force_idle API fails (it waits for INT_MAX)
To fix this, allow forcing CAR reset instead of rail gating
with flag "force_reset_in_do_idle" defined in gk20a_platform
Set this flag for gm20b until we fix the railgate_delay
Bug 1517584
Change-Id: I031aa56f87d4db3727e2c3a3e5eeaf18503dd449
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/593704
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 58108d97..ef0f6a8c 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -1659,7 +1659,7 @@ int __gk20a_do_idle(struct platform_device *pdev) | |||
1659 | */ | 1659 | */ |
1660 | pm_runtime_put_sync(&pdev->dev); | 1660 | pm_runtime_put_sync(&pdev->dev); |
1661 | 1661 | ||
1662 | if (platform->can_railgate) { | 1662 | if (platform->can_railgate && !platform->force_reset_in_do_idle) { |
1663 | /* add sufficient delay to allow GPU to rail gate */ | 1663 | /* add sufficient delay to allow GPU to rail gate */ |
1664 | msleep(platform->railgate_delay); | 1664 | msleep(platform->railgate_delay); |
1665 | 1665 | ||