Blob Blame History Raw
From: Rob Clark <robdclark@gmail.com>
Date: Tue, 17 Oct 2017 09:39:53 -0400
Subject: drm/msm/mdp5: disable vblanks when crtc is off
Git-commit: 0033e1b523f6d6a60ff7beaaa923cd7656a72959
Patch-mainline: v4.15-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166

Signed-off-by: Rob Clark <robdclark@gmail.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
@@ -422,6 +422,9 @@ static void mdp5_crtc_atomic_disable(str
 	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(stru
 
 	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);