msm: mdss: Fix under run on HDMI on adb shell stop

Wait for at least one vsync on HDMI interface for
proper TG OFF. Calculate wait time based on hdmi
refresh rate.

Change-Id: Ia935886ba4cce9cf8d6ce994143b07060f648620
Signed-off-by: Pawan Kumar <pavaku@codeaurora.org>
This commit is contained in:
Pawan Kumar 2013-09-19 19:44:01 +05:30 committed by David Keitel
parent 85fa4712e8
commit 94b2cc41bd

View file

@ -294,6 +294,7 @@ static int mdss_mdp_video_stop(struct mdss_mdp_ctl *ctl)
struct mdss_mdp_video_ctx *ctx;
struct mdss_mdp_vsync_handler *tmp, *handle;
int rc;
u32 frame_rate = 0;
pr_debug("stop ctl=%d\n", ctl->num);
@ -313,6 +314,14 @@ static int mdss_mdp_video_stop(struct mdss_mdp_ctl *ctl)
WARN(rc, "intf %d blank error (%d)\n", ctl->intf_num, rc);
mdp_video_write(ctx, MDSS_MDP_REG_INTF_TIMING_ENGINE_EN, 0);
/* wait for at least one VSYNC on HDMI intf for proper TG OFF */
if (MDSS_INTF_HDMI == ctx->intf_type) {
frame_rate = mdss_panel_get_framerate
(&(ctl->panel_data->panel_info));
if (!(frame_rate >= 24 && frame_rate <= 240))
frame_rate = 24;
msleep((1000/frame_rate) + 1);
}
mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF, false);
ctx->timegen_en = false;