浏览代码

disp: msm: sde: fix dsi bridge init

Initialization of DSI external bridge must be done within
the initialization of DSI displays. The current method
has the drm_ext_bridge_init being called outside the
loop of DSI displays, and it will fail as the display,
encoder and connector handle are not present.
This fixes the regresion caused by
commit edef6ae04060 ("disp: msm: dsi: snapshot of dsi from
4.14 to 4.19").

Change-Id: I50d0a303c2c8f4323e46cf14df1b071ebae80ceb
Signed-off-by: Satya Rama Aditya Pinapala <[email protected]>
Satya Rama Aditya Pinapala 6 年之前
父节点
当前提交
7e77b664bb
共有 1 个文件被更改,包括 8 次插入7 次删除
  1. 8 7
      msm/sde/sde_kms.c

+ 8 - 7
msm/sde/sde_kms.c

@@ -1296,17 +1296,18 @@ static int _sde_kms_setup_displays(struct drm_device *dev,
 			sde_encoder_destroy(encoder);
 			continue;
 		}
-	}
 
-	rc = dsi_display_drm_ext_bridge_init(display,
+		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_encoder_destroy(encoder);
-		sde_connector_destroy(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);
+		}
 	}
 
+
 	/* wb */
 	for (i = 0; i < sde_kms->wb_display_count &&
 		priv->num_encoders < max_encoders; ++i) {