From patchwork Tue Nov 29 05:04:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 84492 Delivered-To: patches@linaro.org Received: by 10.140.20.101 with SMTP id 92csp1452306qgi; Mon, 28 Nov 2016 21:04:54 -0800 (PST) X-Received: by 10.84.136.1 with SMTP id 1mr57769557plk.152.1480395894700; Mon, 28 Nov 2016 21:04:54 -0800 (PST) Return-Path: Received: from mail-pg0-x230.google.com (mail-pg0-x230.google.com. [2607:f8b0:400e:c05::230]) by mx.google.com with ESMTPS id z189si34367762pgb.108.2016.11.28.21.04.54 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Nov 2016 21:04:54 -0800 (PST) Received-SPF: pass (google.com: domain of john.stultz@linaro.org designates 2607:f8b0:400e:c05::230 as permitted sender) client-ip=2607:f8b0:400e:c05::230; 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:c05::230 as permitted sender) smtp.mailfrom=john.stultz@linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by mail-pg0-x230.google.com with SMTP id 3so65153487pgd.0 for ; Mon, 28 Nov 2016 21:04:54 -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=bWTyujRgvakyVPts6T0J7XWWx80fqHixZ5h+Bwv3khY=; b=AYoPcbw6UPvotK8hQHAvRoiZ7kOzeq0NlrqiHZrecRrJBTsjA1OGqLWbK2pO+Cwusg FaasorduSf+mU6qQesvin2E4PhtbgENEDYweg1tN+CW7xhlj2owLwiLzuObVC9PSO5JK u3cm1yE+2RN2zFkSM7n+CBhruz0XjaGXW4XRM= 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=bWTyujRgvakyVPts6T0J7XWWx80fqHixZ5h+Bwv3khY=; b=AQn8e0ijwLUihcN69Vnx2kajqGItTA+6SQTJ037rFFOvCDVTtr0gBXVIwfY8eXK3U/ r+PbFAX/7kaTSRnWR4JONp2x+j+EgVQ4N3/vuY+lDwxkQMK34W1qsZfwg3ZADnBoWETE dYqLpyjupBtrT8UdnFF/AUtcCRaOGN95FwNwCFY3s0VzKeTn2D86UZkObVMiYjABj03w Q5P1B7bd6ZaX5ygRTo5qrW0fzjjIQM1O+sq3KyrUopzEf2jEx/L1Qe836r6mBgLnEjTw GsCjeG95LzgsT/TuNPM0zrd1ZU4jNuYPXcJhSaXiTmMsHDZNqjvhDjjzD5/geL78S8ac oC6A== X-Gm-Message-State: AKaTC033qGnJ610izMuoV2zcQDEtXFhQ6hbD1823xzXUHMNN6spLH30nbnCrNHisKbWS6kbB/+w= X-Received: by 10.99.207.17 with SMTP id j17mr45416353pgg.57.1480395894407; Mon, 28 Nov 2016 21:04:54 -0800 (PST) Return-Path: Received: from localhost.localdomain ([2601:1c2:1002:83f0:4e72:b9ff:fe99:466a]) by smtp.gmail.com with ESMTPSA id b29sm73191498pgn.48.2016.11.28.21.04.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 28 Nov 2016 21:04:53 -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/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> 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(-) -- 2.7.4 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; }