From patchwork Tue Jan 3 19:41:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 89723 Delivered-To: patches@linaro.org Received: by 10.140.20.101 with SMTP id 92csp8166385qgi; Tue, 3 Jan 2017 11:41:54 -0800 (PST) X-Received: by 10.84.232.141 with SMTP id i13mr94722065plk.73.1483472514095; Tue, 03 Jan 2017 11:41:54 -0800 (PST) Return-Path: Received: from mail-pf0-x234.google.com (mail-pf0-x234.google.com. [2607:f8b0:400e:c00::234]) by mx.google.com with ESMTPS id c17si53204677pgj.191.2017.01.03.11.41.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Jan 2017 11:41:54 -0800 (PST) Received-SPF: pass (google.com: domain of john.stultz@linaro.org designates 2607:f8b0:400e:c00::234 as permitted sender) client-ip=2607:f8b0:400e:c00::234; 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::234 as permitted sender) smtp.mailfrom=john.stultz@linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by mail-pf0-x234.google.com with SMTP id d2so78291879pfd.0 for ; Tue, 03 Jan 2017 11:41:53 -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=HdOqgm/Luctt5M3Ye2TOJ0qYhdFL1maPj5o0uZFAeoU=; b=KJHNJQFvEQl3qmGwU19Kph2uohp9H6ZZXu4NddMX0I2p2dX8fmZ5+fqfplALD6+9Bd 8lpLSaEtPPavJEgFIURZjvC5xWwK8/usxuqVFBDpA5FTUeIEMdxgJc2d12RrM/3LwlFA PJPkugxmUo15Sq5nxok8+KY5wXfVRbaPqOqb4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HdOqgm/Luctt5M3Ye2TOJ0qYhdFL1maPj5o0uZFAeoU=; b=kcN0/laf4ZIsuZtcpl3zjcL64jxuK/48efdcm01CvPliy2jZFssSmS/b0ZPYuPxfrL O2WgfMN/i+mNitSpRmyTuzdeB9bh/acVKgehi4ASb7LmjotkNNXP2L85wlyVRGeh6M6j PjPmpV8J5T7F0137gLuXl5Oc3w2YaVdFAYh1I1SFRTnuX6NSgn23GLGfW+Wq2oWT8xxd 55AdaXgX4LrqxhCuWCdlnA7fphxDFgj++mJNrYFm/96Z7riTJzvac22Kmh3mgvR0fhPZ WTCexLmPjVY7tEmQG/m3b9AUkUhlIuMNMYX+j7pyX5RCsO+Lk69K5NbwJlvACV6YkYB4 fq2A== X-Gm-Message-State: AIkVDXKUaXIBpz4tpi5fqtzmVQkftWXJtC2qP+K4sOok0HPcbDtZTyCDboIegBRjeadlZk6TzvE= X-Received: by 10.98.202.72 with SMTP id n69mr59966051pfg.24.1483472513181; Tue, 03 Jan 2017 11:41:53 -0800 (PST) Return-Path: Received: from localhost.localdomain ([2601:1c2:1002:83f0:4e72:b9ff:fe99:466a]) by smtp.gmail.com with ESMTPSA id y62sm77865957pfk.52.2017.01.03.11.41.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 03 Jan 2017 11:41:52 -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: [PATCH 3/5 v3] drm/bridge: adv7511: Enable HPD interrupts to support hotplug and improve monitor detection Date: Tue, 3 Jan 2017 11:41:40 -0800 Message-Id: <1483472502-16403-4-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1483472502-16403-1-git-send-email-john.stultz@linaro.org> References: <1483472502-16403-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 d93d66f..4b90975 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); } @@ -846,6 +846,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; }