瀏覽代碼

Merge "disp: msm: sde: populate WB display encoder list before dsi"

qctecmdr 5 年之前
父節點
當前提交
6777ca872c
共有 1 個文件被更改,包括 43 次插入43 次删除
  1. 43 43
      msm/sde/sde_kms.c

+ 43 - 43
msm/sde/sde_kms.c

@@ -1319,102 +1319,102 @@ static int _sde_kms_setup_displays(struct drm_device *dev,
 		SDE_ERROR("capping number of displays to %d", max_encoders);
 	}
 
-	/* dsi */
-	for (i = 0; i < sde_kms->dsi_display_count &&
+	/* wb */
+	for (i = 0; i < sde_kms->wb_display_count &&
 		priv->num_encoders < max_encoders; ++i) {
-		display = sde_kms->dsi_displays[i];
+		display = sde_kms->wb_displays[i];
 		encoder = NULL;
 
 		memset(&info, 0x0, sizeof(info));
-		rc = dsi_display_get_info(NULL, &info, display);
+		rc = sde_wb_get_info(NULL, &info, display);
 		if (rc) {
-			SDE_ERROR("dsi get_info %d failed\n", i);
+			SDE_ERROR("wb get_info %d failed\n", i);
 			continue;
 		}
 
 		encoder = sde_encoder_init(dev, &info);
 		if (IS_ERR_OR_NULL(encoder)) {
-			SDE_ERROR("encoder init failed for dsi %d\n", i);
+			SDE_ERROR("encoder init failed for wb %d\n", i);
 			continue;
 		}
 
-		rc = dsi_display_drm_bridge_init(display, encoder);
+		rc = sde_wb_drm_init(display, encoder);
 		if (rc) {
-			SDE_ERROR("dsi bridge %d init failed, %d\n", i, rc);
+			SDE_ERROR("wb bridge %d init failed, %d\n", i, rc);
 			sde_encoder_destroy(encoder);
 			continue;
 		}
 
 		connector = sde_connector_init(dev,
-					encoder,
-					dsi_display_get_drm_panel(display),
-					display,
-					&dsi_ops,
-					DRM_CONNECTOR_POLL_HPD,
-					DRM_MODE_CONNECTOR_DSI);
+				encoder,
+				0,
+				display,
+				&wb_ops,
+				DRM_CONNECTOR_POLL_HPD,
+				DRM_MODE_CONNECTOR_VIRTUAL);
 		if (connector) {
 			priv->encoders[priv->num_encoders++] = encoder;
 			priv->connectors[priv->num_connectors++] = connector;
 		} else {
-			SDE_ERROR("dsi %d connector init failed\n", i);
-			dsi_display_drm_bridge_deinit(display);
-			sde_encoder_destroy(encoder);
-			continue;
-		}
-
-		rc = dsi_display_drm_ext_bridge_init(display,
-					encoder, connector);
-		if (rc) {
-			SDE_ERROR("dsi %d ext bridge init failed\n", rc);
-			dsi_display_drm_bridge_deinit(display);
-			sde_connector_destroy(connector);
+			SDE_ERROR("wb %d connector init failed\n", i);
+			sde_wb_drm_deinit(display);
 			sde_encoder_destroy(encoder);
 		}
 	}
 
-
-	/* wb */
-	for (i = 0; i < sde_kms->wb_display_count &&
+	/* dsi */
+	for (i = 0; i < sde_kms->dsi_display_count &&
 		priv->num_encoders < max_encoders; ++i) {
-		display = sde_kms->wb_displays[i];
+		display = sde_kms->dsi_displays[i];
 		encoder = NULL;
 
 		memset(&info, 0x0, sizeof(info));
-		rc = sde_wb_get_info(NULL, &info, display);
+		rc = dsi_display_get_info(NULL, &info, display);
 		if (rc) {
-			SDE_ERROR("wb get_info %d failed\n", i);
+			SDE_ERROR("dsi get_info %d failed\n", i);
 			continue;
 		}
 
 		encoder = sde_encoder_init(dev, &info);
 		if (IS_ERR_OR_NULL(encoder)) {
-			SDE_ERROR("encoder init failed for wb %d\n", i);
+			SDE_ERROR("encoder init failed for dsi %d\n", i);
 			continue;
 		}
 
-		rc = sde_wb_drm_init(display, encoder);
+		rc = dsi_display_drm_bridge_init(display, encoder);
 		if (rc) {
-			SDE_ERROR("wb bridge %d init failed, %d\n", i, rc);
+			SDE_ERROR("dsi bridge %d init failed, %d\n", i, rc);
 			sde_encoder_destroy(encoder);
 			continue;
 		}
 
 		connector = sde_connector_init(dev,
-				encoder,
-				0,
-				display,
-				&wb_ops,
-				DRM_CONNECTOR_POLL_HPD,
-				DRM_MODE_CONNECTOR_VIRTUAL);
+					encoder,
+					dsi_display_get_drm_panel(display),
+					display,
+					&dsi_ops,
+					DRM_CONNECTOR_POLL_HPD,
+					DRM_MODE_CONNECTOR_DSI);
 		if (connector) {
 			priv->encoders[priv->num_encoders++] = encoder;
 			priv->connectors[priv->num_connectors++] = connector;
 		} else {
-			SDE_ERROR("wb %d connector init failed\n", i);
-			sde_wb_drm_deinit(display);
+			SDE_ERROR("dsi %d connector init failed\n", i);
+			dsi_display_drm_bridge_deinit(display);
+			sde_encoder_destroy(encoder);
+			continue;
+		}
+
+		rc = dsi_display_drm_ext_bridge_init(display,
+					encoder, connector);
+		if (rc) {
+			SDE_ERROR("dsi %d ext bridge init failed\n", rc);
+			dsi_display_drm_bridge_deinit(display);
+			sde_connector_destroy(connector);
 			sde_encoder_destroy(encoder);
 		}
 	}
+
 	/* dp */
 	for (i = 0; i < sde_kms->dp_display_count &&
 			priv->num_encoders < max_encoders; ++i) {