[Intel-gfx] [PATCH 1/8] drm/i915/dp: retry link status read 3 times on failure
Keith Packard
keithp at keithp.com
Sat Jul 2 01:41:06 CEST 2011
On Fri, 1 Jul 2011 15:22:51 -0700, Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
> Especially after a hotplug or power status change, the sink may not
> reply immediately to a link status query. So retry 3 times per the spec
> to really make sure nothing is there.
There's no 'false' return path here. I think you want:
>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 17 +++++++++++++----
> 1 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 391b55f..1829ecc 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1019,13 +1019,22 @@ intel_dp_dpms(struct drm_encoder *encoder, int mode)
> static bool
> intel_dp_get_link_status(struct intel_dp *intel_dp)
> {
> - int ret;
> + int ret, i;
> +
> + /* Must try AUX reads for this at least 3 times */
> + for (i = 0; i < 3; i++) {
> + ret = intel_dp_aux_native_read(intel_dp,
> + DP_LANE0_1_STATUS,
> + intel_dp->link_status,
> + DP_LINK_STATUS_SIZE);
> + if (ret == DP_LINK_STATUS_SIZE)
> + break;
return true;
> + msleep(1);
> + }
>
> - ret = intel_dp_aux_native_read(intel_dp,
> - DP_LANE0_1_STATUS,
> - intel_dp->link_status, DP_LINK_STATUS_SIZE);
> if (ret != DP_LINK_STATUS_SIZE)
> return false;
> +
> return true;
return false;
> }
--
keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20110701/3af5f8ea/attachment.sig>
More information about the Intel-gfx
mailing list