disp: msm: sde: update avr mode config during commit prepare
Add changes to support avr mode config update during prepare commit which happens before gpu fence wait for the input buffers. Change-Id: Ib2cb5b7e1f10501914c003f6cf066b85048f79d4 Signed-off-by: Kalyan Thota <kalyant@codeaurora.org> Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
This commit is contained in:
@@ -640,15 +640,17 @@ void sde_connector_set_qsync_params(struct drm_connector *connector)
|
||||
if (prop_dirty) {
|
||||
qsync_propval = sde_connector_get_property(c_conn->base.state,
|
||||
CONNECTOR_PROP_QSYNC_MODE);
|
||||
SDE_DEBUG("updated qsync mode %d -> %d\n", c_conn->qsync_mode,
|
||||
qsync_propval);
|
||||
c_conn->qsync_updated = true;
|
||||
c_conn->qsync_mode = qsync_propval;
|
||||
if (qsync_propval != c_conn->qsync_mode) {
|
||||
SDE_DEBUG("updated qsync mode %d -> %d\n",
|
||||
c_conn->qsync_mode, qsync_propval);
|
||||
c_conn->qsync_updated = true;
|
||||
c_conn->qsync_mode = qsync_propval;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sde_connector_complete_qsync_commit(struct drm_connector *conn,
|
||||
struct msm_display_kickoff_params *params)
|
||||
struct msm_display_conn_params *params)
|
||||
{
|
||||
struct sde_connector *c_conn;
|
||||
|
||||
@@ -782,13 +784,6 @@ int sde_connector_pre_kickoff(struct drm_connector *connector)
|
||||
|
||||
params.rois = &c_state->rois;
|
||||
params.hdr_meta = &c_state->hdr_meta;
|
||||
params.qsync_update = false;
|
||||
|
||||
if (c_conn->qsync_updated) {
|
||||
params.qsync_mode = c_conn->qsync_mode;
|
||||
params.qsync_update = true;
|
||||
SDE_EVT32(connector->base.id, params.qsync_mode);
|
||||
}
|
||||
|
||||
SDE_EVT32_VERBOSE(connector->base.id);
|
||||
|
||||
@@ -798,6 +793,43 @@ end:
|
||||
return rc;
|
||||
}
|
||||
|
||||
int sde_connector_prepare_commit(struct drm_connector *connector)
|
||||
{
|
||||
struct sde_connector *c_conn;
|
||||
struct sde_connector_state *c_state;
|
||||
struct msm_display_conn_params params;
|
||||
int rc;
|
||||
|
||||
if (!connector) {
|
||||
SDE_ERROR("invalid argument\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
c_conn = to_sde_connector(connector);
|
||||
c_state = to_sde_connector_state(connector->state);
|
||||
if (!c_conn->display) {
|
||||
SDE_ERROR("invalid connector display\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!c_conn->ops.prepare_commit)
|
||||
return 0;
|
||||
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
|
||||
if (c_conn->qsync_updated) {
|
||||
params.qsync_mode = c_conn->qsync_mode;
|
||||
params.qsync_update = true;
|
||||
}
|
||||
|
||||
rc = c_conn->ops.prepare_commit(c_conn->display, ¶ms);
|
||||
|
||||
SDE_EVT32(connector->base.id, params.qsync_mode,
|
||||
params.qsync_update, rc);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
void sde_connector_helper_bridge_disable(struct drm_connector *connector)
|
||||
{
|
||||
int rc;
|
||||
|
Reference in New Issue
Block a user