aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
index 47fa2aba1983..14bd3bd3e040 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c
@@ -290,6 +290,9 @@ static void mdp4_crtc_atomic_disable(struct drm_crtc *crtc,
290 if (WARN_ON(!mdp4_crtc->enabled)) 290 if (WARN_ON(!mdp4_crtc->enabled))
291 return; 291 return;
292 292
293 /* Disable/save vblank irq handling before power is disabled */
294 drm_crtc_vblank_off(crtc);
295
293 mdp_irq_unregister(&mdp4_kms->base, &mdp4_crtc->err); 296 mdp_irq_unregister(&mdp4_kms->base, &mdp4_crtc->err);
294 mdp4_disable(mdp4_kms); 297 mdp4_disable(mdp4_kms);
295 298
@@ -308,6 +311,10 @@ static void mdp4_crtc_atomic_enable(struct drm_crtc *crtc,
308 return; 311 return;
309 312
310 mdp4_enable(mdp4_kms); 313 mdp4_enable(mdp4_kms);
314
315 /* Restore vblank irq handling after power is enabled */
316 drm_crtc_vblank_on(crtc);
317
311 mdp_irq_register(&mdp4_kms->base, &mdp4_crtc->err); 318 mdp_irq_register(&mdp4_kms->base, &mdp4_crtc->err);
312 319
313 crtc_flush(crtc); 320 crtc_flush(crtc);