From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [RFC][PATCH 3/5 v2] drm/bridge: adv7511: Enable HPD interrupts to support hotplug and improve monitor detection Date: Mon, 28 Nov 2016 21:04:42 -0800 Message-ID: <1480395884-5471-4-git-send-email-john.stultz@linaro.org> References: <1480395884-5471-1-git-send-email-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x22d.google.com (mail-pg0-x22d.google.com [IPv6:2607:f8b0:400e:c05::22d]) by gabe.freedesktop.org (Postfix) with ESMTPS id E90166E359 for ; Tue, 29 Nov 2016 05:04:54 +0000 (UTC) Received: by mail-pg0-x22d.google.com with SMTP id p66so65140853pga.2 for ; Mon, 28 Nov 2016 21:04:54 -0800 (PST) In-Reply-To: <1480395884-5471-1-git-send-email-john.stultz@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: lkml Cc: dri-devel@lists.freedesktop.org, Wolfram Sang , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org RnJvbTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KCk9uIHNvbWUgYWR2 NzUxMSBpbXBsZW1lbnRhdGlvbnMsIHdlIGNhbiBnZXQgc29tZSBzcHVyaW91cwpkaXNjb25uZWN0 IHNpZ25hbHMgd2hpY2ggY2FuIGNhdXNlIG1vbml0b3IgcHJvYmluZyB0byBmYWlsLgoKVGhpcyBw YXRjaCBlbmFibGVzIEhQRCAoaG90IHBsdWcgZGV0ZWN0KSBpbnRlcnJ1cHQgc3VwcG9ydAp3aGlj aCBhbGxvd3MgdGhlIG1vbml0b3IgdG8gYmUgcHJvcGVybHkgcmUtaW5pdGlhbGl6ZWQgd2hlbgp0 aGUgc3B1cmlvdXMgZGlzY29ubmVjdCBzaWduYWwgZ29lcyBhd2F5LgoKVGhpcyBhbHNvIGVuYWJs ZXMgcHJvcGVyIGhvdHBsdWcgc3VwcG9ydC4KCkNjOiBEYXZpZCBBaXJsaWUgPGFpcmxpZWRAbGlu dXguaWU+CkNjOiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgpDYzogV29s ZnJhbSBTYW5nIDx3c2ErcmVuZXNhc0BzYW5nLWVuZ2luZWVyaW5nLmNvbT4KQ2M6IExhcnMtUGV0 ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgpDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVu dC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgpDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpBY2tlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVh c29uYm9hcmQuY29tPgpPcmlnaW5hbGx5LWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVh dXJvcmEub3JnPgpbanN0dWx0ejogQWRkZWQgcHJvcGVyIGNvbW1pdCBtZXNzYWdlXQpTaWduZWQt b2ZmLWJ5OiBKb2huIFN0dWx0eiA8am9obi5zdHVsdHpAbGluYXJvLm9yZz4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYyB8IDYgKysrKystCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwppbmRleCAyY2FjYTBjLi45ZjhkZmZkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwpAQCAtMzM4 LDcgKzMzOCw3IEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFfcG93ZXJfb24oc3RydWN0IGFkdjc1MTEg KmFkdjc1MTEpCiAJCSAqIFN0aWxsLCBsZXQncyBiZSBzYWZlIGFuZCBzdGljayB0byB0aGUgZG9j dW1lbnRhdGlvbi4KIAkJICovCiAJCXJlZ21hcF93cml0ZShhZHY3NTExLT5yZWdtYXAsIEFEVjc1 MTFfUkVHX0lOVF9FTkFCTEUoMCksCi0JCQkgICAgIEFEVjc1MTFfSU5UMF9FRElEX1JFQURZKTsK KwkJCSAgICAgQURWNzUxMV9JTlQwX0VESURfUkVBRFkgfCBBRFY3NTExX0lOVDBfSFBEKTsKIAkJ cmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdfSU5UX0VOQUJMRSgxKSwK IAkJCSAgICAgQURWNzUxMV9JTlQxX0REQ19FUlJPUik7CiAJfQpAQCAtODMzLDYgKzgzMywxMCBA QCBzdGF0aWMgaW50IGFkdjc1MTFfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlKQogCWlmIChhZHYtPnR5cGUgPT0gQURWNzUzMykKIAkJcmV0ID0gYWR2NzUzM19hdHRhY2hf ZHNpKGFkdik7CiAKKwlpZiAoYWR2LT5pMmNfbWFpbi0+aXJxKQorCQlyZWdtYXBfd3JpdGUoYWR2 LT5yZWdtYXAsIEFEVjc1MTFfUkVHX0lOVF9FTkFCTEUoMCksCisJCQkJQURWNzUxMV9JTlQwX0hQ RCk7CisKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755178AbcK2FFP (ORCPT ); Tue, 29 Nov 2016 00:05:15 -0500 Received: from mail-pg0-f45.google.com ([74.125.83.45]:33870 "EHLO mail-pg0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754393AbcK2FEz (ORCPT ); Tue, 29 Nov 2016 00:04:55 -0500 From: John Stultz To: lkml Cc: Archit Taneja , David Airlie , Wolfram Sang , Lars-Peter Clausen , Laurent Pinchart , dri-devel@lists.freedesktop.org, John Stultz Subject: [RFC][PATCH 3/5 v2] drm/bridge: adv7511: Enable HPD interrupts to support hotplug and improve monitor detection Date: Mon, 28 Nov 2016 21:04:42 -0800 Message-Id: <1480395884-5471-4-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1480395884-5471-1-git-send-email-john.stultz@linaro.org> References: <1480395884-5471-1-git-send-email-john.stultz@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Archit Taneja 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 Cc: Archit Taneja Cc: Wolfram Sang Cc: Lars-Peter Clausen Cc: Laurent Pinchart Cc: dri-devel@lists.freedesktop.org Acked-by: Laurent Pinchart Originally-by: Archit Taneja [jstultz: Added proper commit message] Signed-off-by: John Stultz --- 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