Quellcode durchsuchen

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

Linux Build Service Account vor 5 Jahren
Ursprung
Commit
f04e775ee5
1 geänderte Dateien mit 14 neuen und 11 gelöschten Zeilen
  1. 14 11
      msm/sde/sde_crtc.c

+ 14 - 11
msm/sde/sde_crtc.c

@@ -4873,6 +4873,7 @@ static int sde_crtc_atomic_check(struct drm_crtc *crtc,
 	struct sde_multirect_plane_states *multirect_plane = NULL;
 	struct drm_connector *conn;
 	struct drm_connector_list_iter conn_iter;
+	struct drm_connector_state *conn_state;
 
 	if (!crtc) {
 		SDE_ERROR("invalid crtc\n");
@@ -4908,6 +4909,19 @@ static int sde_crtc_atomic_check(struct drm_crtc *crtc,
 	if (state->active_changed)
 		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);
 	if (rc) {
 		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;
 	}
 
-	/* 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_lm_bounds(crtc, state);