[Intel-gfx] [PATCH v3 3/3] drm/i915: Add retries for LSPCON detection
Imre Deak
imre.deak at intel.com
Thu Oct 12 13:47:23 UTC 2017
On Tue, Oct 10, 2017 at 03:37:44PM +0530, Shashank Sharma wrote:
> We read the dp dual mode Adapter identifier to detect the
> LSPCON device. It's been observed from the CI testing that in
> few cases, this read can get delayed or fail. For such scenarios,
> LSPCON vendors suggest to retry the read operation.
>
> This patch adds retry in the probe function, while reading
> LSPCON identifier.
>
> V3: added this patch in the series
>
> Cc: Ville Syrjala <ville.syrjala at linux.intel.com>
> Cc: Imre Deak <imre.deak at intel.com>
> Signed-off-by: Shashank Sharma <shashank.sharma at intel.com>
> ---
> drivers/gpu/drm/i915/intel_lspcon.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
> index 7688254..dcbc786 100644
> --- a/drivers/gpu/drm/i915/intel_lspcon.c
> +++ b/drivers/gpu/drm/i915/intel_lspcon.c
> @@ -132,6 +132,7 @@ static bool lspcon_wake_native_aux_ch(struct intel_lspcon *lspcon)
>
> static bool lspcon_probe(struct intel_lspcon *lspcon)
> {
> + int retry;
> enum drm_dp_dual_mode_type adaptor_type;
> struct i2c_adapter *adapter = &lspcon_to_intel_dp(lspcon)->aux.ddc;
> enum drm_lspcon_mode expected_mode;
> @@ -140,10 +141,18 @@ static bool lspcon_probe(struct intel_lspcon *lspcon)
> DRM_LSPCON_MODE_PCON : DRM_LSPCON_MODE_LS;
>
> /* Lets probe the adaptor and check its type */
> - adaptor_type = drm_dp_dual_mode_detect(adapter);
> + for (retry = 0; retry < 6; retry++) {
> + if (retry)
> + usleep_range(500, 1000);
> +
> + adaptor_type = drm_dp_dual_mode_detect(adapter);
> + if (adaptor_type == DRM_DP_DUAL_MODE_LSPCON)
I wondered if this should be (adaptor_type != DRM_DP_DUAL_MODE_UNKNOWN),
since the other cases are not known to cause a problem. But we'll probe
LSPCON only if VBT says so and if VBT is broken we'll anyway incur the
retry overhead here. So looks ok:
Reviewed-by: Imre Deak <imre.deak at intel.com>
> + break;
> + }
> +
> if (adaptor_type != DRM_DP_DUAL_MODE_LSPCON) {
> DRM_DEBUG_KMS("No LSPCON detected, found %s\n",
> - drm_dp_get_dual_mode_type_name(adaptor_type));
> + drm_dp_get_dual_mode_type_name(adaptor_type));
> return false;
> }
>
> --
> 2.7.4
>
More information about the Intel-gfx
mailing list