Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/dp: Don't recheck the eDP link state after a passing link training
@ 2026-11-10 10:17 Mika Kahola
  2026-11-10 10:26 ` ✓ CI.KUnit: success for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Mika Kahola @ 2026-11-10 10:17 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: Mika Kahola, Victor Carreras

On eDP, a link retrain power cycles the panel. If the panel reports a
transient link error after power-on, the link state recheck after a
passing link training ends up in a retrain loop. Skip this recheck on
eDP.

Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/17737
Tested-by: Victor Carreras <vicajilau@gmail.com>
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 .../drm/i915/display/intel_dp_link_training.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index ac1aff6edf05..35bf29f7b996 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -1800,12 +1800,23 @@ void intel_dp_stop_link_train(struct intel_dp *intel_dp,
 
 	intel_hpd_unblock(encoder);
 
-	if (!display->hotplug.ignore_long_hpd &&
-	    link_recovery_autoretrain_allowed(link_training)) {
-		int delay_ms = link_recovery_autoretrain_pending(link_training) ? 0 : 2000;
+	if (display->hotplug.ignore_long_hpd ||
+	    !link_recovery_autoretrain_allowed(link_training))
+		return;
 
-		intel_encoder_link_check_queue_work(encoder, delay_ms);
+	if (link_recovery_autoretrain_pending(link_training)) {
+		intel_encoder_link_check_queue_work(encoder, 0);
+		return;
 	}
+
+	/*
+	 * An eDP retrain power cycles the panel, which can retrigger
+	 * a transient link error after power-on, leading to a retrain loop.
+	 */
+	if (intel_dp_is_edp(intel_dp))
+		return;
+
+	intel_encoder_link_check_queue_work(encoder, 2000);
 }
 
 static bool
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-11-10 15:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10 10:17 [PATCH] drm/i915/dp: Don't recheck the eDP link state after a passing link training Mika Kahola
2026-11-10 10:26 ` ✓ CI.KUnit: success for " Patchwork
2026-11-10 11:17 ` ✓ Xe.CI.BAT: " Patchwork
2026-11-10 11:40 ` [PATCH] " Ville Syrjälä
2026-11-10 15:38   ` Kahola, Mika
2026-11-10 13:20 ` ✓ Xe.CI.FULL: success for " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox