Propossed patch

-- 
Ricardo Ribalda
diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
index 3fcaa98..50a7c93 100644
--- a/drivers/gpu/drm/i915/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
@@ -318,14 +318,23 @@ void intel_dp_stop_link_train(struct intel_dp *intel_dp)
 				DP_TRAINING_PATTERN_DISABLE);
 }
 
+#define N_TRIES 20
 void
 intel_dp_start_link_train(struct intel_dp *intel_dp)
 {
 	struct intel_connector *intel_connector = intel_dp->attached_connector;
+	int tries;
 
-	if (!intel_dp_link_training_clock_recovery(intel_dp))
-		goto failure_handling;
-	if (!intel_dp_link_training_channel_equalization(intel_dp))
+	for (tries = 0; tries < N_TRIES; tries++) {
+		if (!intel_dp_link_training_clock_recovery(intel_dp)){
+			msleep(10);
+			continue;
+		}
+		if (intel_dp_link_training_channel_equalization(intel_dp))
+			break;
+	}
+
+	if (tries == N_TRIES)
 		goto failure_handling;
 
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training Passed at Link Rate = %d, Lane count = %d",

Reply via email to