summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-11-08 05:59:31 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-08 10:57:06 -0500
commit02d281d0776e2b8305b18823343a2ee972b72657 (patch)
treea081a24d7e3c3408f7128a54b4ead7289f5bed8a /drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c
parent86a307871b95a175eb8ecb3033472a112a0720d1 (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.c25
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
147int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) 147int 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