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 +++++++------------------ drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h | 2 +- drivers/gpu/nvgpu/gk20a/gk20a.h | 2 +- 3 files changed, 9 insertions(+), 20 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a') 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; } diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h index 781e2176..28db053c 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h @@ -120,7 +120,7 @@ dbg_profiler_object_data_from_prof_obj_entry(struct nvgpu_list_node *node) bool gk20a_dbg_gpu_broadcast_stop_trigger(struct channel_gk20a *ch); int gk20a_dbg_gpu_clear_broadcast_stop_trigger(struct channel_gk20a *ch); -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); bool nvgpu_check_and_set_global_reservation( struct dbg_session_gk20a *dbg_s, struct dbg_profiler_object_data *prof_obj); diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 96333277..4a344387 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -947,7 +947,7 @@ struct gpu_ops { struct nvgpu_dbg_gpu_reg_op *ops, u64 num_ops); int (*dbg_set_powergate)(struct dbg_session_gk20a *dbg_s, - u32 mode); + bool disable_powergate); bool (*check_and_set_global_reservation)( struct dbg_session_gk20a *dbg_s, struct dbg_profiler_object_data *prof_obj); -- cgit v1.2.2