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 <yvulapu@codeaurora.org>
This commit is contained in:
@@ -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) {
|
if (crtc->state->mode_changed || sde_kms->perf.catalog->uidle_cfg.dirty) {
|
||||||
sde_core_perf_crtc_update_uidle(crtc, true);
|
sde_core_perf_crtc_update_uidle(crtc, true);
|
||||||
} else if (!test_bit(SDE_CRTC_DIRTY_UIDLE, &sde_crtc->revalidate_mask) &&
|
} 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);
|
sde_core_perf_uidle_setup_ctl(crtc, false);
|
||||||
|
|
||||||
test_and_clear_bit(SDE_CRTC_DIRTY_UIDLE, &sde_crtc->revalidate_mask);
|
test_and_clear_bit(SDE_CRTC_DIRTY_UIDLE, &sde_crtc->revalidate_mask);
|
||||||
|
@@ -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];
|
struct sde_encoder_phys *phys = sde_enc->phys_encs[i];
|
||||||
|
|
||||||
if (phys && phys->hw_ctl && phys->hw_ctl->ops.uidle_enable) {
|
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);
|
phys->hw_ctl->ops.uidle_enable(phys->hw_ctl, enable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user