[PATCH] drm/i915: don't return -ENXIO from gmbus xfer

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

 



On Sat, May 19, 2012 at 10:10:12PM +0200, Daniel Vetter wrote:
> ... too much risk for flaky edid transfers.
> 
> This regression has been introduced in
> 
> commit e646d5773572bf52017983d758bdf05777dc5600
> Author: Daniel Kurtz <djkurtz at chromium.org>
> Date:   Fri Mar 30 19:46:38 2012 +0800
> 
>     drm/i915/intel_i2c: always wait for IDLE before clearing NAK
> 
> This patch keeps the improved NAK handling on the hw side, but reverts
> the change to return -ENXIO in case the gmbus controller reports a
> NAK.
> 
> Cc: Daniel Kurtz <djkurtz at chromium.org>

Hi Daniel,

Can you please take a look at this one and smash your r-b onto it if you
agree?

Thanks, Daniel

> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49518
> Reported-and-Tested-by: Julian Simioni <julian.simioni at gmail.com>
> Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
>  drivers/gpu/drm/i915/intel_i2c.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
> index e04255e..0588d8e 100644
> --- a/drivers/gpu/drm/i915/intel_i2c.c
> +++ b/drivers/gpu/drm/i915/intel_i2c.c
> @@ -418,10 +418,11 @@ clear_err:
>  	 * If no ACK is received during the address phase of a transaction,
>  	 * the adapter must report -ENXIO.
>  	 * It is not clear what to return if no ACK is received at other times.
> -	 * So, we always return -ENXIO in all NAK cases, to ensure we send
> -	 * it at least during the one case that is specified.
> +	 *
> +	 * Unfortunately we can't afford false positives in returning -ENXIO,
> +	 * hence never return -ENXIO.
>  	 */
> -	ret = -ENXIO;
> +	ret = i;
>  	goto out;
>  
>  timeout:
> -- 
> 1.7.10
> 

-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux