瀏覽代碼

disp: msm: sde: reset CTL_UIDLE_ACTIVE register only if uidle is disabled

This change sets CTL_UIDLE_ACTIVE register whenever uidle
is enabled and resets it only when uidle is disabled.

Change-Id: I0393d1585df4fdb79a844d04df62ac9eda949232
Signed-off-by: Yashwanth <[email protected]>
Yashwanth 3 年之前
父節點
當前提交
b9b744a123
共有 2 個文件被更改,包括 3 次插入2 次删除
  1. 1 1
      msm/sde/sde_crtc.c
  2. 2 1
      msm/sde/sde_encoder.c

+ 1 - 1
msm/sde/sde_crtc.c

@@ -3606,7 +3606,7 @@ static void sde_crtc_atomic_begin(struct drm_crtc *crtc,
 	if (crtc->state->mode_changed || sde_kms->perf.catalog->uidle_cfg.dirty) {
 		sde_core_perf_crtc_update_uidle(crtc, true);
 	} else if (!test_bit(SDE_CRTC_DIRTY_UIDLE, &sde_crtc->revalidate_mask) &&
-			sde_kms->perf.uidle_enabled)
+			!sde_kms->perf.uidle_enabled)
 		sde_core_perf_uidle_setup_ctl(crtc, false);
 
 	test_and_clear_bit(SDE_CRTC_DIRTY_UIDLE, &sde_crtc->revalidate_mask);

+ 2 - 1
msm/sde/sde_encoder.c

@@ -140,7 +140,8 @@ void sde_encoder_uidle_enable(struct drm_encoder *drm_enc, bool enable)
 		struct sde_encoder_phys *phys = sde_enc->phys_encs[i];
 
 		if (phys && phys->hw_ctl && phys->hw_ctl->ops.uidle_enable) {
-			SDE_EVT32(DRMID(drm_enc), enable);
+			if (enable)
+				SDE_EVT32(DRMID(drm_enc), enable);
 			phys->hw_ctl->ops.uidle_enable(phys->hw_ctl, enable);
 		}
 	}