[PATCH] dp-mst-register

Chris Wilson chris at chris-wilson.co.uk
Tue Jan 10 10:46:41 UTC 2017


---
 drivers/gpu/drm/i915/intel_dp.c     | 11 ++++++++++-
 drivers/gpu/drm/i915/intel_dp_mst.c | 12 ++++--------
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 624834c1e485..5e226338625b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4736,7 +4736,16 @@ intel_dp_connector_register(struct drm_connector *connector)
 		      intel_dp->aux.name, connector->kdev->kobj.name);
 
 	intel_dp->aux.dev = connector->kdev;
-	return drm_dp_aux_register(&intel_dp->aux);
+	ret = drm_dp_aux_register(&intel_dp->aux);
+	if (ret)
+		return ret;
+
+	if (intel_dp->mbr.cbs) {
+		intel_dp->can_mst = true;
+		intel_dp_configure_mst(intel_dp);
+	}
+
+	return 0;
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index c93c1999a494..d46c99bbf87d 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -580,19 +580,15 @@ intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_ba
 {
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct drm_device *dev = intel_dig_port->base.base.dev;
-	int ret;
 
-	intel_dp->can_mst = true;
+	intel_dp->can_mst = false;
 	intel_dp->mst_mgr.cbs = &mst_cbs;
 
 	/* create encoders */
 	intel_dp_create_fake_mst_encoders(intel_dig_port);
-	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev->dev, &intel_dp->aux, 16, 3, conn_base_id);
-	if (ret) {
-		intel_dp->can_mst = false;
-		return ret;
-	}
-	return 0;
+	return drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev->dev,
+					    &intel_dp->aux, 16, 3,
+					    conn_base_id);
 }
 
 void
-- 
2.11.0



More information about the Intel-gfx-trybot mailing list