diff options
-rw-r--r-- | drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 7 |
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); |