From 49a0dd3ef43389aa16f8251f255e7c34af8485fc Mon Sep 17 00:00:00 2001 From: Ritesh Kumar Date: Thu, 28 Jan 2021 19:56:52 +0530 Subject: [PATCH] disp: msm: dsi: Fix DFPS sequence when constant fps is enabled When DFPS and dynamic clock switch with constant fps are enabled, wait for dynamic refresh done only if clock switch is triggered. In case where only fps changes, clock remains same. So, wait for dynamic refresh done is not required. Change-Id: I1a96d8d6756086afe2cd6e5bdc19be27c2ffed92 Signed-off-by: Ritesh Kumar --- msm/dsi/dsi_drm.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/msm/dsi/dsi_drm.c b/msm/dsi/dsi_drm.c index 40b168b16fdc..d93d3867eee6 100644 --- a/msm/dsi/dsi_drm.c +++ b/msm/dsi/dsi_drm.c @@ -1057,8 +1057,16 @@ int dsi_conn_post_kickoff(struct drm_connector *connector, return -EINVAL; } + /* + * When both DFPS and dynamic clock switch with constant + * fps features are enabled, wait for dynamic refresh done + * only in case of clock switch. + * In case where only fps changes, clock remains same. + * So, wait for dynamic refresh done is not required. + */ if ((ctrl_version >= DSI_CTRL_VERSION_2_5) && - (dyn_clk_caps->maintain_const_fps)) { + (dyn_clk_caps->maintain_const_fps) && + (adj_mode.dsi_mode_flags & DSI_MODE_FLAG_DYN_CLK)) { display_for_each_ctrl(i, display) { ctrl = &display->ctrl[i]; rc = dsi_ctrl_wait4dynamic_refresh_done(