First of all *_needs_link_retraining function should return
false is link_train is set to true but not false.

Also if we detect channel eq problem when checking mst status
we simply bail out, without setting link_train to false again,
which might end up in a situation that we don't do link retraining
when needed.

There were some issues, when we had several problems with dp mst
and at the same time the log was floode by messages about
"channel eq not ok, need retraining" however the actual training
seems to be never done.

Signed-off-by: Stanislav Lisovskiy <stanislav.lisovs...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 1768731678a1..9288dc1f8914 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5627,6 +5627,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
                        drm_dbg_kms(&i915->drm,
                                    "channel EQ not ok, retraining\n");
                        need_retrain = true;
+                       intel_dp->link_trained = false;
                }
 
                drm_dbg_kms(&i915->drm, "got esi %3ph\n", esi);
@@ -5654,7 +5655,7 @@ intel_dp_needs_link_retrain(struct intel_dp *intel_dp)
 {
        u8 link_status[DP_LINK_STATUS_SIZE];
 
-       if (!intel_dp->link_trained)
+       if (intel_dp->link_trained)
                return false;
 
        /*
-- 
2.24.1.485.gad05a3d8e5

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to