From f0e6a39c273c61707459251248ecf3e3b07d0b55 Mon Sep 17 00:00:00 2001 From: Aravind Venkateswaran Date: Wed, 14 May 2014 18:50:01 -0700 Subject: [PATCH] msm: mdss: modify MDSS idle power collapse exit sequence When MDSS is idle power-collapsed, any events that require hardware programming should result in exiting idle power collapse. Currently, this is only done whenever a screen udpate happens. However, it is possible that other APIs may be called prior to the actual screen update. To address these cases, add the exit sequence call at the interface level as well. Change-Id: I162e1c1c4137a2ba20ed0b76f0c182c2c931cc87 Signed-off-by: Aravind Venkateswaran --- drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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