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 C5646C433EF for ; Wed, 13 Jul 2022 08:34:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235585AbiGMIeq (ORCPT ); Wed, 13 Jul 2022 04:34:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235608AbiGMIeb (ORCPT ); Wed, 13 Jul 2022 04:34:31 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD4F8A44EA for ; Wed, 13 Jul 2022 01:34:30 -0700 (PDT) Received: from gallifrey.ext.pengutronix.de ([2001:67c:670:201:5054:ff:fe8d:eefb] helo=[IPv6:::1]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oBXp8-0003AZ-3C; Wed, 13 Jul 2022 10:34:22 +0200 Message-ID: <6f0cd4c69e0eba3e5da513cfbbe5f162e650a8f1.camel@pengutronix.de> Subject: Re: [PATCH v14 10/17] PCI: imx6: Turn off regulator when system is in suspend mode From: Lucas Stach To: Richard Zhu , bhelgaas@google.com, robh+dt@kernel.org, broonie@kernel.org, lorenzo.pieralisi@arm.com, festevam@gmail.com, francesco.dolcini@toradex.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, linux-imx@nxp.com Date: Wed, 13 Jul 2022 10:34:20 +0200 In-Reply-To: <1656645935-1370-11-git-send-email-hongxing.zhu@nxp.com> References: <1656645935-1370-1-git-send-email-hongxing.zhu@nxp.com> <1656645935-1370-11-git-send-email-hongxing.zhu@nxp.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.40.4 (3.40.4-1.fc34) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:201:5054:ff:fe8d:eefb X-SA-Exim-Mail-From: l.stach@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Freitag, dem 01.07.2022 um 11:25 +0800 schrieb Richard Zhu: > The driver should undo any enables it did itself. The regulator disable > shouldn't be basing decisions on regulator_is_enabled(). > > Move the regulator_disable to the suspend function, turn off regulator when > the system is in suspend mode. > > To keep the balance of the regulator usage counter, disable the regulator > in shutdown. > > Link: https://lore.kernel.org/r/1655189942-12678-6-git-send-email-hongxing.z > hu@nxp.com > Signed-off-by: Richard Zhu > Signed-off-by: Bjorn Helgaas > --- > drivers/pci/controller/dwc/pci-imx6.c | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 2b42c37f1617..f72eb609769b 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -670,8 +670,6 @@ static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie) > > static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie) > { > - struct device *dev = imx6_pcie->pci->dev; > - > switch (imx6_pcie->drvdata->variant) { > case IMX7D: > case IMX8MQ: > @@ -702,14 +700,6 @@ static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie) > break; > } > > - if (imx6_pcie->vpcie && regulator_is_enabled(imx6_pcie->vpcie) > 0) { > - int ret = regulator_disable(imx6_pcie->vpcie); > - > - if (ret) > - dev_err(dev, "failed to disable vpcie regulator: %d\n", > - ret); > - } > - > /* Some boards don't have PCIe reset GPIO. */ > if (gpio_is_valid(imx6_pcie->reset_gpio)) > gpio_set_value_cansleep(imx6_pcie->reset_gpio, > @@ -722,7 +712,7 @@ static int imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie) > struct device *dev = pci->dev; > int ret; > > - if (imx6_pcie->vpcie && !regulator_is_enabled(imx6_pcie->vpcie)) { > + if (imx6_pcie->vpcie) { > ret = regulator_enable(imx6_pcie->vpcie); > if (ret) { > dev_err(dev, "failed to enable vpcie regulator: %d\n", The regulator really has nothing to do with the core reset. Please move this regulator enable into imx6_pcie_host_init(). > @@ -795,7 +785,7 @@ static int imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie) > return 0; > > err_clks: > - if (imx6_pcie->vpcie && regulator_is_enabled(imx6_pcie->vpcie) > 0) { > + if (imx6_pcie->vpcie) { > ret = regulator_disable(imx6_pcie->vpcie); > if (ret) > dev_err(dev, "failed to disable vpcie regulator: %d\n", > @@ -1022,6 +1012,9 @@ static int imx6_pcie_suspend_noirq(struct device *dev) > break; > } > > + if (imx6_pcie->vpcie) > + regulator_disable(imx6_pcie->vpcie); > + > return 0; > } > > @@ -1268,6 +1261,8 @@ static void imx6_pcie_shutdown(struct platform_device *pdev) > > /* bring down link, so bootloader gets clean state in case of reboot */ > imx6_pcie_assert_core_reset(imx6_pcie); > + if (imx6_pcie->vpcie) > + regulator_disable(imx6_pcie->vpcie); This looks like a separate change, not mentioned in the commit message. I'm not sure if we should do this. Shutdown is supposed to just stop the device, which is already achieved by imx6_pcie_assert_core_reset().  If we would want to do a full cleanup here we would also need to disable clocks and get the reset GPIO into asserted state. I don't think we want to do all of this here. Regards, Lucas > } > > static const struct imx6_pcie_drvdata drvdata[] = { 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 639E7C43334 for ; Wed, 13 Jul 2022 08:35:29 +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: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bxuKcI1Qi4NPDT4khslMUhFamjMpF8orcsAb2pHMCbc=; b=xpvHjwy6YVDsFu ufF176bZUzwdDbvJ4R0w4jqGMu8SbrvfzSXxCW+oy4osyFBINZA5wi+PeVSyCdHAIWmdLXabOLdly SWBFVRUbQDb1BQNd+h3NM81+dn9Yw9uSzLP1zM57zA86zEPcdNPLdfChJPT1PxY4zSQWcyNvY7C5J v4nJYbptqRC8dz1UKOgVWO1t0tHekkYoAjJYxq6pIujPEEtPtG4eUQmzc2jH8cCd2RKlGYUc9CWXf KJ1hB+oNu9c6QU8sFN0rDK3yPaufXi3f4TAxDLw8CsDk3fFSTmpBlj2+Q3Hj3wjHqqgZ5VOy3WBRV 2i10hlctm2dssInlu+AQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oBXpI-001gif-MP; Wed, 13 Jul 2022 08:34:32 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oBXpF-001ghK-DS for linux-arm-kernel@lists.infradead.org; Wed, 13 Jul 2022 08:34:31 +0000 Received: from gallifrey.ext.pengutronix.de ([2001:67c:670:201:5054:ff:fe8d:eefb] helo=[IPv6:::1]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oBXp8-0003AZ-3C; Wed, 13 Jul 2022 10:34:22 +0200 Message-ID: <6f0cd4c69e0eba3e5da513cfbbe5f162e650a8f1.camel@pengutronix.de> Subject: Re: [PATCH v14 10/17] PCI: imx6: Turn off regulator when system is in suspend mode From: Lucas Stach To: Richard Zhu , bhelgaas@google.com, robh+dt@kernel.org, broonie@kernel.org, lorenzo.pieralisi@arm.com, festevam@gmail.com, francesco.dolcini@toradex.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, linux-imx@nxp.com Date: Wed, 13 Jul 2022 10:34:20 +0200 In-Reply-To: <1656645935-1370-11-git-send-email-hongxing.zhu@nxp.com> References: <1656645935-1370-1-git-send-email-hongxing.zhu@nxp.com> <1656645935-1370-11-git-send-email-hongxing.zhu@nxp.com> User-Agent: Evolution 3.40.4 (3.40.4-1.fc34) MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:201:5054:ff:fe8d:eefb X-SA-Exim-Mail-From: l.stach@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220713_013429_472316_A5EC0E20 X-CRM114-Status: GOOD ( 26.45 ) 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 QW0gRnJlaXRhZywgZGVtIDAxLjA3LjIwMjIgdW0gMTE6MjUgKzA4MDAgc2NocmllYiBSaWNoYXJk IFpodToKPiBUaGUgZHJpdmVyIHNob3VsZCB1bmRvIGFueSBlbmFibGVzIGl0IGRpZCBpdHNlbGYu IFRoZSByZWd1bGF0b3IgZGlzYWJsZQo+IHNob3VsZG4ndCBiZSBiYXNpbmcgZGVjaXNpb25zIG9u IHJlZ3VsYXRvcl9pc19lbmFibGVkKCkuCj4gCj4gTW92ZSB0aGUgcmVndWxhdG9yX2Rpc2FibGUg dG8gdGhlIHN1c3BlbmQgZnVuY3Rpb24sIHR1cm4gb2ZmIHJlZ3VsYXRvciB3aGVuCj4gdGhlIHN5 c3RlbSBpcyBpbiBzdXNwZW5kIG1vZGUuCj4gCj4gVG8ga2VlcCB0aGUgYmFsYW5jZSBvZiB0aGUg cmVndWxhdG9yIHVzYWdlIGNvdW50ZXIsIGRpc2FibGUgdGhlIHJlZ3VsYXRvcgo+IGluIHNodXRk b3duLgo+IAo+IExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMTY1NTE4OTk0Mi0xMjY3 OC02LWdpdC1zZW5kLWVtYWlsLWhvbmd4aW5nLnoKPiBodUBueHAuY29tCj4gU2lnbmVkLW9mZi1i eTogUmljaGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEJq b3JuIEhlbGdhYXMgPGJoZWxnYWFzQGdvb2dsZS5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMgfCAxOSArKysrKysrLS0tLS0tLS0tLS0tCj4gIDEgZmls ZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpLWlteDYuYwo+IGluZGV4IDJiNDJjMzdmMTYxNy4uZjcyZWI2MDk3 NjliIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMK PiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4gQEAgLTY3MCw4 ICs2NzAsNiBAQCBzdGF0aWMgdm9pZCBpbXg2X3BjaWVfY2xrX2Rpc2FibGUoc3RydWN0IGlteDZf cGNpZSAqaW14Nl9wY2llKQo+ICAKPiAgc3RhdGljIHZvaWQgaW14Nl9wY2llX2Fzc2VydF9jb3Jl X3Jlc2V0KHN0cnVjdCBpbXg2X3BjaWUgKmlteDZfcGNpZSkKPiAgewo+IC0Jc3RydWN0IGRldmlj ZSAqZGV2ID0gaW14Nl9wY2llLT5wY2ktPmRldjsKPiAtCj4gIAlzd2l0Y2ggKGlteDZfcGNpZS0+ ZHJ2ZGF0YS0+dmFyaWFudCkgewo+ICAJY2FzZSBJTVg3RDoKPiAgCWNhc2UgSU1YOE1ROgo+IEBA IC03MDIsMTQgKzcwMCw2IEBAIHN0YXRpYyB2b2lkIGlteDZfcGNpZV9hc3NlcnRfY29yZV9yZXNl dChzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpCj4gIAkJYnJlYWs7Cj4gIAl9Cj4gIAo+IC0J aWYgKGlteDZfcGNpZS0+dnBjaWUgJiYgcmVndWxhdG9yX2lzX2VuYWJsZWQoaW14Nl9wY2llLT52 cGNpZSkgPiAwKSB7Cj4gLQkJaW50IHJldCA9IHJlZ3VsYXRvcl9kaXNhYmxlKGlteDZfcGNpZS0+ dnBjaWUpOwo+IC0KPiAtCQlpZiAocmV0KQo+IC0JCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBk aXNhYmxlIHZwY2llIHJlZ3VsYXRvcjogJWRcbiIsCj4gLQkJCQlyZXQpOwo+IC0JfQo+IC0KPiAg CS8qIFNvbWUgYm9hcmRzIGRvbid0IGhhdmUgUENJZSByZXNldCBHUElPLiAqLwo+ICAJaWYgKGdw aW9faXNfdmFsaWQoaW14Nl9wY2llLT5yZXNldF9ncGlvKSkKPiAgCQlncGlvX3NldF92YWx1ZV9j YW5zbGVlcChpbXg2X3BjaWUtPnJlc2V0X2dwaW8sCj4gQEAgLTcyMiw3ICs3MTIsNyBAQCBzdGF0 aWMgaW50IGlteDZfcGNpZV9kZWFzc2VydF9jb3JlX3Jlc2V0KHN0cnVjdCBpbXg2X3BjaWUgKmlt eDZfcGNpZSkKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+ICAJaW50IHJldDsK PiAgCj4gLQlpZiAoaW14Nl9wY2llLT52cGNpZSAmJiAhcmVndWxhdG9yX2lzX2VuYWJsZWQoaW14 Nl9wY2llLT52cGNpZSkpIHsKPiArCWlmIChpbXg2X3BjaWUtPnZwY2llKSB7Cj4gIAkJcmV0ID0g cmVndWxhdG9yX2VuYWJsZShpbXg2X3BjaWUtPnZwY2llKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSB2cGNpZSByZWd1bGF0b3I6ICVkXG4iLAoK VGhlIHJlZ3VsYXRvciByZWFsbHkgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgY29yZSByZXNl dC4gUGxlYXNlIG1vdmUKdGhpcyByZWd1bGF0b3IgZW5hYmxlIGludG8gaW14Nl9wY2llX2hvc3Rf aW5pdCgpLgoKPiBAQCAtNzk1LDcgKzc4NSw3IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX2RlYXNz ZXJ0X2NvcmVfcmVzZXQoc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llKQo+ICAJcmV0dXJuIDA7 Cj4gIAo+ICBlcnJfY2xrczoKPiAtCWlmIChpbXg2X3BjaWUtPnZwY2llICYmIHJlZ3VsYXRvcl9p c19lbmFibGVkKGlteDZfcGNpZS0+dnBjaWUpID4gMCkgewo+ICsJaWYgKGlteDZfcGNpZS0+dnBj aWUpIHsKPiAgCQlyZXQgPSByZWd1bGF0b3JfZGlzYWJsZShpbXg2X3BjaWUtPnZwY2llKTsKPiAg CQlpZiAocmV0KQo+ICAJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBkaXNhYmxlIHZwY2llIHJl Z3VsYXRvcjogJWRcbiIsCj4gQEAgLTEwMjIsNiArMTAxMiw5IEBAIHN0YXRpYyBpbnQgaW14Nl9w Y2llX3N1c3BlbmRfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJCWJyZWFrOwo+ICAJfQo+ ICAKPiArCWlmIChpbXg2X3BjaWUtPnZwY2llKQo+ICsJCXJlZ3VsYXRvcl9kaXNhYmxlKGlteDZf cGNpZS0+dnBjaWUpOwo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC0xMjY4LDYgKzEy NjEsOCBAQCBzdGF0aWMgdm9pZCBpbXg2X3BjaWVfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiAgCj4gIAkvKiBicmluZyBkb3duIGxpbmssIHNvIGJvb3Rsb2FkZXIgZ2V0 cyBjbGVhbiBzdGF0ZSBpbiBjYXNlIG9mIHJlYm9vdCAqLwo+ICAJaW14Nl9wY2llX2Fzc2VydF9j b3JlX3Jlc2V0KGlteDZfcGNpZSk7Cj4gKwlpZiAoaW14Nl9wY2llLT52cGNpZSkKPiArCQlyZWd1 bGF0b3JfZGlzYWJsZShpbXg2X3BjaWUtPnZwY2llKTsKClRoaXMgbG9va3MgbGlrZSBhIHNlcGFy YXRlIGNoYW5nZSwgbm90IG1lbnRpb25lZCBpbiB0aGUgY29tbWl0IG1lc3NhZ2UuCkknbSBub3Qg c3VyZSBpZiB3ZSBzaG91bGQgZG8gdGhpcy4gU2h1dGRvd24gaXMgc3VwcG9zZWQgdG8ganVzdCBz dG9wCnRoZSBkZXZpY2UsIHdoaWNoIGlzIGFscmVhZHkgYWNoaWV2ZWQgYnkKaW14Nl9wY2llX2Fz c2VydF9jb3JlX3Jlc2V0KCkuwqAKCklmIHdlIHdvdWxkIHdhbnQgdG8gZG8gYSBmdWxsIGNsZWFu dXAgaGVyZSB3ZSB3b3VsZCBhbHNvIG5lZWQgdG8KZGlzYWJsZSBjbG9ja3MgYW5kIGdldCB0aGUg cmVzZXQgR1BJTyBpbnRvIGFzc2VydGVkIHN0YXRlLiBJIGRvbid0CnRoaW5rIHdlIHdhbnQgdG8g ZG8gYWxsIG9mIHRoaXMgaGVyZS4KClJlZ2FyZHMsCkx1Y2FzCj4gIH0KPiAgCj4gIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW14Nl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0gewoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==