[PATCH] drm/i2c: tda998x: potentially faster polling for edid

Russell King rmk+kernel at arm.linux.org.uk
Mon Mar 3 10:01:34 PST 2014


One of Jean-Francois patches changed the EDID polling to once every
10ms for 10 interations, whereas the original code did 1ms for 100
interations.  This appears to cause boot-time detection to take
slightly - but noticably - longer.  Revert this change.

Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
---
Jean,

I'm not sure why you made the change along with adding IRQ support in
"drm/i2c: tda998x: use irq for connection status and EDID read" - you
didn't include any commentry as to why you made this change.  However,
we shouldn't write code assuming HZ=100 - where this kind of thing
matters, we should come up with better solutions (eg, using jiffy-based
timeouts if we want to timeout after a set period of time.)

I'm not sure whether one or other really is faster, it's just a
perception I have.  Anyway, let's just revert back to the original
code for the non-IRQ case, and maybe improve it later.

 drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 40c4f658abfb..956d857ee2c9 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -1041,8 +1041,8 @@ static int read_edid_block(struct tda998x_priv *priv, uint8_t *buf, int blk)
 			return i;
 		}
 	} else {
-		for (i = 10; i > 0; i--) {
-			msleep(10);
+		for (i = 100; i > 0; i--) {
+			msleep(1);
 			ret = reg_read(priv, REG_INT_FLAGS_2);
 			if (ret < 0)
 				return ret;
-- 
1.8.3.1



More information about the dri-devel mailing list