From 077d4c6da3f27c7cb2096fed26eb8e8c77fca77f Mon Sep 17 00:00:00 2001 From: Deepak Goyal Date: Thu, 15 Jun 2017 20:37:36 +0530 Subject: gpu : nvgpu: Update sub-feature mask for ELPG. This patch also adds new interface for GR INIT PARAM cmd and adds new pmu command to update sub-feature mask for ELPG. JIRA GPUT19X-20. Change-Id: Id3b3b65882c714f80a05de5660895258b26a08bd Signed-off-by: Deepak Goyal Reviewed-on: http://git-master/r/1503141 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/pmu/pmu_pg.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'drivers/gpu/nvgpu/common') diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_pg.c b/drivers/gpu/nvgpu/common/pmu/pmu_pg.c index 046f4d59..47ac8b64 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_pg.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_pg.c @@ -60,19 +60,19 @@ static void pmu_handle_pg_elpg_msg(struct gk20a *g, struct pmu_msg *msg, case PMU_PG_ELPG_MSG_ALLOW_ACK: nvgpu_pmu_dbg(g, "ALLOW is ack from PMU, eng - %d", elpg_msg->engine_id); - if (elpg_msg->engine_id == PMU_PG_ELPG_ENGINE_ID_GRAPHICS) - pmu->elpg_stat = PMU_ELPG_STAT_ON; - else if (elpg_msg->engine_id == PMU_PG_ELPG_ENGINE_ID_MS) + if (elpg_msg->engine_id == PMU_PG_ELPG_ENGINE_ID_MS) pmu->mscg_transition_state = PMU_ELPG_STAT_ON; + else + pmu->elpg_stat = PMU_ELPG_STAT_ON; break; case PMU_PG_ELPG_MSG_DISALLOW_ACK: nvgpu_pmu_dbg(g, "DISALLOW is ack from PMU, eng - %d", elpg_msg->engine_id); - if (elpg_msg->engine_id == PMU_PG_ELPG_ENGINE_ID_GRAPHICS) - pmu->elpg_stat = PMU_ELPG_STAT_OFF; - else if (elpg_msg->engine_id == PMU_PG_ELPG_ENGINE_ID_MS) + if (elpg_msg->engine_id == PMU_PG_ELPG_ENGINE_ID_MS) pmu->mscg_transition_state = PMU_ELPG_STAT_OFF; + else + pmu->elpg_stat = PMU_ELPG_STAT_OFF; if (pmu->pmu_state == PMU_STATE_ELPG_BOOTING) { if (g->ops.pmu.pmu_pg_engines_feature_list && @@ -412,6 +412,9 @@ static int pmu_pg_init_send(struct gk20a *g, u32 pg_engine_id) gk20a_pmu_cmd_post(g, &cmd, NULL, NULL, PMU_COMMAND_QUEUE_HPQ, pmu_handle_pg_elpg_msg, pmu, &seq, ~0); + if (g->ops.pmu.pmu_pg_set_sub_feature_mask) + g->ops.pmu.pmu_pg_set_sub_feature_mask(g, pg_engine_id); + return 0; } -- cgit v1.2.2