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

Daniel Vetter daniel.vetter at ffwll.ch
Sat May 19 22:10:12 CEST 2012


... 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>
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




More information about the Intel-gfx mailing list