|
@@ -1988,9 +1988,6 @@ static int _sde_encoder_rc_pre_modeset(struct drm_encoder *drm_enc,
|
|
|
{
|
|
|
int ret = 0;
|
|
|
|
|
|
- /* cancel delayed off work, if any */
|
|
|
- _sde_encoder_rc_cancel_delayed(sde_enc, sw_event);
|
|
|
-
|
|
|
mutex_lock(&sde_enc->rc_lock);
|
|
|
|
|
|
if (sde_enc->rc_state == SDE_ENC_RC_STATE_OFF) {
|
|
@@ -2497,6 +2494,9 @@ static void sde_encoder_virt_mode_set(struct drm_encoder *drm_enc,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ /* cancel delayed off work, if any */
|
|
|
+ kthread_cancel_delayed_work_sync(&sde_enc->delayed_off_work);
|
|
|
+
|
|
|
/* release resources before seamless mode change */
|
|
|
msm_mode = &c_state->msm_mode;
|
|
|
ret = sde_encoder_virt_modeset_rc(drm_enc, msm_mode, true);
|