lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 28 Nov 2016 21:04:42 -0800 From: John Stultz <john.stultz@...aro.org> To: lkml <linux-kernel@...r.kernel.org> Cc: Archit Taneja <architt@...eaurora.org>, David Airlie <airlied@...ux.ie>, Wolfram Sang <wsa+renesas@...g-engineering.com>, Lars-Peter Clausen <lars@...afoo.de>, Laurent Pinchart <laurent.pinchart@...asonboard.com>, dri-devel@...ts.freedesktop.org, John Stultz <john.stultz@...aro.org> Subject: [RFC][PATCH 3/5 v2] drm/bridge: adv7511: Enable HPD interrupts to support hotplug and improve monitor detection From: Archit Taneja <architt@...eaurora.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@...ux.ie> Cc: Archit Taneja <architt@...eaurora.org> Cc: Wolfram Sang <wsa+renesas@...g-engineering.com> Cc: Lars-Peter Clausen <lars@...afoo.de> Cc: Laurent Pinchart <laurent.pinchart@...asonboard.com> Cc: dri-devel@...ts.freedesktop.org Acked-by: Laurent Pinchart <laurent.pinchart@...asonboard.com> Originally-by: Archit Taneja <architt@...eaurora.org> [jstultz: Added proper commit message] Signed-off-by: John Stultz <john.stultz@...aro.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 2caca0c..9f8dffd 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); } @@ -833,6 +833,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
Powered by blists - more mailing lists