diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2017-11-08 05:59:31 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-08 10:57:06 -0500 |
commit | 02d281d0776e2b8305b18823343a2ee972b72657 (patch) | |
tree | a081a24d7e3c3408f7128a54b4ead7289f5bed8a /drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |
parent | 86a307871b95a175eb8ecb3033472a112a0720d1 (diff) |
gpu: nvgpu: remove use of linux specific powergate_mode flag
In dbg_set_powergate(), we use flags NVGPU_DBG_GPU_POWERGATE_MODE_DISABLE/ENABLE
which are defined in linux specific uapi header
Hence we need to remove those flags from common code
Update dbg_set_powergate() to receive boolean flag to disable/enable powergate
instead of NVGPU_DBG_GPU_POWERGATE_MODE_DISABLE/ENABLE
Also update corresponding HALs as per above change
Jira NVGPU-259
Change-Id: I9c4eb30e29ea5ce0d8e25517a6a072fb9f0e92e5
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1594326
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index 6645e21f..fd31ab89 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |||
@@ -144,17 +144,16 @@ int gk20a_dbg_gpu_clear_broadcast_stop_trigger(struct channel_gk20a *ch) | |||
144 | return 0; | 144 | return 0; |
145 | } | 145 | } |
146 | 146 | ||
147 | int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) | 147 | int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, bool disable_powergate) |
148 | { | 148 | { |
149 | int err = 0; | 149 | int err = 0; |
150 | struct gk20a *g = dbg_s->g; | 150 | struct gk20a *g = dbg_s->g; |
151 | 151 | ||
152 | /* This function must be called with g->dbg_sessions_lock held */ | 152 | /* This function must be called with g->dbg_sessions_lock held */ |
153 | 153 | ||
154 | nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %d", | 154 | nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %s", |
155 | g->name, powermode); | 155 | g->name, disable_powergate ? "disable" : "enable"); |
156 | 156 | ||
157 | switch (powermode) { | ||
158 | /* | 157 | /* |
159 | * Powergate mode here refers to railgate+powergate+clockgate | 158 | * Powergate mode here refers to railgate+powergate+clockgate |
160 | * so in case slcg/blcg/elcg are disabled and railgating is enabled, | 159 | * so in case slcg/blcg/elcg are disabled and railgating is enabled, |
@@ -162,7 +161,7 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) | |||
162 | * Similarly re-enable railgating and not other features if they are not | 161 | * Similarly re-enable railgating and not other features if they are not |
163 | * enabled when powermode=MODE_ENABLE | 162 | * enabled when powermode=MODE_ENABLE |
164 | */ | 163 | */ |
165 | case NVGPU_DBG_GPU_POWERGATE_MODE_DISABLE: | 164 | if (disable_powergate) { |
166 | /* save off current powergate, clk state. | 165 | /* save off current powergate, clk state. |
167 | * set gpu module's can_powergate = 0. | 166 | * set gpu module's can_powergate = 0. |
168 | * set gpu module's clk to max. | 167 | * set gpu module's clk to max. |
@@ -202,9 +201,7 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) | |||
202 | } | 201 | } |
203 | 202 | ||
204 | dbg_s->is_pg_disabled = true; | 203 | dbg_s->is_pg_disabled = true; |
205 | break; | 204 | } else { |
206 | |||
207 | case NVGPU_DBG_GPU_POWERGATE_MODE_ENABLE: | ||
208 | /* restore (can) powergate, clk state */ | 205 | /* restore (can) powergate, clk state */ |
209 | /* release pending exceptions to fault/be handled as usual */ | 206 | /* release pending exceptions to fault/be handled as usual */ |
210 | /*TBD: ordering of these? */ | 207 | /*TBD: ordering of these? */ |
@@ -247,18 +244,10 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) | |||
247 | } | 244 | } |
248 | 245 | ||
249 | dbg_s->is_pg_disabled = false; | 246 | dbg_s->is_pg_disabled = false; |
250 | break; | ||
251 | |||
252 | default: | ||
253 | nvgpu_err(g, | ||
254 | "unrecognized dbg gpu powergate mode: 0x%x", | ||
255 | powermode); | ||
256 | err = -ENOTTY; | ||
257 | break; | ||
258 | } | 247 | } |
259 | 248 | ||
260 | nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %d done", | 249 | nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %s done", |
261 | g->name, powermode); | 250 | g->name, disable_powergate ? "disable" : "enable"); |
262 | return err; | 251 | return err; |
263 | } | 252 | } |
264 | 253 | ||