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