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:
parent
85fa4712e8
commit
94b2cc41bd
1 changed files with 9 additions and 0 deletions
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue