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,  	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); | 
