From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92B6A824A4; Tue, 23 Apr 2024 10:53:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.196 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713869629; cv=none; b=iTM2wGl4UDGy7Eqt2A0PKr7s4EByaD6VNCKkxMgxFXaqELsN/1tTjx9MkMWTPMQNdu2bKzsVYz134D9fw7mO/tbfNH2smhZk/YReYSElUDsZc9V6ATLTD4BI+IglIt2k3WueEtTQvWbcwEPDmUrbsPO3QOEDF2taKCN5ceypCPo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713869629; c=relaxed/simple; bh=LrmdXQwT4U4g4BrzSOIGcl4UVDjaVzUdJEoh8Po20rc=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=cjc5OzdU7YeMYkC5hoGuhxKH7jx4LCAipEfPK4GQ/2/sisnaW50gTUCu6bCfJWIs7NUtlwoYOAas9awQJYmSh8szlDLnlET9gCmCp3ie5q0WXSrjCH7ColwFvmirDwFhvAngRnRiF/uj+a6/zY+QJK2esW4SOACiJV8nGr01YeA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=KwIJrc7A; arc=none smtp.client-ip=217.70.183.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="KwIJrc7A" Received: by mail.gandi.net (Postfix) with ESMTPSA id F3442E000A; Tue, 23 Apr 2024 10:53:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1713869624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LO0/KBAgvShTcAJdKgnWdGKkN3QsevtB0Y7cE2P2ynU=; b=KwIJrc7A3BRzlbEC4BAMGMC3UhWnjAUAKktH+AeN9xTRxinYxN4uHtqrXp3BAMpGSCtKuW EHdUq5EIvACj1peiZv3/QYxbj+pk5rhhVMPokdO6cRPcJ05lF455YRvnu70XV+wQUHSNzN MOLdzjs6cmPSEIYHt+hbeRMIWH51OYlGYNVFuQAa09/GVl+uaG6Uw2gTxKwFVASzLbFf+L i2Sh+JmqFAz6E9pux/W/+n8AbPEfEPufhexCHt8Nih224Js90u0RciZ5cjH84Bbb4HScMD 9E7THt+SiW1Qo9zHY9y86QjvrCr3hUycq7V9K66jwGFcWIDxmM2k/aRt1NhqDw== Message-ID: Date: Tue, 23 Apr 2024 12:53:42 +0200 Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 01/11] gpio: pca953x: move suspend()/resume() to suspend_noirq()/resume_noirq() To: Andy Shevchenko , Geert Uytterhoeven Cc: Linus Walleij , Bartosz Golaszewski , Tony Lindgren , Aaro Koskinen , Janusz Krzysztofik , Vignesh R , Andi Shyti , Peter Rosin , Lorenzo Pieralisi , =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Siddharth Vadapalli , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-i2c@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, gregory.clement@bootlin.com, theo.lebrun@bootlin.com, thomas.petazzoni@bootlin.com, u-kumar1@ti.com, Bartosz Golaszewski , Wolfram Sang , Linux-Renesas References: <20240102-j7200-pcie-s2r-v5-0-4b8c46711ded@bootlin.com> <20240102-j7200-pcie-s2r-v5-1-4b8c46711ded@bootlin.com> Content-Language: en-US From: Thomas Richard In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: thomas.richard@bootlin.com On 4/23/24 12:34, Andy Shevchenko wrote: > On Tue, Apr 23, 2024 at 12:42 PM Geert Uytterhoeven > wrote: >> On Tue, Apr 16, 2024 at 3:31 PM Thomas Richard >> wrote: > > ... > >> +i2c-rcar e66d8000.i2c: error -16 : 10000005 > > It probably means that I²C host controller is already in power off > mode and can't serve anymore. Hello, Yes the i2c controller is already off. In fact it's the same issue I had with the i2c-omap driver. In suspend-noirq, the runtime pm is disabled, so you can't wakeup a device. More details available in this thread [1]. So the trick is to wakeup the device during suspend (like I did for the i2c-omap driver [2]. [1] https://lore.kernel.org/all/f68c9a54-0fde-4709-9d2f-0d23a049341b@bootlin.com/ [2] https://lore.kernel.org/all/20240102-j7200-pcie-s2r-v5-2-4b8c46711ded@bootlin.com/ I think the patch below should fix the issue. --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c @@ -1232,7 +1232,7 @@ static void rcar_i2c_remove(struct platform_device *pdev) pm_runtime_disable(dev); } -static int rcar_i2c_suspend(struct device *dev) +static int rcar_i2c_suspend_noirq(struct device *dev) { struct rcar_i2c_priv *priv = dev_get_drvdata(dev); @@ -1240,7 +1240,7 @@ static int rcar_i2c_suspend(struct device *dev) return 0; } -static int rcar_i2c_resume(struct device *dev) +static int rcar_i2c_resume_noirq(struct device *dev) { struct rcar_i2c_priv *priv = dev_get_drvdata(dev); @@ -1248,8 +1248,23 @@ static int rcar_i2c_resume(struct device *dev) return 0; } +static int rcar_i2c_suspend(struct device *dev) +{ + pm_runtime_get_sync(dev); + + return 0; +} + +static int rcar_i2c_resume(struct device *dev) +{ + pm_runtime_put(dev); + + return 0; +} + static const struct dev_pm_ops rcar_i2c_pm_ops = { - NOIRQ_SYSTEM_SLEEP_PM_OPS(rcar_i2c_suspend, rcar_i2c_resume) + NOIRQ_SYSTEM_SLEEP_PM_OPS(rcar_i2c_suspend_noirq, rcar_i2c_resume_noirq) + SYSTEM_SLEEP_PM_OPS(rcar_i2c_suspend, rcar_i2c_resume) }; static struct platform_driver rcar_i2c_driver = { > >> +pca953x 4-0020: Failed to sync GPIO dir registers: -16 >> +pca953x 4-0020: Failed to restore register map: -16 >> +pca953x 4-0020: PM: dpm_run_callback(): pca953x_resume_noirq >> returns -16 >> +pca953x 4-0020: PM: failed to resume async noirq: error -16 > > Yeah, with this it's kinda forcing _every_ I²C host controller PM to > be moved also to noirq() or alike. Yes indeed. But this controller is already in noirq(). So the issue was already there. We never saw it because we never did i2c accesses in noirq(). Best Regards, -- Thomas Richard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com 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 6E62DC4345F for ; Tue, 23 Apr 2024 10:54:16 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=TpBoSuMkJomwJnd9/5Z6JwUSuNO7lN9gC7jCxcaX9bI=; b=01gTP3yd6Ho3r5 ejCJNRXdUEaGYuet1xuO09jTvxD5VpXUNuHnzLHSS+0QAm4TVXqVohuDYAxdvug+3Vf7K/kYkqI7t 5gpsD/xy8pQW4aSY+CQysQW0eLGisDPoJQulo8wsyqGtQYjt98ihfw0MVhrClwSX1bi5Ehn34kSjd /INQfqZpeYlLnszaN/dxHFVlY2Ud6BJb7slGhtconIYSAWtXF8ryQ6XsRke2wOjnAlVhBHNQsGXVP 1bf0D6vxFVUI/Ct5oaOtUZJHW5xLUOzCvzNatn2x7tY3TnPqChqRPQoQYiyoi/fVQ86U8iA/24wWV sB5uJ6Y7KIK+pPHsvMIA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzDmo-0000000GyT1-140E; Tue, 23 Apr 2024 10:54:06 +0000 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzDmb-0000000GyNf-1vba for linux-arm-kernel@lists.infradead.org; Tue, 23 Apr 2024 10:53:56 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id F3442E000A; Tue, 23 Apr 2024 10:53:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1713869624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LO0/KBAgvShTcAJdKgnWdGKkN3QsevtB0Y7cE2P2ynU=; b=KwIJrc7A3BRzlbEC4BAMGMC3UhWnjAUAKktH+AeN9xTRxinYxN4uHtqrXp3BAMpGSCtKuW EHdUq5EIvACj1peiZv3/QYxbj+pk5rhhVMPokdO6cRPcJ05lF455YRvnu70XV+wQUHSNzN MOLdzjs6cmPSEIYHt+hbeRMIWH51OYlGYNVFuQAa09/GVl+uaG6Uw2gTxKwFVASzLbFf+L i2Sh+JmqFAz6E9pux/W/+n8AbPEfEPufhexCHt8Nih224Js90u0RciZ5cjH84Bbb4HScMD 9E7THt+SiW1Qo9zHY9y86QjvrCr3hUycq7V9K66jwGFcWIDxmM2k/aRt1NhqDw== Message-ID: Date: Tue, 23 Apr 2024 12:53:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 01/11] gpio: pca953x: move suspend()/resume() to suspend_noirq()/resume_noirq() To: Andy Shevchenko , Geert Uytterhoeven Cc: Linus Walleij , Bartosz Golaszewski , Tony Lindgren , Aaro Koskinen , Janusz Krzysztofik , Vignesh R , Andi Shyti , Peter Rosin , Lorenzo Pieralisi , =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Siddharth Vadapalli , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-i2c@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, gregory.clement@bootlin.com, theo.lebrun@bootlin.com, thomas.petazzoni@bootlin.com, u-kumar1@ti.com, Bartosz Golaszewski , Wolfram Sang , Linux-Renesas References: <20240102-j7200-pcie-s2r-v5-0-4b8c46711ded@bootlin.com> <20240102-j7200-pcie-s2r-v5-1-4b8c46711ded@bootlin.com> Content-Language: en-US From: Thomas Richard In-Reply-To: X-GND-Sasl: thomas.richard@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240423_035353_858392_0F59E3FA X-CRM114-Status: GOOD ( 18.51 ) 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 T24gNC8yMy8yNCAxMjozNCwgQW5keSBTaGV2Y2hlbmtvIHdyb3RlOgo+IE9uIFR1ZSwgQXByIDIz LCAyMDI0IGF0IDEyOjQy4oCvUE0gR2VlcnQgVXl0dGVyaG9ldmVuCj4gPGdlZXJ0QGxpbnV4LW02 OGsub3JnPiB3cm90ZToKPj4gT24gVHVlLCBBcHIgMTYsIDIwMjQgYXQgMzozMeKAr1BNIFRob21h cyBSaWNoYXJkCj4+IDx0aG9tYXMucmljaGFyZEBib290bGluLmNvbT4gd3JvdGU6Cj4gCj4gLi4u Cj4gCj4+ICAgICAgICAgK2kyYy1yY2FyIGU2NmQ4MDAwLmkyYzogZXJyb3IgLTE2IDogMTAwMDAw MDUKPiAKPiBJdCBwcm9iYWJseSBtZWFucyB0aGF0IEnCskMgaG9zdCBjb250cm9sbGVyIGlzIGFs cmVhZHkgaW4gcG93ZXIgb2ZmCj4gbW9kZSBhbmQgY2FuJ3Qgc2VydmUgYW55bW9yZS4KCkhlbGxv LAoKWWVzIHRoZSBpMmMgY29udHJvbGxlciBpcyBhbHJlYWR5IG9mZi4KSW4gZmFjdCBpdCdzIHRo ZSBzYW1lIGlzc3VlIEkgaGFkIHdpdGggdGhlIGkyYy1vbWFwIGRyaXZlci4KSW4gc3VzcGVuZC1u b2lycSwgdGhlIHJ1bnRpbWUgcG0gaXMgZGlzYWJsZWQsIHNvIHlvdSBjYW4ndCB3YWtldXAgYQpk ZXZpY2UuIE1vcmUgZGV0YWlscyBhdmFpbGFibGUgaW4gdGhpcyB0aHJlYWQgWzFdLgpTbyB0aGUg dHJpY2sgaXMgdG8gd2FrZXVwIHRoZSBkZXZpY2UgZHVyaW5nIHN1c3BlbmQgKGxpa2UgSSBkaWQg Zm9yIHRoZQppMmMtb21hcCBkcml2ZXIgWzJdLgoKWzFdCmh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2FsbC9mNjhjOWE1NC0wZmRlLTQ3MDktOWQyZi0wZDIzYTA0OTM0MWJAYm9vdGxpbi5jb20vClsy XQpodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNDAxMDItajcyMDAtcGNpZS1zMnItdjUt Mi00YjhjNDY3MTFkZWRAYm9vdGxpbi5jb20vCgpJIHRoaW5rIHRoZSBwYXRjaCBiZWxvdyBzaG91 bGQgZml4IHRoZSBpc3N1ZS4KCi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcmNhci5jCisr KyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcmNhci5jCkBAIC0xMjMyLDcgKzEyMzIsNyBAQCBz dGF0aWMgdm9pZCByY2FyX2kyY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQoqcGRldikK ICAgICAgICBwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKIH0KCi1zdGF0aWMgaW50IHJjYXJfaTJj X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCByY2FyX2kyY19zdXNwZW5k X25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKICAgICAgICBzdHJ1Y3QgcmNhcl9pMmNfcHJp diAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwoKQEAgLTEyNDAsNyArMTI0MCw3IEBAIHN0 YXRpYyBpbnQgcmNhcl9pMmNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAgICAgICAgcmV0 dXJuIDA7CiB9Cgotc3RhdGljIGludCByY2FyX2kyY19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQorc3RhdGljIGludCByY2FyX2kyY19yZXN1bWVfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KQog ewogICAgICAgIHN0cnVjdCByY2FyX2kyY19wcml2ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7CgpAQCAtMTI0OCw4ICsxMjQ4LDIzIEBAIHN0YXRpYyBpbnQgcmNhcl9pMmNfcmVzdW1lKHN0 cnVjdCBkZXZpY2UgKmRldikKICAgICAgICByZXR1cm4gMDsKIH0KCitzdGF0aWMgaW50IHJjYXJf aTJjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQoreworICAgICAgIHBtX3J1bnRpbWVfZ2V0 X3N5bmMoZGV2KTsKKworICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJjYXJfaTJj X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisgICAgICAgcG1fcnVudGltZV9wdXQoZGV2 KTsKKworICAgICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9v cHMgcmNhcl9pMmNfcG1fb3BzID0gewotICAgICAgIE5PSVJRX1NZU1RFTV9TTEVFUF9QTV9PUFMo cmNhcl9pMmNfc3VzcGVuZCwgcmNhcl9pMmNfcmVzdW1lKQorICAgICAgIE5PSVJRX1NZU1RFTV9T TEVFUF9QTV9PUFMocmNhcl9pMmNfc3VzcGVuZF9ub2lycSwKcmNhcl9pMmNfcmVzdW1lX25vaXJx KQorICAgICAgIFNZU1RFTV9TTEVFUF9QTV9PUFMocmNhcl9pMmNfc3VzcGVuZCwgcmNhcl9pMmNf cmVzdW1lKQogfTsKCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciByY2FyX2kyY19kcml2 ZXIgPSB7Cgo+IAo+PiAgICAgICAgICtwY2E5NTN4IDQtMDAyMDogRmFpbGVkIHRvIHN5bmMgR1BJ TyBkaXIgcmVnaXN0ZXJzOiAtMTYKPj4gICAgICAgICArcGNhOTUzeCA0LTAwMjA6IEZhaWxlZCB0 byByZXN0b3JlIHJlZ2lzdGVyIG1hcDogLTE2Cj4+ICAgICAgICAgK3BjYTk1M3ggNC0wMDIwOiBQ TTogZHBtX3J1bl9jYWxsYmFjaygpOiBwY2E5NTN4X3Jlc3VtZV9ub2lycQo+PiByZXR1cm5zIC0x Ngo+PiAgICAgICAgICtwY2E5NTN4IDQtMDAyMDogUE06IGZhaWxlZCB0byByZXN1bWUgYXN5bmMg bm9pcnE6IGVycm9yIC0xNgo+IAo+IFllYWgsIHdpdGggdGhpcyBpdCdzIGtpbmRhIGZvcmNpbmcg X2V2ZXJ5XyBJwrJDIGhvc3QgY29udHJvbGxlciBQTSB0bwo+IGJlIG1vdmVkIGFsc28gdG8gbm9p cnEoKSBvciBhbGlrZS4KClllcyBpbmRlZWQuCkJ1dCB0aGlzIGNvbnRyb2xsZXIgaXMgYWxyZWFk eSBpbiBub2lycSgpLgpTbyB0aGUgaXNzdWUgd2FzIGFscmVhZHkgdGhlcmUuCldlIG5ldmVyIHNh dyBpdCBiZWNhdXNlIHdlIG5ldmVyIGRpZCBpMmMgYWNjZXNzZXMgaW4gbm9pcnEoKS4KCkJlc3Qg UmVnYXJkcywKCi0tIApUaG9tYXMgUmljaGFyZCwgQm9vdGxpbgpFbWJlZGRlZCBMaW51eCBhbmQg S2VybmVsIGVuZ2luZWVyaW5nCmh0dHBzOi8vYm9vdGxpbi5jb20KCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==