From: Archit Taneja <arch...@codeaurora.org> On some adv7511 implementations, we can get some spurious disconnect signals which can cause monitor probing to fail.
This patch enables HPD (hot plug detect) interrupt support which allows the monitor to be properly re-initialized when the spurious disconnect signal goes away. This also enables proper hotplug support. Cc: David Airlie <airlied at linux.ie> Cc: Archit Taneja <architt at codeaurora.org> Cc: Wolfram Sang <wsa+renesas at sang-engineering.com> Cc: Lars-Peter Clausen <lars at metafoo.de> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com> Cc: dri-devel at lists.freedesktop.org Originally-by: Archit Taneja <architt at codeaurora.org> [jstultz: Added proper commit message] Signed-off-by: John Stultz <john.stultz at linaro.org> --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index 2114a4c..889cf36 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -338,7 +338,7 @@ static void __adv7511_power_on(struct adv7511 *adv7511) * Still, let's be safe and stick to the documentation. */ regmap_write(adv7511->regmap, ADV7511_REG_INT_ENABLE(0), - ADV7511_INT0_EDID_READY); + ADV7511_INT0_EDID_READY | ADV7511_INT0_HPD); regmap_write(adv7511->regmap, ADV7511_REG_INT_ENABLE(1), ADV7511_INT1_DDC_ERROR); } @@ -825,6 +825,10 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge) if (adv->type == ADV7533) ret = adv7533_attach_dsi(adv); + if (adv->i2c_main->irq) + regmap_write(adv->regmap, ADV7511_REG_INT_ENABLE(0), + ADV7511_INT0_HPD); + return ret; } -- 2.7.4