On Mon, May 11, 2026 at 08:50:07AM +0530, Arun R Murthy wrote:
> The commit e42e7e585984 ("drm/i915: Fix modesetting in case of
> unexpected AUX timeouts") continue the LT even if DPCD read failed.
>
> But doing so will blot the dmesg with multiple AUX Tx errors, so skip
> the LT but continue the modeset seq for the reason said in the above
> mentioned patch.
>
> Signed-off-by: Arun R Murthy <[email protected]>
> ---
> drivers/gpu/drm/i915/display/intel_dp_link_training.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 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 a26094223f78..2598e4ba9712 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -1776,9 +1776,12 @@ void intel_dp_start_link_train(struct
> intel_atomic_state *state,
>
> lttpr_count = intel_dp_init_lttpr_and_dprx_caps(intel_dp);
>
> - if (lttpr_count < 0)
> - /* Still continue with enabling the port and link training. */
> - lttpr_count = 0;
> + if (lttpr_count < 0) {
> + /* skip LT but complete the modeset seq */
> + lt_dbg(intel_dp, DP_PHY_DPRX,
> + "Reading LTTPR/DPRX caps failed, skip LT\n");
> + goto retry;
This does break the regular "link training sequence" referred to by
e42e7e585984, reintroducing the original problem fixed by that commit.
Avoiding AUX failures this way is also too ad-hoc: the sink
disconnecting at any other point of time than right here before you
check for it would still result in AUX transfer failures being logged.
So I don't think it's a good idea to special case this particular
failure point to avoid these logs.
> + }
>
> intel_dp_prepare_link_train(intel_dp, crtc_state);
>
> @@ -1795,6 +1798,7 @@ void intel_dp_start_link_train(struct
> intel_atomic_state *state,
> return;
> }
>
> +retry:
> intel_dp->link.seq_train_failures++;
>
> /*
> --
> 2.25.1
>