diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c
index 1c15b73efc6f2..d3cb4ba83731f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c
@@ -3182,7 +3182,11 @@ gk20a_pmu_init(struct nvkm_object *object)
 	nvkm_timer_alarm(priv, PMU_DVFS_INTERVAL, &priv->alarm);
 
 	mutex_lock(&priv->elpg_mutex);
-	priv->elpg_disable_depth = 0;
+	/*
+	 * ELPG will be enabled when PMU finishes booting, so setting the
+	 * counter to 1 initialy.
+	 */
+	priv->elpg_disable_depth = 1;
 	mutex_unlock(&priv->elpg_mutex);
 
 	mutex_lock(&priv->clk_gating_mutex);
@@ -3204,10 +3208,6 @@ 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 a0507655c4b65..450b14220b728 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c
@@ -2613,9 +2613,6 @@ 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;
@@ -2694,7 +2691,11 @@ gm20b_pmu_init(struct nvkm_object *object) {
 	priv->pmu_setup_elpg = gm20b_pmu_setup_elpg;
 
 	mutex_lock(&priv->elpg_mutex);
-	priv->elpg_disable_depth = 0;
+	/*
+	 * ELPG will be enabled when PMU finishes booting, so setting the
+	 * counter to 1 initialy.
+	 */
+	priv->elpg_disable_depth = 1;
 	mutex_unlock(&priv->elpg_mutex);
 
 	mutex_lock(&priv->clk_gating_mutex);