Merge "disp: msm: sde: use new state when checking conn-crtc association" into display-kernel.lnx.5.4
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
f04e775ee5
@@ -4873,6 +4873,7 @@ static int sde_crtc_atomic_check(struct drm_crtc *crtc,
|
|||||||
struct sde_multirect_plane_states *multirect_plane = NULL;
|
struct sde_multirect_plane_states *multirect_plane = NULL;
|
||||||
struct drm_connector *conn;
|
struct drm_connector *conn;
|
||||||
struct drm_connector_list_iter conn_iter;
|
struct drm_connector_list_iter conn_iter;
|
||||||
|
struct drm_connector_state *conn_state;
|
||||||
|
|
||||||
if (!crtc) {
|
if (!crtc) {
|
||||||
SDE_ERROR("invalid crtc\n");
|
SDE_ERROR("invalid crtc\n");
|
||||||
@@ -4908,6 +4909,19 @@ static int sde_crtc_atomic_check(struct drm_crtc *crtc,
|
|||||||
if (state->active_changed)
|
if (state->active_changed)
|
||||||
state->mode_changed = true;
|
state->mode_changed = true;
|
||||||
|
|
||||||
|
/* identify connectors attached to this crtc */
|
||||||
|
cstate->num_connectors = 0;
|
||||||
|
drm_connector_list_iter_begin(dev, &conn_iter);
|
||||||
|
drm_for_each_connector_iter(conn, &conn_iter) {
|
||||||
|
conn_state = drm_atomic_get_connector_state(state->state, conn);
|
||||||
|
|
||||||
|
if (conn_state && conn_state->crtc == crtc &&
|
||||||
|
cstate->num_connectors < MAX_CONNECTORS) {
|
||||||
|
cstate->connectors[cstate->num_connectors++] = conn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
drm_connector_list_iter_end(&conn_iter);
|
||||||
|
|
||||||
rc = _sde_crtc_check_dest_scaler_data(crtc, state);
|
rc = _sde_crtc_check_dest_scaler_data(crtc, state);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
SDE_ERROR("crtc%d failed dest scaler check %d\n",
|
SDE_ERROR("crtc%d failed dest scaler check %d\n",
|
||||||
@@ -4922,17 +4936,6 @@ static int sde_crtc_atomic_check(struct drm_crtc *crtc,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* identify connectors attached to this crtc */
|
|
||||||
cstate->num_connectors = 0;
|
|
||||||
|
|
||||||
drm_connector_list_iter_begin(dev, &conn_iter);
|
|
||||||
drm_for_each_connector_iter(conn, &conn_iter)
|
|
||||||
if (conn->state && conn->state->crtc == crtc &&
|
|
||||||
cstate->num_connectors < MAX_CONNECTORS) {
|
|
||||||
cstate->connectors[cstate->num_connectors++] = conn;
|
|
||||||
}
|
|
||||||
drm_connector_list_iter_end(&conn_iter);
|
|
||||||
|
|
||||||
_sde_crtc_setup_is_ppsplit(state);
|
_sde_crtc_setup_is_ppsplit(state);
|
||||||
_sde_crtc_setup_lm_bounds(crtc, state);
|
_sde_crtc_setup_lm_bounds(crtc, state);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user