diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c index 2cde227b6fdf..c062174e5c5c 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c @@ -198,12 +198,17 @@ static inline void mdss_mdp_cmd_clk_on(struct mdss_mdp_cmd_ctx *ctx) if (cancel_delayed_work_sync(&ctx->pc_work)) pr_debug("deleted pending power collapse work\n"); - mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); - if (ctx->idle_pc) { + mdss_mdp_footswitch_ctrl_idle_pc(1, + &ctx->ctl->mfd->pdev->dev); + mdss_mdp_ctl_restore(ctx->ctl); + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); + if (mdss_mdp_cmd_tearcheck_setup(ctx->ctl)) pr_warn("tearcheck setup failed\n"); ctx->idle_pc = false; + } else { + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false); } mdss_mdp_ctl_intf_event