From patchwork Tue Nov 22 00:37:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 83320 Delivered-To: patches@linaro.org Received: by 10.140.97.165 with SMTP id m34csp1848630qge; Mon, 21 Nov 2016 16:37:38 -0800 (PST) X-Received: by 10.99.149.22 with SMTP id p22mr38241480pgd.21.1479775058377; Mon, 21 Nov 2016 16:37:38 -0800 (PST) Return-Path: Received: from mail-pf0-x231.google.com (mail-pf0-x231.google.com. [2607:f8b0:400e:c00::231]) by mx.google.com with ESMTPS id x18si25276007pge.5.2016.11.21.16.37.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Nov 2016 16:37:38 -0800 (PST) Received-SPF: pass (google.com: domain of john.stultz@linaro.org designates 2607:f8b0:400e:c00::231 as permitted sender) client-ip=2607:f8b0:400e:c00::231; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: domain of john.stultz@linaro.org designates 2607:f8b0:400e:c00::231 as permitted sender) smtp.mailfrom=john.stultz@linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by mail-pf0-x231.google.com with SMTP id d2so500634pfd.0 for ; Mon, 21 Nov 2016 16:37:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=RLY0/UpgFnfP4UJWiKwvuu0FvAZNkAJiHjWvACQMpxo=; b=a5/MS9xYcufGuyv5Dnf6mD68SKxkfK3bJ/vNcAgfEj6VocO5WoEE6PvXKspiepl/KG 4MuslIZKIXSau6YjW+oUrsFDS3oC09SOab4V85OXks3K0NsWrfG4qYulpbzxN1n4M3dE gIL7l0sVKipFeJqhgfN2+dsm+aXOlpF7lAIuQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=RLY0/UpgFnfP4UJWiKwvuu0FvAZNkAJiHjWvACQMpxo=; b=O20cTmKzl0Dj7e7tiN0y0c27294/UY+P3uUkMKE2/9t8/JKVKr8CsJZS/W0cWiOZAA HLbM0L/6Au1Yo1ZXbxpcbdTqpXL7NMqfr9gXPeUw6b/KTBfJnSZmE6V0MCtBmtxV7u0k aS1ZPBbJDOp5VgHLWz0Mz3mJCNyo/e3p9TP4AGsoppeF3W+ATUTnwpN2jQlzHNK9RbEk U3jJTF1o4uEceft1T3MgJXan1YnLq2tKwWRGbncUB6fymbJe9q/gwqNkiN3xDANi3kSE lwSRrLX8szTdOg9IEx+DUUr2WpRAGUhecdhDDSedT3NUMmDZ7mFwrrt2dP/4zg/L/emc PBbA== X-Gm-Message-State: AKaTC01/vQTrPElN1JW+tjFumBer5UQ9EOpSmJb/xX0RSQQ8ypwEbVysQvRwuU/4sK9zF1ux/0k= X-Received: by 10.99.96.85 with SMTP id u82mr38305930pgb.47.1479775058050; Mon, 21 Nov 2016 16:37:38 -0800 (PST) Return-Path: Received: from localhost.localdomain ([2601:1c2:1002:83f0:4e72:b9ff:fe99:466a]) by smtp.gmail.com with ESMTPSA id u78sm38514933pfa.53.2016.11.21.16.37.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 21 Nov 2016 16:37:37 -0800 (PST) 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/3] drm/bridge: adv7511: Enable HPD interrupts to support hotplug and improve monitor detection Date: Mon, 21 Nov 2016 16:37:32 -0800 Message-Id: <1479775052-28194-4-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479775052-28194-1-git-send-email-john.stultz@linaro.org> References: <1479775052-28194-1-git-send-email-john.stultz@linaro.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 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(-) -- 2.7.4 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; }