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

Commit 42bb12ce authored by Raviteja Tamatam's avatar Raviteja Tamatam
Browse files

disp: msm: sde: modify from fixed to variable programmable fetch start



With 120 fps panels and vfp method of dfps ,the vfp is very large in lower
fps and there is huge time gap between programmable fetch start (MDP vsync)
and panel vsync.  As fence is released early timing registers are modified
by the next commit before the previous timing parameters takes effect and
this is leading to underrun. With variable programmable fetch start MDP
vsync is close to panel vsync and avoids such condition.

Change-Id: Id88b5e2957bf4af751f49f1f32327715a34b102b
Signed-off-by: default avatarRaviteja Tamatam <travitej@codeaurora.org>
parent 454ccc1e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
 */

#define pr_fmt(fmt)	"[drm:%s:%d] " fmt, __func__, __LINE__
@@ -270,9 +270,9 @@ static void programmable_fetch_config(struct sde_encoder_phys *phys_enc,
	m = phys_enc->sde_kms->catalog;

	vfp_fetch_lines = programmable_fetch_get_num_lines(vid_enc,
							   timing, true);
							   timing, false);
	if (vfp_fetch_lines) {
		vert_total = get_vertical_total(timing, true);
		vert_total = get_vertical_total(timing, false);
		horiz_total = get_horizontal_total(timing);
		vfp_fetch_start_vsync_counter =
			(vert_total - vfp_fetch_lines) * horiz_total + 1;