disp: msm: sde: add one-shot qsync mode support

Add support to enable one-shot mode during qsync
update. This feature ensures the frame drops can be
reduced due to delayed software flush for the
current commit. Also, add changes to disable the qsync
feature post commit.

Change-Id: Icb158853f52284bcf8fa641e5f62200c5460b660
Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
This commit is contained in:
Jayaprakash
2019-09-26 11:55:26 +05:30
förälder ad40a300a1
incheckning 985ffddc71
7 ändrade filer med 63 tillägg och 8 borttagningar

Visa fil

@@ -58,6 +58,7 @@ static const struct drm_prop_enum_list e_power_mode[] = {
static const struct drm_prop_enum_list e_qsync_mode[] = {
{SDE_RM_QSYNC_DISABLED, "none"},
{SDE_RM_QSYNC_CONTINUOUS_MODE, "continuous"},
{SDE_RM_QSYNC_ONE_SHOT_MODE, "one_shot"},
};
static const struct drm_prop_enum_list e_frame_trigger_mode[] = {
{FRAME_DONE_WAIT_DEFAULT, "default"},
@@ -646,6 +647,27 @@ void sde_connector_set_qsync_params(struct drm_connector *connector)
}
}
void sde_connector_complete_qsync_commit(struct drm_connector *conn,
struct msm_display_kickoff_params *params)
{
struct sde_connector *c_conn;
if (!conn || !params) {
SDE_ERROR("invalid params\n");
return;
}
c_conn = to_sde_connector(conn);
if (c_conn && c_conn->qsync_updated &&
(c_conn->qsync_mode == SDE_RM_QSYNC_ONE_SHOT_MODE)) {
/* Reset qsync states if mode is one shot */
params->qsync_mode = c_conn->qsync_mode = 0;
params->qsync_update = true;
SDE_EVT32(conn->base.id, c_conn->qsync_mode);
}
}
static int _sde_connector_update_hdr_metadata(struct sde_connector *c_conn,
struct sde_connector_state *c_state)
{