Secton 4.1 of the adv7511 programming guide advises one waits 200ms after powering on the chip before trying to communicate with it via i2c. Not doing so can cause reliability issues when probing the EDID.
See: http://www.analog.com/media/en/technical-documentation/user-guides/ADV7511_Programming_Guide.pdf So this patch simply adds a 200ms sleep at the end of the power_on path. This greatly improves EDID probing reliabilty on hotplug with the HiKey device. Cc: David Airlie <[email protected]> Cc: Archit Taneja <[email protected]> Cc: Wolfram Sang <[email protected]> Cc: Lars-Peter Clausen <[email protected]> Cc: Laurent Pinchart <[email protected]> Cc: [email protected] Signed-off-by: John Stultz <[email protected]> --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index b240e05..2114a4c 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -361,6 +361,8 @@ static void __adv7511_power_on(struct adv7511 *adv7511) */ regcache_sync(adv7511->regmap); + msleep(200); + if (adv7511->type == ADV7533) adv7533_dsi_power_on(adv7511); } -- 2.7.4

