drm/i915: force link training when requested by Sink
authorShubhangi Shrivastava <shubhangi.shrivastava@intel.com>
Wed, 14 Oct 2015 09:26:49 +0000 (14:56 +0530)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 17 Nov 2015 15:09:45 +0000 (16:09 +0100)
Compliance test 4.3.1.11 requires source to perform link training
always if the automated test requests for it. This patch
enforces this requirement.

Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
Signed-off-by: Shubhangi Shrivastava <shubhangi.shrivastava@intel.com>
Reviewed-by: Sonika Jindal <sonika.jindal@intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c

index 92504fce53ae642a0307eaa145210d27d354ff26..e35a0b8284e500f7ab628514305025b32022d4a2 100644 (file)
@@ -4316,7 +4316,9 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
                        DRM_DEBUG_DRIVER("CP or sink specific irq unhandled\n");
        }
 
-       if (!drm_dp_channel_eq_ok(link_status, intel_dp->lane_count)) {
+       /* if link training is requested we should perform it always */
+       if ((intel_dp->compliance_test_type == DP_TEST_LINK_TRAINING) ||
+               (!drm_dp_channel_eq_ok(link_status, intel_dp->lane_count))) {
                DRM_DEBUG_KMS("%s: channel EQ not ok, retraining\n",
                              intel_encoder->base.name);
                intel_dp_start_link_train(intel_dp);