diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index c4807b54da..ccf0fdeb41 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -2695,7 +2695,8 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc) !(msm_is_mode_seamless_vrr(cur_mode) || msm_is_mode_seamless_dms(cur_mode) || msm_is_mode_seamless_dyn_clk(cur_mode))) - kthread_cancel_delayed_work_sync(&sde_enc->delayed_off_work); + kthread_init_delayed_work(&sde_enc->delayed_off_work, + sde_encoder_off_work); ret = sde_encoder_resource_control(drm_enc, SDE_ENC_RC_EVENT_KICKOFF); if (ret) { @@ -2855,7 +2856,6 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc) */ sde_enc->crtc = NULL; memset(&sde_enc->mode_info, 0, sizeof(sde_enc->mode_info)); - kthread_cancel_delayed_work_sync(&sde_enc->delayed_off_work); SDE_DEBUG_ENC(sde_enc, "encoder disabled\n");