drm: add vblank sent while disable crtc
authorYalong Liu <yalong.liu@amlogic.com>
Sun, 8 Apr 2018 09:19:18 +0000 (17:19 +0800)
committerYixun Lan <yixun.lan@amlogic.com>
Tue, 10 Apr 2018 01:19:18 +0000 (17:19 -0800)
PD#163846: add vblank sent while disable crtc
shutdown results in hung atomic commit cause DRM hangup a few secs

Change-Id: I54dcbe33b05ab9cb3487ae0509ce23e61e67a4ca
Signed-off-by: Yalong Liu <yalong.liu@amlogic.com>
drivers/amlogic/drm/am_meson_crtc.c

index 8c3e3c8..65dd99f 100644 (file)
@@ -166,7 +166,14 @@ void am_meson_crtc_enable(struct drm_crtc *crtc)
 
 void am_meson_crtc_disable(struct drm_crtc *crtc)
 {
-       //DRM_INFO("meson_crtc_disable!!\n");
+       DRM_INFO("%s\n", __func__);
+       if (crtc->state->event && !crtc->state->active) {
+               spin_lock_irq(&crtc->dev->event_lock);
+               drm_crtc_send_vblank_event(crtc, crtc->state->event);
+               spin_unlock_irq(&crtc->dev->event_lock);
+
+               crtc->state->event = NULL;
+       }
 }
 
 void am_meson_crtc_commit(struct drm_crtc *crtc)