Re: [PATCH v4 2/2] drm/i915/display: ignore link training failures in CI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 15, 2023 at 10:38:32AM +0200, Vinod Govindapillai wrote:
> If the ignore long HPD flag is set, ignore the link training
> failures as well. Because of spurious HPDs, some unexpected link
> training failures are happening while executing IGT test cases.
> Ignore the link training failures for the time being if the long
> HPDs are also ignored in the environments like CI.
> 
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@xxxxxxxxx>

Looks ok to me, on the patchset:
Reviewed-by: Imre Deak <imre.deak@xxxxxxxxx>

> ---
>  .../drm/i915/display/intel_dp_link_training.c | 24 +++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> 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 3d3efcf02011..f90c627ab553 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -1433,7 +1433,11 @@ intel_dp_128b132b_link_train(struct intel_dp *intel_dp,
>  void intel_dp_start_link_train(struct intel_dp *intel_dp,
>  			       const struct intel_crtc_state *crtc_state)
>  {
> +	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> +	struct intel_connector *connector = intel_dp->attached_connector;
> +	struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
>  	bool passed;
> +
>  	/*
>  	 * TODO: Reiniting LTTPRs here won't be needed once proper connector
>  	 * HW state readout is added.
> @@ -1451,6 +1455,26 @@ void intel_dp_start_link_train(struct intel_dp *intel_dp,
>  	else
>  		passed = intel_dp_link_train_all_phys(intel_dp, crtc_state, lttpr_count);
>  
> +	/*
> +	 * Ignore the link failure in CI
> +	 *
> +	 * In fixed enviroments like CI, sometimes unexpected long HPDs are
> +	 * generated by the displays. If ignore_long_hpd flag is set, such long
> +	 * HPDs are ignored. And probably as a consequence of these ignored
> +	 * long HPDs, subsequent link trainings are failed resulting into CI
> +	 * execution failures.
> +	 *
> +	 * For test cases which rely on the link training or processing of HPDs
> +	 * ignore_long_hpd flag can unset from the testcase.
> +	 */
> +	if (!passed && i915->display.hotplug.ignore_long_hpd) {
> +		drm_dbg_kms(&i915->drm,
> +			    "[CONNECTOR:%d:%s][ENCODER:%d:%s] Ignore the link failure\n",
> +			    connector->base.base.id, connector->base.name,
> +			    encoder->base.base.id, encoder->base.name);
> +		return;
> +	}
> +
>  	if (!passed)
>  		intel_dp_schedule_fallback_link_training(intel_dp, crtc_state);
>  }
> -- 
> 2.34.1
> 



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux