> -----Original Message-----
> From: Intel-gfx <[email protected]> On Behalf Of Imre 
> Deak
> Sent: Monday, 1 June 2026 12.38
> To: [email protected]; [email protected]
> Cc: Nikula, Jani <[email protected]>
> Subject: [PATCH v2 11/22] drm/i915/dp_link_training: Add helper to query 
> pending autoretrain
> 
> Add link_recovery_autoretrain_pending() to make it clearer what the condition 
> is about at its callers: an autoretrain work has been queued.
> 
> This also prepares for replacing the sequential link training failure counter 
> with an enum in a follow-up change.
> 
> v2: Remove unnecessary function documentation. (Jani)
> 
> Cc: Jani Nikula <[email protected]>

Reviewed-by: Mika Kahola <[email protected]>

> Signed-off-by: Imre Deak <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_dp_link_training.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 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 cbac9a70e8d5b..f6a8102a300c1 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -1264,6 +1264,12 @@ intel_dp_128b132b_intra_hop(struct intel_dp *intel_dp,
>       return sink_status & DP_INTRA_HOP_AUX_REPLY_INDICATION ? 1 : 0;  }
> 
> +static bool
> +link_recovery_autoretrain_pending(struct intel_dp_link_training
> +*link_training) {
> +     return link_training->seq_train_failures == 1; }
> +
>  /**
>   * intel_dp_stop_link_train - stop link training
>   * @intel_dp: DP struct
> @@ -1305,7 +1311,7 @@ void intel_dp_stop_link_train(struct intel_dp *intel_dp,
> 
>       if (!display->hotplug.ignore_long_hpd &&
>           link_training->seq_train_failures < MAX_SEQ_TRAIN_FAILURES) {
> -             int delay_ms = link_training->seq_train_failures == 1 ? 0 : 
> 2000;
> +             int delay_ms = link_recovery_autoretrain_pending(link_training) 
> ? 0 :
> +2000;
> 
>               intel_encoder_link_check_queue_work(encoder, delay_ms);
>       }
> @@ -2006,7 +2012,7 @@ intel_dp_needs_link_retrain(struct intel_dp *intel_dp)
>       if (link_training->seq_train_failures >= MAX_SEQ_TRAIN_FAILURES)
>               return false;
> 
> -     if (link_training->seq_train_failures == 1)
> +     if (link_recovery_autoretrain_pending(link_training))
>               return true;
> 
>       /* Retrain if link not ok */
> --
> 2.49.1

Reply via email to