[Intel-gfx] [PATCHv3] drm/i915/dp: wait on timeout before retry
Jani Nikula
jani.nikula at intel.com
Fri Jul 1 11:14:51 UTC 2022
On Fri, 01 Jul 2022, Arun R Murthy <arun.r.murthy at intel.com> wrote:
> On linktraining error/timeout before retry need to wait for 400usec as
> per the DP CTS spec1.2
>
> The patch with commit 74ebf294a1dd ("drm/i915: Add a delay in Displayport
> AUX transactions for compliance testing")
> removes this delay mentioning the hardware already meets this requirement,
> but as per the spec the delay mentioned in the spec specifies how long to
> wait for the receiver response before timeout. So the delay here to wait
> for timeout and not a delay after timeout. The DP spec specifies a delay
> after timeout and hence adding this delay.
>
> v2: fixed checkpatch warning and error
> v3: used proper indentation
>
> Signed-off-by: Arun R Murthy <arun.r.murthy at intel.com>
Based on the description alone,
Acked-by: Jani Nikula <jani.nikula at intel.com>
but would be good if you could get someone to double check the details
against bspec and CTS.
> ---
> drivers/gpu/drm/i915/display/intel_dp_aux.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> index 2bc119374555..722c9f210690 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> @@ -286,13 +286,9 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
> /*
> * DP CTS 1.2 Core Rev 1.1, 4.2.1.1 & 4.2.1.2
> * 400us delay required for errors and timeouts
> - * Timeout errors from the HW already meet this
> - * requirement so skip to next iteration
> */
> - if (status & DP_AUX_CH_CTL_TIME_OUT_ERROR)
> - continue;
> -
> - if (status & DP_AUX_CH_CTL_RECEIVE_ERROR) {
> + if (status & (DP_AUX_CH_CTL_RECEIVE_ERROR |
> + DP_AUX_CH_CTL_TIME_OUT_ERROR)) {
> usleep_range(400, 500);
> continue;
> }
--
Jani Nikula, Intel Open Source Graphics Center
More information about the Intel-gfx
mailing list