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:
@@ -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)
|
||||
{
|
||||
|
Referens i nytt ärende
Block a user