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

index 6fcb58ab718cd9c986155f50eb55cccf07c22c32..436bf628ef9cb61794ec59d2f8fededdc3cf9113 100644 (file)
@@ -422,6 +422,9 @@ static void mdp5_crtc_atomic_disable(struct drm_crtc *crtc,
        if (WARN_ON(!mdp5_crtc->enabled))
                return;
 
+       /* Disable/save vblank irq handling before power is disabled */
+       drm_crtc_vblank_off(crtc);
+
        if (mdp5_cstate->cmd_mode)
                mdp_irq_unregister(&mdp5_kms->base, &mdp5_crtc->pp_done);
 
@@ -446,6 +449,9 @@ static void mdp5_crtc_atomic_enable(struct drm_crtc *crtc,
 
        pm_runtime_get_sync(dev);
 
+       /* Restore vblank irq handling after power is enabled */
+       drm_crtc_vblank_on(crtc);
+
        mdp5_crtc_mode_set_nofb(crtc);
 
        mdp_irq_register(&mdp5_kms->base, &mdp5_crtc->err);