From patchwork Wed Apr 5 14:24:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jayesh Choudhary X-Patchwork-Id: 79700 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp357838vqo; Wed, 5 Apr 2023 07:39:30 -0700 (PDT) X-Google-Smtp-Source: AKy350aucWUxhTiJAyrmcs88kGCAj7o/pPSNubUui+LXY/mVszf2xtK3ZbALPIpfBrvjNPeXS+ka X-Received: by 2002:a05:6402:1ad1:b0:4fb:5089:6e01 with SMTP id ba17-20020a0564021ad100b004fb50896e01mr1958186edb.6.1680705570374; Wed, 05 Apr 2023 07:39:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680705570; cv=none; d=google.com; s=arc-20160816; b=OtX0h/97nSYJiD/RpRWF0kERQ81PVIsOxyXvzeomTPpvvvq/rHxDSbvqQgKLgr90TY DFOpCxbYw6AWdXW+bzOdV3M3HTlYWGa2jeSwWVd8R4rUZHSkjbdrWAj/NJbDT5kMsUMU F/iO4X9CyirIpe75PIzUVjaGmCHp5k0su07bmSU79h75B3RcnwRGAP3uLmAcxMGNrczy 3EYFvh3MRJJ6d7zGbQ0GdkH76h7bI+qQDqUT9J4RCf7BPiT7pHwA2t3HPMPcT79FyrO4 F0udYKYmz8d7e1BIXeYosZZ9v2YAiZWexJ2S30o+o+dH9Eag98yoS3LVJZFqv0U3B270 bYMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=qDO37Rl2u94OwUVPnEAZxBPCa+75piDWj4gv5a2V2Zc=; b=S0uZ5ucz6+xiFpdejO+XKZ6BrKtQhun+/RxrRseGByWne/IVtCAZq/yTwIjedxtVOk LPJ9ccLZbxfPY+EF3yBicjaNNSKazOxSjE8yQf+34sGnOWh98CBjDNm9RR+Qm7ITpGXJ gK9Cp6AIywnoIzAiXPXK4Aewo4O6oN6FPtGs+cxkCeLO+dVTGxvGeDHGrXJk928dlpSw ZNv4bVT5N32sngRwZbFl8pGx5hvALK3cCWvQIJU7hwb9a0Oi4TSNQordqEBrOH8Kzett tggsjOrS4ML0AE7I+uvR/LBk8CzMEE8jubqQRCWo2PMbGexoUOHoidmfH8T9R34PexVB 4ssw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=fryHPY1m; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p21-20020a056402075500b004fd298d4b3esi4666106edy.373.2023.04.05.07.39.06; Wed, 05 Apr 2023 07:39:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=fryHPY1m; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238300AbjDEOZZ (ORCPT + 99 others); Wed, 5 Apr 2023 10:25:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238280AbjDEOZV (ORCPT ); Wed, 5 Apr 2023 10:25:21 -0400 Received: from lelv0143.ext.ti.com (lelv0143.ext.ti.com [198.47.23.248]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 993564EFD; Wed, 5 Apr 2023 07:25:13 -0700 (PDT) Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0143.ext.ti.com (8.15.2/8.15.2) with ESMTP id 335EOhSK059451; Wed, 5 Apr 2023 09:24:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1680704683; bh=qDO37Rl2u94OwUVPnEAZxBPCa+75piDWj4gv5a2V2Zc=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=fryHPY1mKzdLY30aiXYYZCvvFh7EQQgCwL3LiFwtyzgwyq+wJ14EzQvP+dzhWrGb/ VRB9i0mIT4ZgujImeAPThTeFi5LDvAxZkIvIFk+BXL0Y/wXXrnWmFjmxiggCkZhxyc E4NnR9mZ8myUIwSTVCfqaeDxY/c374a4CWz1hTHk= Received: from DLEE109.ent.ti.com (dlee109.ent.ti.com [157.170.170.41]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 335EOhTO064579 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 5 Apr 2023 09:24:43 -0500 Received: from DLEE110.ent.ti.com (157.170.170.21) by DLEE109.ent.ti.com (157.170.170.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16; Wed, 5 Apr 2023 09:24:43 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DLEE110.ent.ti.com (157.170.170.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16 via Frontend Transport; Wed, 5 Apr 2023 09:24:43 -0500 Received: from localhost (ileaxei01-snat2.itg.ti.com [10.180.69.6]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 335EOgNt014784; Wed, 5 Apr 2023 09:24:43 -0500 From: Jayesh Choudhary To: , , , CC: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 1/2] dt-bindings: drm/bridge: Add no-hpd property Date: Wed, 5 Apr 2023 19:54:39 +0530 Message-ID: <20230405142440.191939-2-j-choudhary@ti.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230405142440.191939-1-j-choudhary@ti.com> References: <20230405142440.191939-1-j-choudhary@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762347524162289015?= X-GMAIL-MSGID: =?utf-8?q?1762347524162289015?= From: Rahul T R The mhdp bridge can work without its HPD pin hooked up to the connector, but the current bridge driver throws an error when hpd line is not connected to the connector. For such cases, we need an indication for no-hpd, using which we can bypass the hpd detection and instead use the auxiliary channels connected to the DP connector to confirm the connection. So add no-hpd property to the bindings, to disable hpd when not connected or unusable. Signed-off-by: Rahul T R Signed-off-by: Jayesh Choudhary --- .../devicetree/bindings/display/bridge/cdns,mhdp8546.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml index c2b369456e4e..3a6c6d837593 100644 --- a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml +++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml @@ -57,6 +57,12 @@ properties: interrupts: maxItems: 1 + cdns,no-hpd: + type: boolean + description: + Set if the HPD line on the bridge isn't hooked up to anything or is + otherwise unusable. + ports: $ref: /schemas/graph.yaml#/properties/ports From patchwork Wed Apr 5 14:24:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jayesh Choudhary X-Patchwork-Id: 79693 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp355825vqo; Wed, 5 Apr 2023 07:36:34 -0700 (PDT) X-Google-Smtp-Source: AKy350YNDgqvbeWVSw73lLqnctLaQ3XACEBW9yvHVr+m3aVVAxxlibdMH+7rNjl1AMrHpQC6NcWf X-Received: by 2002:a05:6a20:2a0a:b0:db:6237:e76 with SMTP id e10-20020a056a202a0a00b000db62370e76mr5245042pzh.15.1680705394152; Wed, 05 Apr 2023 07:36:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680705394; cv=none; d=google.com; s=arc-20160816; b=yc5DVu9TirBQOzAAJj+f8bs720JM7IvQbN5HEHtENlnBiJeARcWZgmpSV4o5SE94Ti xhkoLGmEtYYd94qA+F18somD5rh2F6KUUVfz0m4zDdklIMJ4WCE0lVL4zhq0AfyfLGZ4 6iaKyYPyDC/yQcrcJk92//hdl6JntgdBTyvEXOnFt1G+edM5BqeggejuWza3Z7geXEy/ GBBioMub/3T2vTNiu8nVJCg4unSUdE7iwgYWENYQNijiyPeMUwO2EK1PTdUnp2M8KT2y Uyd9FN9b78c9rw1i45PVXswo2Fhk1EYwsVVWckjUNl+IVFd+Fg1uwGxLLecRNZtKHmdI EC8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IIg8Hw2d+AztRioYXlvly6uzmoxjKPtZvpXX4icR5Mk=; b=lAF9eYUywuQuCqewhGWmj7tzBppJXAeCfHgexCUDh4FT6tRf8PEr3r6jNOiex1/uup 1Dy622OKH3LEKcR6U36cEJKTxTcsXAveiJDh5NK3bDl/7vrXTT7q7cSp4hliXqpJE+RB GHeUwofA/SkA9YHZKRDcEx3ZufUcBoQvcRsn/GQSovkL/3oD5YhA1yUvMeHXpqPlD+5V FL+kSmTLTVhQhrpYq81NF9LnDpDHobhHAkIbTGPKmenpc0NsV5I6SBX/A0VBlrYzxH6P 15KizF8q0+To6ecmSV86Gunoa9UfoCEt3bZpsUtkgdfn3nS/wV62CQjJ9KHobiySyNBQ CeNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=QEOidwmJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t127-20020a625f85000000b00627e9b0d5d7si12546897pfb.354.2023.04.05.07.36.18; Wed, 05 Apr 2023 07:36:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=QEOidwmJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238393AbjDEOZa (ORCPT + 99 others); Wed, 5 Apr 2023 10:25:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238246AbjDEOZY (ORCPT ); Wed, 5 Apr 2023 10:25:24 -0400 Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 467CE49E6; Wed, 5 Apr 2023 07:25:12 -0700 (PDT) Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 335EOjYq018196; Wed, 5 Apr 2023 09:24:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1680704685; bh=IIg8Hw2d+AztRioYXlvly6uzmoxjKPtZvpXX4icR5Mk=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=QEOidwmJUfL0gZvptL6rL2APLDQ9IKaE5fjGSlXaS6Gz5wQNNdtnO3M321mayrH9X Wqqhq/8JsmbXuQv0lri4Xoo03+rD6V3TrJuP9yVjQpldAr85l8lH4m5DMQInODAmYU MjrrI3ZodlIyDdWKvWp3Cl+kTLrtI7RW2ktaP1pc= Received: from DFLE114.ent.ti.com (dfle114.ent.ti.com [10.64.6.35]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 335EOjUQ064587 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 5 Apr 2023 09:24:45 -0500 Received: from DFLE110.ent.ti.com (10.64.6.31) by DFLE114.ent.ti.com (10.64.6.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16; Wed, 5 Apr 2023 09:24:45 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE110.ent.ti.com (10.64.6.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16 via Frontend Transport; Wed, 5 Apr 2023 09:24:45 -0500 Received: from localhost (ileaxei01-snat2.itg.ti.com [10.180.69.6]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id 335EOiA3029128; Wed, 5 Apr 2023 09:24:44 -0500 From: Jayesh Choudhary To: , , , CC: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 2/2] drm: bridge: cdns-mhdp8546: Add support for no-hpd Date: Wed, 5 Apr 2023 19:54:40 +0530 Message-ID: <20230405142440.191939-3-j-choudhary@ti.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230405142440.191939-1-j-choudhary@ti.com> References: <20230405142440.191939-1-j-choudhary@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762347339234706602?= X-GMAIL-MSGID: =?utf-8?q?1762347339234706602?= From: Rahul T R In J721S2 EVMs DP0 hpd is not connected to correct hpd pin on SOC, to handle such cases, Add support for "no-hpd" property in the device tree node to disable hpd Also change the log level for dpcd read failuers to debug, since framework retries 32 times for each read Signed-off-by: Rahul T R Signed-off-by: Jayesh Choudhary --- .../drm/bridge/cadence/cdns-mhdp8546-core.c | 37 ++++++++++++++++--- .../drm/bridge/cadence/cdns-mhdp8546-core.h | 1 + 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c index f6822dfa3805..e177794b069d 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c @@ -54,6 +54,8 @@ #include "cdns-mhdp8546-hdcp.h" #include "cdns-mhdp8546-j721e.h" +static int cdns_mhdp_update_link_status(struct cdns_mhdp_device *mhdp); + static int cdns_mhdp_mailbox_read(struct cdns_mhdp_device *mhdp) { int ret, empty; @@ -749,7 +751,7 @@ static int cdns_mhdp_fw_activate(const struct firmware *fw, * MHDP_HW_STOPPED happens only due to driver removal when * bridge should already be detached. */ - if (mhdp->bridge_attached) + if (mhdp->bridge_attached && !mhdp->no_hpd) writel(~(u32)CDNS_APB_INT_MASK_SW_EVENT_INT, mhdp->regs + CDNS_APB_INT_MASK); @@ -845,7 +847,7 @@ static ssize_t cdns_mhdp_transfer(struct drm_dp_aux *aux, ret = cdns_mhdp_dpcd_read(mhdp, msg->address, msg->buffer, msg->size); if (ret) { - dev_err(mhdp->dev, + dev_dbg(mhdp->dev, "Failed to read DPCD addr %u\n", msg->address); @@ -1738,6 +1740,19 @@ static int cdns_mhdp_attach(struct drm_bridge *bridge, spin_unlock(&mhdp->start_lock); + if (mhdp->no_hpd) { + ret = wait_event_timeout(mhdp->fw_load_wq, + mhdp->hw_state == MHDP_HW_READY, + msecs_to_jiffies(100)); + if (ret == 0) { + dev_err(mhdp->dev, "%s: Timeout waiting for fw loading\n", + __func__); + return -ETIMEDOUT; + } + + cdns_mhdp_update_link_status(mhdp); + return 0; + } /* Enable SW event interrupts */ if (hw_ready) writel(~(u32)CDNS_APB_INT_MASK_SW_EVENT_INT, @@ -2256,7 +2271,16 @@ static int cdns_mhdp_update_link_status(struct cdns_mhdp_device *mhdp) mutex_lock(&mhdp->link_mutex); - mhdp->plugged = cdns_mhdp_detect_hpd(mhdp, &hpd_pulse); + if (mhdp->no_hpd) { + ret = drm_dp_dpcd_read_link_status(&mhdp->aux, status); + hpd_pulse = false; + if (ret < 0) + mhdp->plugged = false; + else + mhdp->plugged = true; + } else { + mhdp->plugged = cdns_mhdp_detect_hpd(mhdp, &hpd_pulse); + } if (!mhdp->plugged) { cdns_mhdp_link_down(mhdp); @@ -2451,6 +2475,8 @@ static int cdns_mhdp_probe(struct platform_device *pdev) mhdp->aux.dev = dev; mhdp->aux.transfer = cdns_mhdp_transfer; + mhdp->no_hpd = of_property_read_bool(dev->of_node, "cdns,no-hpd"); + mhdp->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(mhdp->regs)) { dev_err(dev, "Failed to get memory resource\n"); @@ -2526,8 +2552,9 @@ static int cdns_mhdp_probe(struct platform_device *pdev) mhdp->bridge.of_node = pdev->dev.of_node; mhdp->bridge.funcs = &cdns_mhdp_bridge_funcs; - mhdp->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | - DRM_BRIDGE_OP_HPD; + mhdp->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID; + if (!mhdp->no_hpd) + mhdp->bridge.ops |= DRM_BRIDGE_OP_HPD; mhdp->bridge.type = DRM_MODE_CONNECTOR_DisplayPort; if (mhdp->info) mhdp->bridge.timings = mhdp->info->timings; diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h index bedddd510d17..6786ccb51387 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h @@ -388,6 +388,7 @@ struct cdns_mhdp_device { bool link_up; bool plugged; + bool no_hpd; /* * "start_lock" protects the access to bridge_attached and