Message ID | E1WKXBG-0003gB-GK@rmk-PC.arm.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 03 Mar 2014 18:01:34 +0000 Russell King <rmk+kernel@arm.linux.org.uk> wrote: > 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@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. Russell, Sorry for the problem. I was thinking that, if you want to read quickly the EDID , you may use the IRQ, but, if you don't use the IRQ, maybe you have real-time constraints, and, so, reducing the wait loop could help you. Acked-by: Jean-Francois Moine <moinejf@free.fr>
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;
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@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(-)