From 41b5f71a3a131dd25967631d8eb9481d6e692558 Mon Sep 17 00:00:00 2001 From: Deepak Goyal Date: Mon, 9 Nov 2015 14:31:42 +0530 Subject: [PATCH] Revert "drm/nouveau: pmu: Change the init value of elpg_disable_depth to 1" This reverts commit b575426f7fc9b27dab0b0f517efa8065edaa4b67. Changing the default value is causing the existing logic(to enable/disable ELPG) to fail. BUG=none TEST=See ELPG stats to confirm ELPG entry/exit. Change-Id: I0f951686937b9e264a0bb5858667fe68a441b34e Signed-off-by: Deepak Goyal Reviewed-on: https://chromium-review.googlesource.com/311550 Commit-Ready: Mark Zhang Tested-by: Mark Zhang Reviewed-by: Mark Zhang Reviewed-by: Tomasz Figa --- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 10 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c | 9 ++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c index db0a4609a2856..1b50f1e348009 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c @@ -3180,11 +3180,7 @@ gk20a_pmu_init(struct nvkm_object *object) nvkm_timer_alarm(priv, PMU_DVFS_INTERVAL, &priv->alarm); mutex_lock(&priv->elpg_mutex); - /* - * ELPG will be enabled when PMU finishes booting, so setting the - * counter to 1 initialy. - */ - priv->elpg_disable_depth = 1; + priv->elpg_disable_depth = 0; mutex_unlock(&priv->elpg_mutex); mutex_lock(&priv->clk_gating_mutex); @@ -3206,6 +3202,10 @@ gk20a_pmu_fini(struct nvkm_object *object, bool suspend) cancel_work_sync(&priv->base.recv.work); cancel_work_sync(&priv->pg_init); + mutex_lock(&priv->elpg_mutex); + priv->elpg_disable_depth = 0; + mutex_unlock(&priv->elpg_mutex); + mutex_lock(&priv->clk_gating_mutex); priv->clk_gating_disable_depth = 0; mutex_unlock(&priv->clk_gating_mutex); diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c index e22282ecc9f27..c9a7025124790 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c @@ -2592,6 +2592,9 @@ gm20b_pmu_fini(struct nvkm_object *object, bool suspend) gk20a_pmu_enable(priv, pmc, false); priv->isr_enabled = false; mutex_unlock(&priv->isr_mutex); + mutex_lock(&priv->elpg_mutex); + priv->elpg_disable_depth = 0; + mutex_unlock(&priv->elpg_mutex); priv->pmu_state = PMU_STATE_OFF; mutex_lock(&priv->clk_gating_mutex); priv->clk_gating_disable_depth = 0; @@ -2668,11 +2671,7 @@ gm20b_pmu_init(struct nvkm_object *object) { priv->pmu_setup_elpg = gm20b_pmu_setup_elpg; mutex_lock(&priv->elpg_mutex); - /* - * ELPG will be enabled when PMU finishes booting, so setting the - * counter to 1 initialy. - */ - priv->elpg_disable_depth = 1; + priv->elpg_disable_depth = 0; mutex_unlock(&priv->elpg_mutex); mutex_lock(&priv->clk_gating_mutex);