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 mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qLRLw-004a3b-0T for linux-arm-kernel@lists.infradead.org; Mon, 17 Jul 2023 16:45:42 +0000 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1b8bbcfd89aso26121175ad.1 for ; Mon, 17 Jul 2023 09:45:37 -0700 (PDT) Date: Mon, 17 Jul 2023 22:15:26 +0530 From: Manivannan Sadhasivam Subject: Re: [PATCH v3 1/2] PCI: dwc: Implement general suspend/resume functionality for L2/L3 transitions Message-ID: <20230717164526.GC35455@thinkpad> References: <20230419164118.596300-1-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230419164118.596300-1-Frank.Li@nxp.com> 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+lwn-linux-arm-kernel=archive.lwn.net@lists.infradead.org List-Archive: To: Frank Li Cc: helgaas@kernel.org, imx@lists.linux.dev, bhelgaas@google.com, devicetree@vger.kernel.org, gustavo.pimentel@synopsys.com, kw@linux.com, leoyang.li@nxp.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, minghuan.lian@nxp.com, mingkai.hu@nxp.com, robh+dt@kernel.org, roy.zang@nxp.com, shawnguo@kernel.org, zhiqiang.hou@nxp.com T24gV2VkLCBBcHIgMTksIDIwMjMgYXQgMTI6NDE6MTdQTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gSW50cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb24gZHdfcGNpZV9nZXRfbHRzc20gdG8gcmV0cmll dmUgU01MSF9MVFNTX1NUQVRFLgo+IEFkZGVkIEFQSSBwbWVfdHVybl9vZmYgYW5kIGV4aXRfZnJv bV9sMiBmb3IgbWFuYWdpbmcgTDIvTDMgc3RhdGUgdHJhbnNpdGlvbnMuCj4gCj4gVHlwaWNhbCBM MiBlbnRyeSB3b3JrZmxvdzoKPiAKPiAxLiBUcmFuc21pdCBQTUUgdHVybiBvZmYgc2lnbmFsIHRv IFBDSSBkZXZpY2VzLgo+IDIuIEF3YWl0IGxpbmsgZW50ZXJpbmcgTDJfSURMRSBzdGF0ZS4KCkFG QUlLLCB0eXBpY2FsIHdvcmtmbG93IGlzIHRvIHdhaXQgZm9yIFBNRV9Ub19BY2suCgo+IDMuIFRy YW5zaXRpb24gUm9vdCBjb21wbGV4IHRvIEQzIHN0YXRlLgo+IAo+IFR5cGljYWwgTDIgZXhpdCB3 b3JrZmxvdzoKPiAKPiAxLiBUcmFuc2l0aW9uIFJvb3QgY29tcGxleCB0byBEMCBzdGF0ZS4KPiAy LiBJc3N1ZSBleGl0IGZyb20gTDIgY29tbWFuZC4KPiAzLiBSZWluaXRpYWxpemUgUENJIGhvc3Qu Cj4gNC4gV2FpdCBmb3IgbGluayB0byBiZWNvbWUgYWN0aXZlLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IEZyYW5rIExpIDxGcmFuay5MaUBueHAuY29tPgo+IC0tLQo+IENoYW5nZSBmcm9tIHYyIHRvIHYz OiAKPiAtIEJhc2ljIHJld3JpdGUgd2hvbGUgcGF0Y2ggYWNjb3JkaW5nIHJvYiBoZXJyeSBzdWdn ZXN0aW9uLiAKPiAgIHB1dCBjb21tb24gZnVuY3Rpb24gaW50byBkd2MsIHNvIG1vcmUgc29jIGNh biBzaGFyZSB0aGUgc2FtZSBsb2dpYy4KPiAgIAo+ICAuLi4vcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUtZGVzaWdud2FyZS1ob3N0LmMgfCA4MCArKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oICB8IDI4ICsrKysrKysKPiAgMiBm aWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYwo+IGluZGV4IDk5NTIwNTdjODgx OS4uZWY2ODY5NDg4YmRlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtZGVzaWdud2FyZS1ob3N0LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jCj4gQEAgLTgsNiArOCw3IEBACj4gICAqIEF1dGhvcjog SmluZ29vIEhhbiA8amcxLmhhbkBzYW1zdW5nLmNvbT4KPiAgICovCj4gIAo+ICsjaW5jbHVkZSA8 bGludXgvaW9wb2xsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJxLmg+ Cj4gICNpbmNsdWRlIDxsaW51eC9pcnFkb21haW4uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21zaS5o Pgo+IEBAIC04MDcsMyArODA4LDgyIEBAIGludCBkd19wY2llX3NldHVwX3JjKHN0cnVjdCBkd19w Y2llX3JwICpwcCkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGR3X3Bj aWVfc2V0dXBfcmMpOwo+ICsKPiArLyoKPiArICogVGhlcmUgYXJlIGZvciBjb25maWd1cmluZyBo b3N0IGNvbnRyb2xsZXJzLCB3aGljaCBhcmUgYnJpZGdlcyAqdG8qIFBDSSBkZXZpY2VzCj4gKyAq IGJ1dCBhcmUgbm90IFBDSSBkZXZpY2VzIHRoZW1zZWx2ZXMuCgpOb25lIG9mIHRoZSBmdW5jdGlv bnMgYXBwbGljYWJsZSB0byB0aGUgZGV2aWNlcy4gU28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhp cwpjb21tZW50LgoKPiArICovCj4gK3N0YXRpYyB2b2lkIGR3X3BjaWVfc2V0X2RzdGF0ZShzdHJ1 Y3QgZHdfcGNpZSAqcGNpLCB1MzIgZHN0YXRlKQoKUGxlYXNlIHVzZSBwY2lfcG93ZXJfdCBkZWZp bmVzIGZvciBkc3RhdGVzLgoKPiArewo+ICsJdTggb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2NhcGFi aWxpdHkocGNpLCBQQ0lfQ0FQX0lEX1BNKTsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJdmFsID0gZHdf cGNpZV9yZWFkd19kYmkocGNpLCBvZmZzZXQgKyBQQ0lfUE1fQ1RSTCk7CgpQbGVhc2UgdXNlIFBD SSBhY2Nlc3NvcnMgZm9yIGFjY2Vzc2luZyBzcGVjIGNvbXBsaWFudCByZWdpc3RlcnMuCgo+ICsJ dmFsICY9IH5QQ0lfUE1fQ1RSTF9TVEFURV9NQVNLOwo+ICsJdmFsIHw9IGRzdGF0ZTsKPiArCWR3 X3BjaWVfd3JpdGV3X2RiaShwY2ksIG9mZnNldCArIFBDSV9QTV9DVFJMLCB2YWwpOwo+ICt9Cj4g Kwo+ICtpbnQgZHdfcGNpZV9zdXNwZW5kX25vaXJxKHN0cnVjdCBkd19wY2llICpwY2kpCj4gK3sK PiArCXUzMiB2YWw7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmIChkd19wY2llX2dldF9sdHNzbShw Y2kpIDw9IERXX1BDSUVfTFRTU01fREVURUNUX0FDVCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlw Y2ktPnBwLm9wcy0+cG1lX3R1cm5fb2ZmKCZwY2ktPnBwKTsKCllvdSBzaG91bGQgZmlyc3QgY2hl Y2sgZm9yIHRoZSBleGlzdGVuY2Ugb2YgdGhlIGNhbGxiYWNrIGJlZm9yZSBpbnZva2luZy4gVGhp cwphcHBsaWVzIHRvIGFsbCBjYWxsYmFja3MgaW4gdGhpcyBwYXRjaC4KCj4gKwo+ICsJLyoKPiAr CSAqIFBDSSBFeHByZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiBSZXYgNC4wCj4gKwkgKiA1LjMuMy4y LjEgUE1FIFN5bmNocm9uaXphdGlvbgo+ICsJICogUmVjb21tYW5kIDFtcyB0byAxMG1zIHRpbWVv dXQgdG8gY2hlY2sgTDIgcmVhZHkKPiArCSAqLwo+ICsJcmV0ID0gcmVhZF9wb2xsX3RpbWVvdXQo ZHdfcGNpZV9nZXRfbHRzc20sIHZhbCwgdmFsID09IERXX1BDSUVfTFRTU01fTDJfSURMRSwKPiAr CQkJCTEwMCwgMTAwMDAsIGZhbHNlLCBwY2kpOwoKSXMgdGhlcmUgbm8gd2F5IHRvIHdhaXQgZm9y IFBNRV9Ub19BY2sgVExQPwoKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyKHBjaS0+ZGV2LCAi UENJZSBsaW5rIGVudGVyIEwyIHRpbWVvdXQhIGx0c3NtID0gMHgleFxuIiwgdmFsKTsKPiArCQly ZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWR3X3BjaWVfc2V0X2RzdGF0ZShwY2ksIDB4Myk7Cj4g Kwo+ICsJcGNpLT5zdXNwZW5kZWQgPSB0cnVlOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiAr RVhQT1JUX1NZTUJPTF9HUEwoZHdfcGNpZV9zdXNwZW5kX25vaXJxKTsKPiArCj4gK2ludCBkd19w Y2llX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCWlmICghcGNpLT5zdXNwZW5kZWQpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcGNpLT5z dXNwZW5kZWQgPSBmYWxzZTsKPiArCj4gKwlkd19wY2llX3NldF9kc3RhdGUocGNpLCAweDApOwo+ ICsKPiArCXBjaS0+cHAub3BzLT5leGl0X2Zyb21fbDIoJnBjaS0+cHApOwo+ICsKPiArCS8qIGRl bGF5IDEwIG1zIHRvIGFjY2VzcyBFUCAqLwoKSXMgdGhpcyBkZWxheSBhcyBwYXJ0IG9mIHRoZSBE V0Mgc3BlYz8gSWYgc28sIHBsZWFzZSBxdW90ZSB0aGUgc2VjdGlvbi4KCj4gKwltZGVsYXkoMTAp Owo+ICsKPiArCXJldCA9IHBjaS0+cHAub3BzLT5ob3N0X2luaXQoJnBjaS0+cHApOwo+ICsJaWYg KHJldCkgewo+ICsJCWRldl9lcnIocGNpLT5kZXYsICJsc19wY2llX2hvc3RfaW5pdCBmYWlsZWQh IHJldCA9IDB4JXhcbiIsIHJldCk7CgpzL2xzX3BjaWVfaG9zdF9pbml0L0hvc3QgaW5pdAoKPiAr CQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWR3X3BjaWVfc2V0dXBfcmMoJnBjaS0+cHApOwo+ ICsKCkRvbid0IHlvdSBuZWVkIHRvIGNvbmZpZ3VyZSBpQVRVPwoKPiArCXJldCA9IGR3X3BjaWVf d2FpdF9mb3JfbGluayhwY2kpOwoKRG9uJ3QgeW91IG5lZWQgdG8gc3RhcnQgdGhlIGxpbmsgYmVm b3JlaGFuZD8KCj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycihwY2ktPmRldiwgIndhaXQgbGlu ayB1cCB0aW1lb3V0ISByZXQgPSAweCV4XG4iLCByZXQpOwoKZHdfcGNpZV93YWl0X2Zvcl9saW5r KCkgaXRzZWxmIHByaW50cyBlcnJvciBtZXNzYWdlIG9uIGZhaWx1cmUuIFNvIG5vIG5lZWQgdG8g ZG8KdGhlIHNhbWUgaGVyZS4KCi0gTWFuaQoKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiAr CXJldHVybiByZXQ7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZHdfcGNpZV9yZXN1bWVfbm9p cnEpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2ln bndhcmUuaCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oCj4g aW5kZXggNzk3MTNjZTA3NWNjLi5lZmZiMDdhNTA2ZTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgKPiArKysgYi9kcml2ZXJzL3BjaS9j b250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaAo+IEBAIC0yODgsMTAgKzI4OCwyMSBAQCBl bnVtIGR3X3BjaWVfY29yZV9yc3Qgewo+ICAJRFdfUENJRV9OVU1fQ09SRV9SU1RTCj4gIH07Cj4g IAo+ICtlbnVtIGR3X3BjaWVfbHRzc20gewo+ICsJRFdfUENJRV9MVFNTTV9VTktOT1dOID0gMHhG RkZGRkZGRiwKPiArCS8qIE5lZWQgYWxpZ24gUENJRV9QT1JUX0RFQlVHMCBiaXQwOjUgKi8KPiAr CURXX1BDSUVfTFRTU01fREVURUNUX1FVSUVUID0gMHgwLAo+ICsJRFdfUENJRV9MVFNTTV9ERVRF Q1RfQUNUID0gMHgxLAo+ICsJRFdfUENJRV9MVFNTTV9MMCA9IDB4MTEsCj4gKwlEV19QQ0lFX0xU U1NNX0wyX0lETEUgPSAweDE1LAo+ICt9Owo+ICsKPiAgc3RydWN0IGR3X3BjaWVfaG9zdF9vcHMg ewo+ICAJaW50ICgqaG9zdF9pbml0KShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICAJdm9pZCAo Kmhvc3RfZGVpbml0KShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICAJaW50ICgqbXNpX2hvc3Rf aW5pdCkoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiArCXZvaWQgKCpwbWVfdHVybl9vZmYpKHN0 cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gKwl2b2lkICgqZXhpdF9mcm9tX2wyKShzdHJ1Y3QgZHdf cGNpZV9ycCAqcHApOwo+ICB9Owo+ICAKPiAgc3RydWN0IGR3X3BjaWVfcnAgewo+IEBAIC0zNjQs NiArMzc1LDcgQEAgc3RydWN0IGR3X3BjaWVfb3BzIHsKPiAgCXZvaWQgICAgKCp3cml0ZV9kYmky KShzdHJ1Y3QgZHdfcGNpZSAqcGNpZSwgdm9pZCBfX2lvbWVtICpiYXNlLCB1MzIgcmVnLAo+ICAJ CQkgICAgICBzaXplX3Qgc2l6ZSwgdTMyIHZhbCk7Cj4gIAlpbnQJKCpsaW5rX3VwKShzdHJ1Y3Qg ZHdfcGNpZSAqcGNpZSk7Cj4gKwllbnVtIGR3X3BjaWVfbHRzc20gKCpnZXRfbHRzc20pKHN0cnVj dCBkd19wY2llICpwY2llKTsKPiAgCWludAkoKnN0YXJ0X2xpbmspKHN0cnVjdCBkd19wY2llICpw Y2llKTsKPiAgCXZvaWQJKCpzdG9wX2xpbmspKHN0cnVjdCBkd19wY2llICpwY2llKTsKPiAgfTsK PiBAQCAtMzkzLDYgKzQwNSw3IEBAIHN0cnVjdCBkd19wY2llIHsKPiAgCXN0cnVjdCByZXNldF9j b250cm9sX2J1bGtfZGF0YQlhcHBfcnN0c1tEV19QQ0lFX05VTV9BUFBfUlNUU107Cj4gIAlzdHJ1 Y3QgcmVzZXRfY29udHJvbF9idWxrX2RhdGEJY29yZV9yc3RzW0RXX1BDSUVfTlVNX0NPUkVfUlNU U107Cj4gIAlzdHJ1Y3QgZ3Bpb19kZXNjCQkqcGVfcnN0Owo+ICsJYm9vbAkJCXN1c3BlbmRlZDsK PiAgfTsKPiAgCj4gICNkZWZpbmUgdG9fZHdfcGNpZV9mcm9tX3BwKHBvcnQpIGNvbnRhaW5lcl9v ZigocG9ydCksIHN0cnVjdCBkd19wY2llLCBwcCkKPiBAQCAtNDMwLDYgKzQ0Myw5IEBAIHZvaWQg ZHdfcGNpZV9pYXR1X2RldGVjdChzdHJ1Y3QgZHdfcGNpZSAqcGNpKTsKPiAgaW50IGR3X3BjaWVf ZWRtYV9kZXRlY3Qoc3RydWN0IGR3X3BjaWUgKnBjaSk7Cj4gIHZvaWQgZHdfcGNpZV9lZG1hX3Jl bW92ZShzdHJ1Y3QgZHdfcGNpZSAqcGNpKTsKPiAgCj4gK2ludCBkd19wY2llX3N1c3BlbmRfbm9p cnEoc3RydWN0IGR3X3BjaWUgKnBjaSk7Cj4gK2ludCBkd19wY2llX3Jlc3VtZV9ub2lycShzdHJ1 Y3QgZHdfcGNpZSAqcGNpKTsKPiArCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBkd19wY2llX3dyaXRl bF9kYmkoc3RydWN0IGR3X3BjaWUgKnBjaSwgdTMyIHJlZywgdTMyIHZhbCkKPiAgewo+ICAJZHdf cGNpZV93cml0ZV9kYmkocGNpLCByZWcsIDB4NCwgdmFsKTsKPiBAQCAtNTAxLDYgKzUxNywxOCBA QCBzdGF0aWMgaW5saW5lIHZvaWQgZHdfcGNpZV9zdG9wX2xpbmsoc3RydWN0IGR3X3BjaWUgKnBj aSkKPiAgCQlwY2ktPm9wcy0+c3RvcF9saW5rKHBjaSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxp bmUgZW51bSBkd19wY2llX2x0c3NtIGR3X3BjaWVfZ2V0X2x0c3NtKHN0cnVjdCBkd19wY2llICpw Y2kpCj4gK3sKPiArCXUzMiB2YWw7Cj4gKwo+ICsJaWYgKHBjaS0+b3BzICYmIHBjaS0+b3BzLT5n ZXRfbHRzc20pCj4gKwkJcmV0dXJuIHBjaS0+b3BzLT5nZXRfbHRzc20ocGNpKTsKPiArCj4gKwl2 YWwgPSBkd19wY2llX3JlYWRsX2RiaShwY2ksIFBDSUVfUE9SVF9ERUJVRzApOwo+ICsKPiArCXJl dHVybiAoZW51bSBkd19wY2llX2x0c3NtKUZJRUxEX0dFVChQT1JUX0xPR0lDX0xUU1NNX1NUQVRF X01BU0ssIHZhbCk7Cj4gK30KPiArCj4gICNpZmRlZiBDT05GSUdfUENJRV9EV19IT1NUCj4gIGly cXJldHVybl90IGR3X2hhbmRsZV9tc2lfaXJxKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gIGlu dCBkd19wY2llX3NldHVwX3JjKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gLS0gCj4gMi4zNC4x Cj4gCgotLSAK4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCu ruCvjQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=