disp: msm: update POMS detection logic

Currently, SDE relies on DSI to set a flag for POMS however
if a power ON modeset comes with a different mode than
previously configured, DSI is unable to detect the mode change
and does not set the flag nor perform the mode switch itself.

DSI should always align the panel mode to match the timing node
that is selected regardless of prior configurations.

SDE encoder can detect if POMS is required for the INTF block
without the flag from DSI by comparing the currently configured
INTF mode with the panel mode that is being set. The POMS flag
from DSI is still needed for any active panel mode change so
that the post-modeset cleanup operations are triggered.

Change-Id: Ib198b3098f21338ab35b2022b04be1c01c4cbd94
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
This commit is contained in:
Steve Cohen
2020-09-10 19:53:26 -04:00
父節點 13154febbc
當前提交 38a8d2134b
共有 2 個文件被更改,包括 23 次插入11 次删除

查看文件

@@ -4931,10 +4931,8 @@ static int dsi_display_set_mode_sub(struct dsi_display *display,
}
SDE_EVT32(mode->dsi_mode_flags, mode->panel_mode);
if (mode->dsi_mode_flags & DSI_MODE_FLAG_POMS) {
display->config.panel_mode = mode->panel_mode;
display->panel->panel_mode = mode->panel_mode;
}
display->panel->panel_mode = mode->panel_mode;
rc = dsi_panel_get_host_cfg_for_mode(display->panel,
mode,
&display->config);