diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c index 024d0a94eeed..1498081532a6 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c @@ -396,8 +396,10 @@ static int mdss_mdp_video_add_vsync_handler(struct mdss_mdp_ctl *ctl, irq_en = true; } spin_unlock_irqrestore(&ctx->vsync_lock, flags); - if (irq_en) + if (irq_en) { + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); video_vsync_irq_enable(ctl, false); + } exit: return ret; } @@ -424,8 +426,10 @@ static int mdss_mdp_video_remove_vsync_handler(struct mdss_mdp_ctl *ctl, irq_dis = true; } spin_unlock_irqrestore(&ctx->vsync_lock, flags); - if (irq_dis) + if (irq_dis) { video_vsync_irq_disable(ctl); + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF); + } return 0; }