@@ -4165,7 +4165,7 @@ static void intel_dp_handle_test_request(struct intel_dp *intel_dp,
case DP_TEST_LINK_TRAINING:
DRM_DEBUG_KMS("LINK_TRAINING test requested\n");
intel_dp->compliance_test_type = DP_TEST_LINK_TRAINING;
- response = intel_dp_autotest_link_training(intel_dp);
+ intel_dp_autotest_link_training(intel_dp);
break;
case DP_TEST_LINK_VIDEO_PATTERN:
DRM_DEBUG_KMS("TEST_PATTERN test requested\n");
@@ -4188,9 +4188,11 @@ static void intel_dp_handle_test_request(struct intel_dp *intel_dp,
}
update_status:
- status = intel_dp_write_test_reply(intel_dp, response);
- if (status <= 0)
- DRM_DEBUG_KMS("Could not write test response to sink\n");
+ if (intel_dp->compliance_test_type != DP_TEST_LINK_TRAINING) {
+ status = intel_dp_write_test_reply(intel_dp, response);
+ if (status <= 0)
+ DRM_DEBUG_KMS("Could not write test response to sink\n");
+ }
}
static int
@@ -120,6 +120,9 @@ intel_dp_link_training_clock_recovery(struct intel_dp *intel_dp)
intel_dp_compute_rate(intel_dp, intel_dp->link_rate,
&link_bw, &rate_select);
+ if (intel_dp->compliance_test_type == DP_TEST_LINK_TRAINING)
+ intel_dp_write_test_reply(intel_dp, DP_TEST_ACK);
+
/* Write the link configuration data */
link_config[0] = link_bw;
link_config[1] = intel_dp->lane_count;