On Mon, 21 May 2012 20:19:48 +0200, Daniel Vetter <daniel.vetter at ffwll.ch> wrote: > ... flaky ddc hardware can cause a spurious NAK, resulting in the i2c > core and drm edid functions not trying to retry the edid transfer. > > Luckily the gmbus quiescenting also times out for these cases, so we > can get out of this mess by returning -ETIMEDOUT for this specific > case. This way we keep the fast-fail of returning -ENXIO if there is > no device present, speeding up the boot process. > > 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 > > v2: Return -ETIMEDOUT for this case and keep the -ENXIO for real NAKs, > suggested by Daniel Kurtz. > > Cc: Daniel Kurtz <djkurtz at chromium.org> > 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> Acked-by: Chris Wilson <chris at chris-wilson.co.uk> -Chris -- Chris Wilson, Intel Open Source Technology Centre