drm/msm/mdp4: disable vblanks when crtc is off
authorRob Clark <robdclark@gmail.com>
Tue, 17 Oct 2017 13:39:39 +0000 (09:39 -0400)
committerRob Clark <robdclark@gmail.com>
Sat, 28 Oct 2017 15:01:34 +0000 (11:01 -0400)
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c

index 47fa2aba198301ce2d61102164af3dad9c494bc1..14bd3bd3e040076e2f6a5678e0c65ee4837eb7f4 100644 (file)
@@ -290,6 +290,9 @@ static void mdp4_crtc_atomic_disable(struct drm_crtc *crtc,
        if (WARN_ON(!mdp4_crtc->enabled))
                return;
 
+       /* Disable/save vblank irq handling before power is disabled */
+       drm_crtc_vblank_off(crtc);
+
        mdp_irq_unregister(&mdp4_kms->base, &mdp4_crtc->err);
        mdp4_disable(mdp4_kms);
 
@@ -308,6 +311,10 @@ static void mdp4_crtc_atomic_enable(struct drm_crtc *crtc,
                return;
 
        mdp4_enable(mdp4_kms);
+
+       /* Restore vblank irq handling after power is enabled */
+       drm_crtc_vblank_on(crtc);
+
        mdp_irq_register(&mdp4_kms->base, &mdp4_crtc->err);
 
        crtc_flush(crtc);