> -----Original Message----- > From: Intel-xe <[email protected]> On Behalf Of Imre Deak > Sent: Monday, 1 June 2026 12.38 > To: [email protected]; [email protected] > Subject: [PATCH v2 08/22] drm/i915/dp_link_training: Prevent repeated > autoretrain attempts > > After a regular modeset link training failure, the driver attempts to recover > the link via an autoretrain using the same link parameters as the > modeset. > > If the autoretrain fails as well, the set of allowed link configurations is > reduced via a fallback mechanism. For further link training, the modeset > parameters will likely need to change. This lowers the required link > bandwidth and allows selecting a link configuration from the fallback- > reduced set. Only userspace can perform such a modeset change. > Therefore, the driver notifies userspace to take over link recovery. > > Userspace is expected to continue with the recovery attempt via a modeset > with updated parameters. The driver must not interfere with > these modesets. > > link_training->seq_train_failures is set to MAX_SEQ_TRAIN_FAILURES after the > autoretrain fails. If a fallback selection also fails after this, as > no link configurations remain, retrain_disabled is set as well. > > retrain_disabled is therefore somewhat misnamed: it indicates that no > fallback is available, not that autoretraining is disabled. This will be > addressed in a follow-up change by renaming the flag. For now, prevent > further autoretrain attempts based on the correct condition: > seq_train_failures == MAX_SEQ_TRAIN_FAILURES. > > This also prepares for replacing the counter with an enum in a follow-up > change. >
Reviewed-by: Mika Kahola <[email protected]> > Signed-off-by: Imre Deak <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_dp_link_training.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > 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 154caecacecb2..e766f7c323f72 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c > @@ -2002,7 +2002,7 @@ intel_dp_needs_link_retrain(struct intel_dp *intel_dp) > intel_dp->lane_count)) > return false; > > - if (link_training->retrain_disabled) > + if (link_training->seq_train_failures >= MAX_SEQ_TRAIN_FAILURES) > return false; > > if (link_training->seq_train_failures) > -- > 2.49.1
