From 02d281d0776e2b8305b18823343a2ee972b72657 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Wed, 8 Nov 2017 02:59:31 -0800 Subject: 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 Reviewed-on: https://git-master.nvidia.com/r/1594326 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c') 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) return 0; } -int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) +int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, bool disable_powergate) { int err = 0; struct gk20a *g = dbg_s->g; /* This function must be called with g->dbg_sessions_lock held */ - nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %d", - g->name, powermode); + nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %s", + g->name, disable_powergate ? "disable" : "enable"); - switch (powermode) { /* * Powergate mode here refers to railgate+powergate+clockgate * 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) * Similarly re-enable railgating and not other features if they are not * enabled when powermode=MODE_ENABLE */ - case NVGPU_DBG_GPU_POWERGATE_MODE_DISABLE: + if (disable_powergate) { /* save off current powergate, clk state. * set gpu module's can_powergate = 0. * set gpu module's clk to max. @@ -202,9 +201,7 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) } dbg_s->is_pg_disabled = true; - break; - - case NVGPU_DBG_GPU_POWERGATE_MODE_ENABLE: + } else { /* restore (can) powergate, clk state */ /* release pending exceptions to fault/be handled as usual */ /*TBD: ordering of these? */ @@ -247,18 +244,10 @@ int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, u32 powermode) } dbg_s->is_pg_disabled = false; - break; - - default: - nvgpu_err(g, - "unrecognized dbg gpu powergate mode: 0x%x", - powermode); - err = -ENOTTY; - break; } - nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %d done", - g->name, powermode); + nvgpu_log(g, gpu_dbg_fn|gpu_dbg_gpu_dbg, "%s powergate mode = %s done", + g->name, disable_powergate ? "disable" : "enable"); return err; } -- cgit v1.2.2