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 B6BDFC001DE for ; Fri, 28 Jul 2023 15:33:13 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=b/85I3f4mcPiJpP8sTnAVgdYSSBQDGgnSVx2u9hf7wQ=; b=N7O2QgDYtz9pIW IAg4/PhjMqmZLFQeBpnWe4NwjoN4ZpeNvmY0Z5DqjJvJc9JVi56/jR0BGp8HpQ/C98MVR9y734PWb 7KtwLuV9H8Fwxgag6YmrTeTJeW8eh2XYJnZAJi/X7odVPJfmqVrpNEtf3ASY7C4JJC0VfA1riWfh6 t1B3DVx/yhNZTEG/DX1As9LHyj5Id+Eoe3bGmrpbGrWtrGC5/+4pCPkB9R+CSUB0Qxezinck7dgUX QsVEOorgZnce+gRglsMr0fTXtI8hEpfRvj2rlLXAxjdg5Imr/EzsimF47v++spRkAb8xfkNduVLHe rHdch2HPGp2oEEiL0arA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qPPSX-003soE-1a; Fri, 28 Jul 2023 15:32:53 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qPPSU-003snq-1U for linux-arm-kernel@lists.infradead.org; Fri, 28 Jul 2023 15:32:52 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8AB7E62183; Fri, 28 Jul 2023 15:32:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 533CAC433C8; Fri, 28 Jul 2023 15:32:43 +0000 (UTC) Date: Fri, 28 Jul 2023 21:02:38 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: lorenzo.pieralisi@arm.com, bhelgaas@google.com, devicetree@vger.kernel.org, gustavo.pimentel@synopsys.com, helgaas@kernel.org, imx@lists.linux.dev, 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, mani@kernel.org, minghuan.lian@nxp.com, mingkai.hu@nxp.com, robh+dt@kernel.org, roy.zang@nxp.com, shawnguo@kernel.org, zhiqiang.hou@nxp.com Subject: Re: [PATCH v5 1/2] PCI: dwc: Implement general suspend/resume functionality for L2/L3 transitions Message-ID: <20230728153238.GA4719@thinkpad> References: <20230724215830.2253112-1-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230724215830.2253112-1-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230728_083250_608233_AA20461A X-CRM114-Status: GOOD ( 29.23 ) 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 T24gTW9uLCBKdWwgMjQsIDIwMjMgYXQgMDU6NTg6MjlQTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gSW50cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb24gZHdfcGNpZV9nZXRfbHRzc20gdG8gcmV0cmll dmUgU01MSF9MVFNTX1NUQVRFLgo+IEFkZGVkIEFQSSBwbWVfdHVybl9vZmYgYW5kIGV4aXRfZnJv bV9sMiBmb3IgbWFuYWdpbmcgTDIvTDMgc3RhdGUgdHJhbnNpdGlvbnMuCj4gCj4gVHlwaWNhbCBM MiBlbnRyeSB3b3JrZmxvdzoKPiAKPiAxLiBUcmFuc21pdCBQTUUgdHVybiBvZmYgc2lnbmFsIHRv IFBDSSBkZXZpY2VzIGFuZCB3YWl0IGZvciBQTUVfVG9fQWNrLgo+IDIuIEF3YWl0IGxpbmsgZW50 ZXJpbmcgTDJfSURMRSBzdGF0ZS4KPiAzLiBUcmFuc2l0aW9uIFJvb3QgY29tcGxleCB0byBEMyBz dGF0ZS4KPiAKPiBUeXBpY2FsIEwyIGV4aXQgd29ya2Zsb3c6Cj4gCj4gMS4gVHJhbnNpdGlvbiBS b290IGNvbXBsZXggdG8gRDAgc3RhdGUuCj4gMi4gSXNzdWUgZXhpdCBmcm9tIEwyIGNvbW1hbmQu Cj4gMy4gUmVpbml0aWFsaXplIFBDSSBob3N0Lgo+IDQuIFdhaXQgZm9yIGxpbmsgdG8gYmVjb21l IGFjdGl2ZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4K PiAtLS0KPiBDaGFuZ2UgZnJvbSB2NCB0byB2NToKPiAtIENsb3NlczogaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvb2Uta2J1aWxkLWFsbC8yMDIzMDcyMTE5MDQuekV4dzRROEgtbGtwQGludGVsLmNv bS8KPiBDaGFuZ2UgZnJvbSB2MyB0byB2NDoKPiAtIGNoYW5nZSBhY2NvcmRpbmcgdG8gTWFuaXZh bm5hbidzIGNvbW1lbnRzLgo+ICAgSSBob3BlIEkgaGF2ZSBub3QgbWlzc2VkIGFueXRoaW5nLiBx dWl0ZSBsb25nIGRpc2N1c3MgdGhyZWFkCj4gQ2hhbmdlIGZyb20gdjIgdG8gdjM6Cj4gLSBCYXNp YyByZXdyaXRlIHdob2xlIHBhdGNoIGFjY29yZGluZyByb2IgaGVycnkgc3VnZ2VzdGlvbi4KPiAg IHB1dCBjb21tb24gZnVuY3Rpb24gaW50byBkd2MsIHNvIG1vcmUgc29jIGNhbiBzaGFyZSB0aGUg c2FtZSBsb2dpYy4KPiAKPiAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUt aG9zdC5jIHwgOTUgKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWRlc2lnbndhcmUuaCAgfCAyOCArKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAx MjMgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1kZXNpZ253YXJlLWhvc3QuYwo+IGluZGV4IDk5NTIwNTdjODgxOS4uMDMxZTFmOWMwZDBj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2Fy ZS1ob3N0LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndh cmUtaG9zdC5jCj4gQEAgLTgsNiArOCw3IEBACj4gICAqIEF1dGhvcjogSmluZ29vIEhhbiA8amcx LmhhbkBzYW1zdW5nLmNvbT4KPiAgICovCj4gIAo+ICsjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+ Cj4gICNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJxLmg+Cj4gICNpbmNsdWRlIDxs aW51eC9pcnFkb21haW4uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21zaS5oPgo+IEBAIC04MDcsMyAr ODA4LDk3IEBAIGludCBkd19wY2llX3NldHVwX3JjKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAg CXJldHVybiAwOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGR3X3BjaWVfc2V0dXBfcmMpOwo+ ICsKPiArLyoKPiArICogVGhpcyByZXNlbWJsZSB0aGUgcGNpX3NldF9wb3dlcl9zdGF0ZSgpIGlu dGVyZmFjZXMsIGJ1dCB0aGVzZSBhcmUgZm9yCgpzL2ludGVyZmFjZXMvQVBJCnMvdGhlc2UgYXJl L3RoaXMgaXMKCj4gKyAqIGNvbmZpZ3VyaW5nIGhvc3QgY29udHJvbGxlcnMsIHdoaWNoIGFyZSBi cmlkZ2VzICp0byogUENJIGRldmljZXMgYnV0Cj4gKyAqIGFyZSBub3QgUENJIGRldmljZXMgdGhl bXNlbHZlcy4KPiArICovCj4gK3N0YXRpYyB2b2lkIGR3X3BjaWVfc2V0X2RzdGF0ZShzdHJ1Y3Qg ZHdfcGNpZSAqcGNpLCBwY2lfcG93ZXJfdCBkc3RhdGUpCj4gK3sKPiArCXU4IG9mZnNldCA9IGR3 X3BjaWVfZmluZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NBUF9JRF9QTSk7Cj4gKwl1MTYgdmFsOwo+ ICsKPiArCXZhbCA9IGR3X3BjaWVfcmVhZHdfZGJpKHBjaSwgb2Zmc2V0ICsgUENJX1BNX0NUUkwp Owo+ICsJdmFsICY9IH5QQ0lfUE1fQ1RSTF9TVEFURV9NQVNLOwo+ICsJdmFsIHw9ICgodTE2IF9f Zm9yY2UpZHN0YXRlKSAmIFBDSV9QTV9DVFJMX1NUQVRFX01BU0s7CgpXaHkgY2FuJ3QganVzdCwK CnZhbCB8PSBkc3RhdGU7Cgo+ICsJZHdfcGNpZV93cml0ZXdfZGJpKHBjaSwgb2Zmc2V0ICsgUENJ X1BNX0NUUkwsIHZhbCk7Cj4gK30KPiArCj4gK2ludCBkd19wY2llX3N1c3BlbmRfbm9pcnEoc3Ry dWN0IGR3X3BjaWUgKnBjaSkKPiArewo+ICsJdTggb2Zmc2V0Owo+ICsJdTMyIHZhbDsKPiArCWlu dCByZXQ7Cj4gKwo+ICsJb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkocGNpLCBQQ0lf Q0FQX0lEX0VYUCk7CgpKdXN0IGFzc2lnbiB0aGlzIGR1cmluZyB2YXJpYWJsZSBkZWZpbml0aW9u IGl0c2VsZi4uCgo+ICsJLyoKPiArCSAqIElmIEwxLjFcTDEuMiBlbmFibGUsIGRldmljZXMgKHN1 Y2ggYXMgTlZNRSkgd2FudCBzaG9ydAo+ICsJICogcmVzdW1lIGxhdGVuY3ksIGNvbnRyb2xsZXIg d2lsbCBub3QgZW50ZXIgTDIKCiJJZiBMMVNTIGlzIHN1cHBvcnRlZCwgdGhlbiBkbyBub3QgcHV0 IHRoZSBsaW5rIGludG8gTDIgYXMgc29tZSBkZXZpY2VzIHN1Y2ggYXMKTlZNZSBleHBlY3QgbG93 IHJlc3VtZSBsYXRlbmN5LiIKCj4gKwkgKi8KPiArCWlmIChkd19wY2llX3JlYWR3X2RiaShwY2ks IG9mZnNldCArIFBDSV9FWFBfTE5LQ1RMKSAmIFBDSV9FWFBfTE5LQ1RMX0FTUE1fTDEpCj4gKwkJ cmV0dXJuIDA7Cj4gKwo+ICsJaWYgKGR3X3BjaWVfZ2V0X2x0c3NtKHBjaSkgPD0gRFdfUENJRV9M VFNTTV9ERVRFQ1RfQUNUKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWlmICghcGNpLT5wcC5vcHMt PnBtZV90dXJuX29mZikKPiArCQlyZXR1cm4gLUVJTlZBTDsKCkNhbiB5b3UganVzdCByZXR1cm4g MCBpbnN0ZWFkIG9mIGZhaWxpbmc/IEFzIHBlciBteSBjb21tZW50IGJlbG93LCBpZiB5b3UgbW92 ZQp0aGUgRC1zdGF0ZSBjaGFuZ2UgYmVmb3JlIHRoaXMgY2FsbGJhY2ssIHRoZW4gdGhpcyB3b24n dCBiZSBhIGhhcmQgcmVxdWlyZW1lbnQuCgo+ICsKPiArCXBjaS0+cHAub3BzLT5wbWVfdHVybl9v ZmYoJnBjaS0+cHApOwo+ICsKPiArCS8qCj4gKwkgKiBQQ0kgRXhwcmVzcyBCYXNlIFNwZWNpZmlj YXRpb24gUmV2IDQuMAo+ICsJICogNS4zLjMuMi4xIFBNRSBTeW5jaHJvbml6YXRpb24KPiArCSAq IFJlY29tbWFuZCAxbXMgdG8gMTBtcyB0aW1lb3V0IHRvIGNoZWNrIEwyIHJlYWR5CgoiUmVjb21t ZW5kcyIKClBsZWFzZSB1c2UgZnVsbCA4MCBjb2x1bW5zIGZvciBjb21tZW50cy4KCj4gKwkgKi8K PiArCXJldCA9IHJlYWRfcG9sbF90aW1lb3V0KGR3X3BjaWVfZ2V0X2x0c3NtLCB2YWwsIHZhbCA9 PSBEV19QQ0lFX0xUU1NNX0wyX0lETEUsCj4gKwkJCQkxMDAsIDEwMDAwLCBmYWxzZSwgcGNpKTsK PiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyKHBjaS0+ZGV2LCAiUENJZSBsaW5rIGVudGVyIEwy IHRpbWVvdXQhIGx0c3NtID0gMHgleFxuIiwgdmFsKTsKCiJUaW1lb3V0IHdhaXRpbmcgZm9yIEwy IGVudHJ5ISBMVFNTTTogMHgleFxuIgoKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWR3 X3BjaWVfc2V0X2RzdGF0ZShwY2ksIFBDSV9EM2hvdCk7CgpUaGlzIHNob3VsZCBiZSBkb25lIGJl Zm9yZSBpbml0aWF0aW5nIEwyIGVudHJ5IGFzIHBlcgpQQ0lfRXhwcmVzc19CYXNlX1NwZWNpZmlj YXRpb24gMy4wLCBzZWN0aW9uIDUuMi4KCj4gKwo+ICsJcGNpLT5zdXNwZW5kZWQgPSB0cnVlOwo+ ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZHdfcGNpZV9zdXNw ZW5kX25vaXJxKTsKPiArCj4gK2ludCBkd19wY2llX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZHdfcGNp ZSAqcGNpKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmICghcGNpLT5zdXNwZW5kZWQpCj4g KwkJcmV0dXJuIDA7Cj4gKwo+ICsJcGNpLT5zdXNwZW5kZWQgPSBmYWxzZTsKPiArCj4gKwlkd19w Y2llX3NldF9kc3RhdGUocGNpLCBQQ0lfRDApOwo+ICsKPiArCWlmICghcGNpLT5wcC5vcHMtPmV4 aXRfZnJvbV9sMikKPiArCQlyZXR1cm4gLUVJTlZBTDsKClNhbWUgY29tbWVudCBhcyBhYm92ZS4K Cj4gKwo+ICsJcGNpLT5wcC5vcHMtPmV4aXRfZnJvbV9sMigmcGNpLT5wcCk7Cj4gKwo+ICsJcmV0 ID0gcGNpLT5wcC5vcHMtPmhvc3RfaW5pdCgmcGNpLT5wcCk7CgpJIGRvbid0IHNlZSBtYXRjaGlu ZyBob3N0X2RlaW5pdCgpIGluIHN1c3BlbmQuCgotIE1hbmkKCj4gKwlpZiAocmV0KSB7Cj4gKwkJ ZGV2X2VycihwY2ktPmRldiwgIkhvc3QgaW5pdCBmYWlsZWQhIHJldCA9IDB4JXhcbiIsIHJldCk7 Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlkd19wY2llX3NldHVwX3JjKCZwY2ktPnBw KTsKPiArCj4gKwlyZXQgPSBkd19wY2llX3N0YXJ0X2xpbmsocGNpKTsKPiArCWlmIChyZXQpCj4g KwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQgPSBkd19wY2llX3dhaXRfZm9yX2xpbmsocGNpKTsK PiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4g K0VYUE9SVF9TWU1CT0xfR1BMKGR3X3BjaWVfcmVzdW1lX25vaXJxKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmggYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaAo+IGluZGV4IDc5NzEzY2UwNzVjYy4u ZWZmYjA3YTUwNmU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUtZGVzaWdud2FyZS5oCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1k ZXNpZ253YXJlLmgKPiBAQCAtMjg4LDEwICsyODgsMjEgQEAgZW51bSBkd19wY2llX2NvcmVfcnN0 IHsKPiAgCURXX1BDSUVfTlVNX0NPUkVfUlNUUwo+ICB9Owo+ICAKPiArZW51bSBkd19wY2llX2x0 c3NtIHsKPiArCURXX1BDSUVfTFRTU01fVU5LTk9XTiA9IDB4RkZGRkZGRkYsCj4gKwkvKiBOZWVk IGFsaWduIFBDSUVfUE9SVF9ERUJVRzAgYml0MDo1ICovCgoiTmVlZCB0byBhbGlnbiB3aXRoIFBD SUVfUE9SVF9ERUJVRzAgYml0cyAwOjUiLgoKLSBNYW5pCgo+ICsJRFdfUENJRV9MVFNTTV9ERVRF Q1RfUVVJRVQgPSAweDAsCj4gKwlEV19QQ0lFX0xUU1NNX0RFVEVDVF9BQ1QgPSAweDEsCj4gKwlE V19QQ0lFX0xUU1NNX0wwID0gMHgxMSwKPiArCURXX1BDSUVfTFRTU01fTDJfSURMRSA9IDB4MTUs Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgZHdfcGNpZV9ob3N0X29wcyB7Cj4gIAlpbnQgKCpob3N0X2lu aXQpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gIAl2b2lkICgqaG9zdF9kZWluaXQpKHN0cnVj dCBkd19wY2llX3JwICpwcCk7Cj4gIAlpbnQgKCptc2lfaG9zdF9pbml0KShzdHJ1Y3QgZHdfcGNp ZV9ycCAqcHApOwo+ICsJdm9pZCAoKnBtZV90dXJuX29mZikoc3RydWN0IGR3X3BjaWVfcnAgKnBw KTsKPiArCXZvaWQgKCpleGl0X2Zyb21fbDIpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gIH07 Cj4gIAo+ICBzdHJ1Y3QgZHdfcGNpZV9ycCB7Cj4gQEAgLTM2NCw2ICszNzUsNyBAQCBzdHJ1Y3Qg ZHdfcGNpZV9vcHMgewo+ICAJdm9pZCAgICAoKndyaXRlX2RiaTIpKHN0cnVjdCBkd19wY2llICpw Y2llLCB2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiByZWcsCj4gIAkJCSAgICAgIHNpemVfdCBzaXpl LCB1MzIgdmFsKTsKPiAgCWludAkoKmxpbmtfdXApKHN0cnVjdCBkd19wY2llICpwY2llKTsKPiAr CWVudW0gZHdfcGNpZV9sdHNzbSAoKmdldF9sdHNzbSkoc3RydWN0IGR3X3BjaWUgKnBjaWUpOwo+ ICAJaW50CSgqc3RhcnRfbGluaykoc3RydWN0IGR3X3BjaWUgKnBjaWUpOwo+ICAJdm9pZAkoKnN0 b3BfbGluaykoc3RydWN0IGR3X3BjaWUgKnBjaWUpOwo+ICB9Owo+IEBAIC0zOTMsNiArNDA1LDcg QEAgc3RydWN0IGR3X3BjaWUgewo+ICAJc3RydWN0IHJlc2V0X2NvbnRyb2xfYnVsa19kYXRhCWFw cF9yc3RzW0RXX1BDSUVfTlVNX0FQUF9SU1RTXTsKPiAgCXN0cnVjdCByZXNldF9jb250cm9sX2J1 bGtfZGF0YQljb3JlX3JzdHNbRFdfUENJRV9OVU1fQ09SRV9SU1RTXTsKPiAgCXN0cnVjdCBncGlv X2Rlc2MJCSpwZV9yc3Q7Cj4gKwlib29sCQkJc3VzcGVuZGVkOwo+ICB9Owo+ICAKPiAgI2RlZmlu ZSB0b19kd19wY2llX2Zyb21fcHAocG9ydCkgY29udGFpbmVyX29mKChwb3J0KSwgc3RydWN0IGR3 X3BjaWUsIHBwKQo+IEBAIC00MzAsNiArNDQzLDkgQEAgdm9pZCBkd19wY2llX2lhdHVfZGV0ZWN0 KHN0cnVjdCBkd19wY2llICpwY2kpOwo+ICBpbnQgZHdfcGNpZV9lZG1hX2RldGVjdChzdHJ1Y3Qg ZHdfcGNpZSAqcGNpKTsKPiAgdm9pZCBkd19wY2llX2VkbWFfcmVtb3ZlKHN0cnVjdCBkd19wY2ll ICpwY2kpOwo+ICAKPiAraW50IGR3X3BjaWVfc3VzcGVuZF9ub2lycShzdHJ1Y3QgZHdfcGNpZSAq cGNpKTsKPiAraW50IGR3X3BjaWVfcmVzdW1lX25vaXJxKHN0cnVjdCBkd19wY2llICpwY2kpOwo+ ICsKPiAgc3RhdGljIGlubGluZSB2b2lkIGR3X3BjaWVfd3JpdGVsX2RiaShzdHJ1Y3QgZHdfcGNp ZSAqcGNpLCB1MzIgcmVnLCB1MzIgdmFsKQo+ICB7Cj4gIAlkd19wY2llX3dyaXRlX2RiaShwY2ks IHJlZywgMHg0LCB2YWwpOwo+IEBAIC01MDEsNiArNTE3LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBkd19wY2llX3N0b3BfbGluayhzdHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICAJCXBjaS0+b3BzLT5z dG9wX2xpbmsocGNpKTsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSBlbnVtIGR3X3BjaWVfbHRz c20gZHdfcGNpZV9nZXRfbHRzc20oc3RydWN0IGR3X3BjaWUgKnBjaSkKPiArewo+ICsJdTMyIHZh bDsKPiArCj4gKwlpZiAocGNpLT5vcHMgJiYgcGNpLT5vcHMtPmdldF9sdHNzbSkKPiArCQlyZXR1 cm4gcGNpLT5vcHMtPmdldF9sdHNzbShwY2kpOwo+ICsKPiArCXZhbCA9IGR3X3BjaWVfcmVhZGxf ZGJpKHBjaSwgUENJRV9QT1JUX0RFQlVHMCk7Cj4gKwo+ICsJcmV0dXJuIChlbnVtIGR3X3BjaWVf bHRzc20pRklFTERfR0VUKFBPUlRfTE9HSUNfTFRTU01fU1RBVEVfTUFTSywgdmFsKTsKPiArfQo+ ICsKPiAgI2lmZGVmIENPTkZJR19QQ0lFX0RXX0hPU1QKPiAgaXJxcmV0dXJuX3QgZHdfaGFuZGxl X21zaV9pcnEoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiAgaW50IGR3X3BjaWVfc2V0dXBfcmMo c3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiAtLSAKPiAyLjM0LjEKPiAKCi0tIArgrq7grqPgrr/g rrXgrqPgr43grqPgrqngr40g4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==