Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b87fed55 authored by Pawan Kumar's avatar Pawan Kumar
Browse files

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: default avatarPawan Kumar <pavaku@codeaurora.org>
parent d80c39cd
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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;