From patchwork Mon Dec 12 21:00:39 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 87770 Delivered-To: patches@linaro.org Received: by 10.140.20.101 with SMTP id 92csp1858669qgi; Mon, 12 Dec 2016 13:00:48 -0800 (PST) X-Received: by 10.99.98.2 with SMTP id w2mr171798775pgb.59.1481576448497; Mon, 12 Dec 2016 13:00:48 -0800 (PST) Return-Path: Received: from mail-pg0-x235.google.com (mail-pg0-x235.google.com. [2607:f8b0:400e:c05::235]) by mx.google.com with ESMTPS id b34si45006065pli.204.2016.12.12.13.00.48 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Dec 2016 13:00:48 -0800 (PST) Received-SPF: pass (google.com: domain of john.stultz@linaro.org designates 2607:f8b0:400e:c05::235 as permitted sender) client-ip=2607:f8b0:400e:c05::235; 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::235 as permitted sender) smtp.mailfrom=john.stultz@linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by mail-pg0-x235.google.com with SMTP id 3so39163635pgd.0 for ; Mon, 12 Dec 2016 13:00:48 -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=EQlFEbUdsUSpEGAeoJVynXqkyPqBsExhRy9+yhHONnF8TOvAxZipJt5tsx3C6ReuB1 xo7eTGLdrtInAhQWOha+tfFzbdqsd2qRRJBZ9eJJDzq62XWJRNzcJ+6F9g6JMjppVXgO 5TnahFtVY6JQR41BbCzo43u8Klhzv0T/vGixU= 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=HdOqgm/Luctt5M3Ye2TOJ0qYhdFL1maPj5o0uZFAeoU=; b=WQdphLPD9v3UO6wK40o0Rxs2CstG2wos9TOuI70iDtBkMr7PJA1KWcBDE5tMeS/59I Lap25a2xpcYOE3GaRsyQbHk86uB2ve+yrvybFC+xMW8qgT2zWIf59wasF3DW8tzJKEiU B1zAPKNoDG6lh+q2F0aeU921muPtBZYHzDmSQMarRKiMD6TrxoCOX5DDU/o4VGZ9R79k B9M1gTy1FIllSLCyTxt6tWS4UCQ6Iwzc6zRrT7w4XkihLX98sAbzxX2nc+9qNj5XPoGY 7ES3r/KA8q2yxi1YyqdkCSJwA5VKd+2vnfLKi4N+jCs4UHw8ry3JlTpgHqg8jP4J6G0/ RQpQ== X-Gm-Message-State: AKaTC0090tQWECZ9JUZIvPM60MzJ+UFWjB8/dTkJJZ/66OWG/8M2l2wS52uONrqtXUW/N9nDOmI= X-Received: by 10.84.197.1 with SMTP id m1mr16396469pld.157.1481576448174; Mon, 12 Dec 2016 13:00:48 -0800 (PST) Return-Path: Received: from localhost.localdomain ([2601:1c2:1002:83f0:4e72:b9ff:fe99:466a]) by smtp.gmail.com with ESMTPSA id f3sm41074078pga.45.2016.12.12.13.00.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Dec 2016 13:00:47 -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 v3] drm/bridge: adv7511: Enable HPD interrupts to support hotplug and improve monitor detection Date: Mon, 12 Dec 2016 13:00:39 -0800 Message-Id: <1481576441-23529-4-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1481576441-23529-1-git-send-email-john.stultz@linaro.org> References: <1481576441-23529-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; }