From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4FFFC433F5 for ; Sun, 20 Feb 2022 19:34:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244652AbiBTTe6 (ORCPT ); Sun, 20 Feb 2022 14:34:58 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:43748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244649AbiBTTe5 (ORCPT ); Sun, 20 Feb 2022 14:34:57 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 820B64507D for ; Sun, 20 Feb 2022 11:34:36 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3B627B80DC1 for ; Sun, 20 Feb 2022 19:34:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2327DC36AE2; Sun, 20 Feb 2022 19:34:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645385674; bh=Yk4h7+6wOvhJPfvPdF/6j11Ecoy3msqIfaKocxRvsyA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c2O5paZfjIqr9KmrrhqvUKnxdmaa0wPzAODPkX7SAOnrIYl09uLJaEjTib1Nky3GL +i9Ahri204IGa3IG+pBEqyNCj/h7ISO3NOb3axU0vloT9vASJbythfcpN7zd6Bna80 PCeUoEyqLIdQLG6/F6g57XstrY/ryFhkjPxDu9BWp3vA+5DnDQOIXLV/fnoQo/DtFm I/VnuIui2zFetFljgdjAqkQbvwsr6a1P5OxKlFv51bMD9LYNgwkIyuc+73Z3YDOgzM lMWBckMDA7nHHVzzW9GCoEWpKv3edCJm97+RH2MGqtRkKz+bRfRknuL5LcpRxTlFkA eH7bU3lAlwggg== From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: Lorenzo Pieralisi , Bjorn Helgaas Cc: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Marc Zyngier , pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Gregory CLEMENT , =?UTF-8?q?Marek=20Beh=C3=BAn?= Subject: [PATCH 18/18] PCI: aardvark: Optimize PCIe card reset via GPIO Date: Sun, 20 Feb 2022 20:33:46 +0100 Message-Id: <20220220193346.23789-19-kabel@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220220193346.23789-1-kabel@kernel.org> References: <20220220193346.23789-1-kabel@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org From: Pali Rohár Currently we always assert reset GPIO (if it is available) for ~10ms. But if the GPIO was asserted before driver probe (by bootloader for example), we do not need to wait these 10ms. Assert reset GPIO for 10ms only if it wasn't asserted. We need to get the GPIO with flag GPIOD_FLAGS_BIT_DIR_OUT instead of GPIOD_OUT_LOW, so that it's value isn't changed when getting it. Signed-off-by: Pali Rohár Signed-off-by: Marek Behún --- drivers/pci/controller/pci-aardvark.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index 056f49d0e3a4..80eb6e98923f 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -431,10 +431,17 @@ static void advk_pcie_issue_perst(struct advk_pcie *pcie) if (!pcie->reset_gpio) return; - /* 10ms delay is needed for some cards */ - dev_info(&pcie->pdev->dev, "issuing PERST via reset GPIO for 10ms\n"); - gpiod_set_value_cansleep(pcie->reset_gpio, 1); - usleep_range(10000, 11000); + /* + * Assert PERST# for at least 10ms if it wasn't asserted yet (it could + * have been asserted by bootloader or by GPIO driver, for example). + */ + if (!gpiod_get_value(pcie->reset_gpio)) { + dev_info(&pcie->pdev->dev, "issuing PERST via reset GPIO for 10ms\n"); + gpiod_set_value_cansleep(pcie->reset_gpio, 1); + usleep_range(10000, 11000); + } + + /* De-assert PERST# */ gpiod_set_value_cansleep(pcie->reset_gpio, 0); } @@ -2049,7 +2056,7 @@ static int advk_pcie_probe(struct platform_device *pdev) pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node, "reset-gpios", 0, - GPIOD_OUT_LOW, + GPIOD_FLAGS_BIT_DIR_OUT, "pcie1-reset"); ret = PTR_ERR_OR_ZERO(pcie->reset_gpio); if (ret) { -- 2.34.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BC64DC433EF for ; Sun, 20 Feb 2022 19:44:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xvYq+v5qVmByOtgNUxs+6v1xgYR/WdJv9CXQZsG5ZIY=; b=YKvfThaVA5v3+P zLOBSAy0j7H+nbPBkB8+aEAp/BzGRkWma9R3cNN9cv4TA7PeHOc+euiaJ8geuB2oTarLN6zbdqeQY DUzVy0c2xtb5cpeJViUpciC/WRb/h30xfVdePUhGLT5mIcb6ObWfdYnXsgDEenoeM+KviqekJQ924 RQx5CbP7jqDXx3POTb54VbO0c+oVJZcr2ruwTMzHz+hLlB/Zkm2Pn0Vxl70f29ytPrfwilHrtyMgO jRH4+VMoLu3HV4chuVA23OHPH8+wCRFBeNqiglXasjMeGI/FZ0QsmMh+iXDhy4KDcTS5rA/axBguo 5kRSUkZ7WnbBREfIT6Qg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nLs6c-002FI8-H6; Sun, 20 Feb 2022 19:42:51 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nLrye-002BQF-K3 for linux-arm-kernel@lists.infradead.org; Sun, 20 Feb 2022 19:34:38 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4BE14B80DB6; Sun, 20 Feb 2022 19:34:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2327DC36AE2; Sun, 20 Feb 2022 19:34:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645385674; bh=Yk4h7+6wOvhJPfvPdF/6j11Ecoy3msqIfaKocxRvsyA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c2O5paZfjIqr9KmrrhqvUKnxdmaa0wPzAODPkX7SAOnrIYl09uLJaEjTib1Nky3GL +i9Ahri204IGa3IG+pBEqyNCj/h7ISO3NOb3axU0vloT9vASJbythfcpN7zd6Bna80 PCeUoEyqLIdQLG6/F6g57XstrY/ryFhkjPxDu9BWp3vA+5DnDQOIXLV/fnoQo/DtFm I/VnuIui2zFetFljgdjAqkQbvwsr6a1P5OxKlFv51bMD9LYNgwkIyuc+73Z3YDOgzM lMWBckMDA7nHHVzzW9GCoEWpKv3edCJm97+RH2MGqtRkKz+bRfRknuL5LcpRxTlFkA eH7bU3lAlwggg== From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: Lorenzo Pieralisi , Bjorn Helgaas Cc: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Marc Zyngier , pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Gregory CLEMENT , =?UTF-8?q?Marek=20Beh=C3=BAn?= Subject: [PATCH 18/18] PCI: aardvark: Optimize PCIe card reset via GPIO Date: Sun, 20 Feb 2022 20:33:46 +0100 Message-Id: <20220220193346.23789-19-kabel@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220220193346.23789-1-kabel@kernel.org> References: <20220220193346.23789-1-kabel@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220220_113436_858498_96D99098 X-CRM114-Status: GOOD ( 15.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KCkN1cnJlbnRseSB3ZSBhbHdheXMg YXNzZXJ0IHJlc2V0IEdQSU8gKGlmIGl0IGlzIGF2YWlsYWJsZSkgZm9yIH4xMG1zLgpCdXQgaWYg dGhlIEdQSU8gd2FzIGFzc2VydGVkIGJlZm9yZSBkcml2ZXIgcHJvYmUgKGJ5IGJvb3Rsb2FkZXIg Zm9yCmV4YW1wbGUpLCB3ZSBkbyBub3QgbmVlZCB0byB3YWl0IHRoZXNlIDEwbXMuCgpBc3NlcnQg cmVzZXQgR1BJTyBmb3IgMTBtcyBvbmx5IGlmIGl0IHdhc24ndCBhc3NlcnRlZC4KCldlIG5lZWQg dG8gZ2V0IHRoZSBHUElPIHdpdGggZmxhZyBHUElPRF9GTEFHU19CSVRfRElSX09VVCBpbnN0ZWFk IG9mCkdQSU9EX09VVF9MT1csIHNvIHRoYXQgaXQncyB2YWx1ZSBpc24ndCBjaGFuZ2VkIHdoZW4g Z2V0dGluZyBpdC4KClNpZ25lZC1vZmYtYnk6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+ ClNpZ25lZC1vZmYtYnk6IE1hcmVrIEJlaMO6biA8a2FiZWxAa2VybmVsLm9yZz4KLS0tCiBkcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jIHwgMTcgKysrKysrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCmluZGV4IDA1NmY0OWQwZTNhNC4uODBlYjZlOTg5 MjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCisr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKQEAgLTQzMSwxMCArNDMx LDE3IEBAIHN0YXRpYyB2b2lkIGFkdmtfcGNpZV9pc3N1ZV9wZXJzdChzdHJ1Y3QgYWR2a19wY2ll ICpwY2llKQogCWlmICghcGNpZS0+cmVzZXRfZ3BpbykKIAkJcmV0dXJuOwogCi0JLyogMTBtcyBk ZWxheSBpcyBuZWVkZWQgZm9yIHNvbWUgY2FyZHMgKi8KLQlkZXZfaW5mbygmcGNpZS0+cGRldi0+ ZGV2LCAiaXNzdWluZyBQRVJTVCB2aWEgcmVzZXQgR1BJTyBmb3IgMTBtc1xuIik7Ci0JZ3Bpb2Rf c2V0X3ZhbHVlX2NhbnNsZWVwKHBjaWUtPnJlc2V0X2dwaW8sIDEpOwotCXVzbGVlcF9yYW5nZSgx MDAwMCwgMTEwMDApOworCS8qCisJICogQXNzZXJ0IFBFUlNUIyBmb3IgYXQgbGVhc3QgMTBtcyBp ZiBpdCB3YXNuJ3QgYXNzZXJ0ZWQgeWV0IChpdCBjb3VsZAorCSAqIGhhdmUgYmVlbiBhc3NlcnRl ZCBieSBib290bG9hZGVyIG9yIGJ5IEdQSU8gZHJpdmVyLCBmb3IgZXhhbXBsZSkuCisJICovCisJ aWYgKCFncGlvZF9nZXRfdmFsdWUocGNpZS0+cmVzZXRfZ3BpbykpIHsKKwkJZGV2X2luZm8oJnBj aWUtPnBkZXYtPmRldiwgImlzc3VpbmcgUEVSU1QgdmlhIHJlc2V0IEdQSU8gZm9yIDEwbXNcbiIp OworCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocGNpZS0+cmVzZXRfZ3BpbywgMSk7CisJCXVz bGVlcF9yYW5nZSgxMDAwMCwgMTEwMDApOworCX0KKworCS8qIERlLWFzc2VydCBQRVJTVCMgKi8K IAlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocGNpZS0+cmVzZXRfZ3BpbywgMCk7CiB9CiAKQEAg LTIwNDksNyArMjA1Niw3IEBAIHN0YXRpYyBpbnQgYWR2a19wY2llX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlwY2llLT5yZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXRf ZnJvbV9vZl9ub2RlKGRldiwgZGV2LT5vZl9ub2RlLAogCQkJCQkJICAgICAgICJyZXNldC1ncGlv cyIsIDAsCi0JCQkJCQkgICAgICAgR1BJT0RfT1VUX0xPVywKKwkJCQkJCSAgICAgICBHUElPRF9G TEFHU19CSVRfRElSX09VVCwKIAkJCQkJCSAgICAgICAicGNpZTEtcmVzZXQiKTsKIAlyZXQgPSBQ VFJfRVJSX09SX1pFUk8ocGNpZS0+cmVzZXRfZ3Bpbyk7CiAJaWYgKHJldCkgewotLSAKMi4zNC4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=