disp: msm: sde: delay encoder disable for clone mode

Clone WB encoder disable before posted start commit
trigger adds wb_wait delay in current frame trigger
sequence. This adds 1 frame jank if CWB enable/disable
path exercised periodically like 100ms or 200ms. This
change delays CWB encoder disable after frame trigger
and vsync/wr_ptr wait to avoid jank issue.

Change-Id: Ifa10042473397b37396d217d2410e7cf5a1e32a1
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
This commit is contained in:
Dhaval Patel
2020-08-17 23:21:21 -07:00
committed by Gerrit - the friendly Code Review server
parent 153926f999
commit 28826f09cf
2 changed files with 64 additions and 10 deletions

View File

@@ -1264,8 +1264,13 @@ static int _sde_encoder_update_rsc_client(
qsync_mode = sde_connector_get_qsync_mode(
sde_enc->cur_master->connector);
if (sde_encoder_in_clone_mode(drm_enc) ||
(disp_info->display_type != SDE_CONNECTOR_PRIMARY) ||
/* left primary encoder keep vote */
if (sde_encoder_in_clone_mode(drm_enc)) {
SDE_EVT32(rsc_state, SDE_EVTLOG_FUNC_CASE1);
return 0;
}
if ((disp_info->display_type != SDE_CONNECTOR_PRIMARY) ||
(disp_info->display_type && qsync_mode))
rsc_state = enable ? SDE_RSC_CLK_STATE : SDE_RSC_IDLE_STATE;
else if (sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE))