{
        struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc);
        struct mdp4_kms *mdp4_kms = get_kms(crtc);
+       unsigned long flags;
 
        DBG("%s", mdp4_crtc->name);
 
        mdp_irq_unregister(&mdp4_kms->base, &mdp4_crtc->err);
        mdp4_disable(mdp4_kms);
 
+       if (crtc->state->event && !crtc->state->active) {
+               WARN_ON(mdp4_crtc->event);
+               spin_lock_irqsave(&mdp4_kms->dev->event_lock, flags);
+               drm_crtc_send_vblank_event(crtc, crtc->state->event);
+               crtc->state->event = NULL;
+               spin_unlock_irqrestore(&mdp4_kms->dev->event_lock, flags);
+       }
+
        mdp4_crtc->enabled = false;
 }