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/platform_gk20a.h | |
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/platform_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h index 5f7285bf..7638cf15 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h | |||
@@ -76,6 +76,12 @@ struct gk20a_platform { | |||
76 | /* Adaptative ELPG: true = enable flase = disable */ | 76 | /* Adaptative ELPG: true = enable flase = disable */ |
77 | bool enable_aelpg; | 77 | bool enable_aelpg; |
78 | 78 | ||
79 | /* | ||
80 | * gk20a_do_idle() API can take GPU either into rail gate or CAR reset | ||
81 | * This flag can be used to force CAR reset case instead of rail gate | ||
82 | */ | ||
83 | bool force_reset_in_do_idle; | ||
84 | |||
79 | /* Default big page size 64K or 128K */ | 85 | /* Default big page size 64K or 128K */ |
80 | u32 default_big_page_size; | 86 | u32 default_big_page_size; |
81 | 87 | ||