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 1358CC001DE for ; Wed, 2 Aug 2023 04:57:00 +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=3cEEfxwcMj+RhVKFHw/0nUj2hZcGombfC8lO2mhSWEA=; b=AiZ7xaZ91SjMo/ 7ve2j6OphhHI4wZONeZ3oiFopIebAh4nPy78d9RSPHU47UOPmqrFXfBoXHB3CupXYMfjqTzBRJKbk f6dEfgwPQcWAbmG3VR3YyMRtzJeTFMuvwi3Amb5vBYiEopHZRMB4TBCWoc+KN3K94cY1mra8GS3Dz /r2EMC9niH7Elk5uS67k1Xp7qedafoMkPAHUetYHNYQXxi+xcuMOeheEVqUaMd9Au9UmMtuvehFq8 hE7diVBKNLjP+c+y7W5x2PC6wEnrMN2bo/RsYtqdKDxx8S3im/NxlsrHPwbru+j95GCAr8Fj3YetE ihfCDH5lMRo6r18ieOjw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qR3uR-00404C-1a; Wed, 02 Aug 2023 04:56:31 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qR3uO-00403W-07 for linux-arm-kernel@lists.infradead.org; Wed, 02 Aug 2023 04:56:29 +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 48C49617A0; Wed, 2 Aug 2023 04:56:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42BBDC433C8; Wed, 2 Aug 2023 04:56:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690952186; bh=jkqNebjbGSnF+JKGgJsSItHww469pXN74F0m7mNutlM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=WIyEnXcHkhv1jvgI3nCnc6/9PJqXc9fTIm3eiqeI1DuD1AoXQVEOow+6u6MNiW5rq 03CLmHo3PLrZAqBT9yu8cN2nVN46FpTyDhxucWQ+84KDNLSoBU7gMBBPYPly/FGNiN 831dyR8JJfxxif73t+y1EIr0novEH/FyXEgd2iC9k0JXWwVs/sfepV/7Iq1dPCBCjf 8U+41Tq1GY6RPznJk7iuHRrNbJ0AoJohx6XGDohou7ALTh00dnlWNYIjk23nVhWdFy ftf6N0MFSetfy1iKT6t2chVyOIrrBzpJOnNyiWEopjSmObJ8hnzgiapQqukZLa1+vm 4BiBxufmURavw== Date: Wed, 2 Aug 2023 10:26:10 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: lpieralisi@kernel.org, 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, lorenzo.pieralisi@arm.com, manivannan.sadhasivam@linaro.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 v6 2/2] PCI: layerscape: Add power management support for ls1028a Message-ID: <20230802045610.GE2370@thinkpad> References: <20230731194010.73016-1-Frank.Li@nxp.com> <20230731194010.73016-2-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230731194010.73016-2-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230801_215628_185530_180849E3 X-CRM114-Status: GOOD ( 34.15 ) 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 T24gTW9uLCBKdWwgMzEsIDIwMjMgYXQgMDM6NDA6MTBQTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gRnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4KPiAKPiBBZGQgUE1F X1R1cm5fT2ZmL1BNRV9UT19BY2sgaGFuZHNoYWtlIHNlcXVlbmNlLCBhbmQgZmluYWxseQo+IHB1 dCB0aGUgUENJZSBjb250cm9sbGVyIGludG8gRDMgc3RhdGUgYWZ0ZXIgdGhlIEwyL0wzIHJlYWR5 Cj4gc3RhdGUgdHJhbnNpdGlvbiBwcm9jZXNzIGNvbXBsZXRpb24uCj4gCgpUaGlzIGNvbW1pdCBt ZXNzYWdlIGlzIHdyb25nL291dGRhdGVkLiBQbGVhc2UgZGVzY3JpYmUgd2hhdCBfdGhpc18gcGF0 Y2ggZG9lcy4KCj4gU2lnbmVkLW9mZi1ieTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhw LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4KPiAtLS0K PiAtIENoYW5nZSBmcm9tIHY1IHRvIHY2Cj4gICBjaGFuZ2UgdG8gTk9JUlFfU1lTVEVNX1NMRUVQ X1BNX09QUyB0byByZW1vdmUgI2lmZGVmIFBNX0NPTkZJRwo+ICAgCj4gLSBDaGFuZ2UgZnJvbSB2 MyB0byB2NQo+ICAgbm9uZQo+IAo+IC0gIGNoYW5nZSBhdCB2Mwo+ICAgQmFzaWMgcmV3cml0ZSB3 aG9sZSBwYXRjaCBhY2NvcmRpbmcgcm9iIGhlcnJ5IHN1Z2dlc3Rpb24uCj4gICBwdXQgY29tbW9u IGZ1bmN0aW9uIGludG8gZHdjLCBzbyBtb3JlIHNvYyBjYW4gc2hhcmUgdGhlIHNhbWUgbG9naWMu Cj4gCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLmMgfCAxNDYg KysrKysrKysrKysrKysrKysrLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2ktbGF5ZXJzY2FwZS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWxh eWVyc2NhcGUuYwo+IGluZGV4IGVkNWZiNDkyZmUwODQuLmYyMzVjNzk2MDAyNzcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWxheWVyc2NhcGUuYwo+ICsrKyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLmMKPiBAQCAtOCw5ICs4 LDExIEBACj4gICAqIEF1dGhvcjogTWluZ2h1YW4gTGlhbiA8TWluZ2h1YW4uTGlhbkBmcmVlc2Nh bGUuY29tPgo+ICAgKi8KPiAgCj4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+ICAjaW5jbHVk ZSA8bGludXgva2VybmVsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L2luaXQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgo+ICAjaW5j bHVkZSA8bGludXgvb2ZfcGNpLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgo+ ICAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgo+IEBAIC0yNywxMiArMjksMzMgQEAKPiAg I2RlZmluZSBQQ0lFX0FCU0VSUgkJMHg4ZDAgLyogQnJpZGdlIFNsYXZlIEVycm9yIFJlc3BvbnNl IFJlZ2lzdGVyICovCj4gICNkZWZpbmUgUENJRV9BQlNFUlJfU0VUVElORwkweDk0MDEgLyogRm9y d2FyZCBlcnJvciBvZiBub24tcG9zdGVkIHJlcXVlc3QgKi8KPiAgCj4gKy8qIFBGIE1lc3NhZ2Ug Q29tbWFuZCBSZWdpc3RlciAqLwo+ICsjZGVmaW5lIExTX1BDSUVfUEZfTUNSCQkweDJjCj4gKyNk ZWZpbmUgUEZfTUNSX1BUT01SCQlCSVQoMCkKPiArI2RlZmluZSBQRl9NQ1JfRVhMMlMJCUJJVCgx KQo+ICsKPiAgI2RlZmluZSBQQ0lFX0lBVFVfTlVNCQk2Cj4gIAo+ICtzdHJ1Y3QgbHNfcGNpZTsK PiArCgpXaHkgZG8geW91IG5lZWQgZm93YXJkIGRlY2xhcmF0aW9uPwoKPiArc3RydWN0IGxzX3Bj aWVfZHJ2ZGF0YSB7Cj4gKwljb25zdCB1MzIgcGZfb2ZmOwo+ICsJY29uc3QgdTMyIGx1dF9vZmY7 Cj4gKwlib29sIHBtX3N1cHBvcnQ7Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgbHNfcGNpZSB7Cj4gIAlz dHJ1Y3QgZHdfcGNpZSAqcGNpOwo+ICsJY29uc3Qgc3RydWN0IGxzX3BjaWVfZHJ2ZGF0YSAqZHJ2 ZGF0YTsKPiArCXZvaWQgX19pb21lbSAqcGZfYmFzZTsKPiArCXZvaWQgX19pb21lbSAqbHV0X2Jh c2U7Cj4gKwlib29sIGJpZ19lbmRpYW47Cj4gKwlib29sIGVwX3ByZXNlbmNlOwoKV2hlcmUgaXMg dGhpcyB2YXJpYWJsZSB1c2VkPwoKPiArCXN0cnVjdCByZWdtYXAgKnNjZmc7Cj4gKwlpbnQgaW5k ZXg7Cj4gIH07Cj4gIAo+ICsjZGVmaW5lIGxzX3BjaWVfcGZfcmVhZGxfYWRkcihhZGRyKQlsc19w Y2llX3BmX3JlYWRsKHBjaWUsIGFkZHIpCj4gICNkZWZpbmUgdG9fbHNfcGNpZSh4KQlkZXZfZ2V0 X2RydmRhdGEoKHgpLT5kZXYpCj4gIAo+ICBzdGF0aWMgYm9vbCBsc19wY2llX2lzX2JyaWRnZShz dHJ1Y3QgbHNfcGNpZSAqcGNpZSkKPiBAQCAtNzMsNiArOTYsNTcgQEAgc3RhdGljIHZvaWQgbHNf cGNpZV9maXhfZXJyb3JfcmVzcG9uc2Uoc3RydWN0IGxzX3BjaWUgKnBjaWUpCj4gIAlpb3dyaXRl MzIoUENJRV9BQlNFUlJfU0VUVElORywgcGNpLT5kYmlfYmFzZSArIFBDSUVfQUJTRVJSKTsKPiAg fQo+ICAKPiArc3RhdGljIHUzMiBsc19wY2llX3BmX3JlYWRsKHN0cnVjdCBsc19wY2llICpwY2ll LCB1MzIgb2ZmKQo+ICt7Cj4gKwlpZiAocGNpZS0+YmlnX2VuZGlhbikKPiArCQlyZXR1cm4gaW9y ZWFkMzJiZShwY2llLT5wZl9iYXNlICsgb2ZmKTsKPiArCj4gKwlyZXR1cm4gaW9yZWFkMzIocGNp ZS0+cGZfYmFzZSArIG9mZik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGxzX3BjaWVfcGZfd3Jp dGVsKHN0cnVjdCBsc19wY2llICpwY2llLCB1MzIgb2ZmLCB1MzIgdmFsKQo+ICt7Cj4gKwlpZiAo cGNpZS0+YmlnX2VuZGlhbikKPiArCQlyZXR1cm4gaW93cml0ZTMyYmUodmFsLCBwY2llLT5wZl9i YXNlICsgb2ZmKTsKClJldHVybiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG1hcmtlZCBhcyB2 b2lkLiBTbyB5b3Ugc2hvdWxkIG5vdCByZXR1cm4KYW55dGhpbmcuCgo+ICsKPiArCXJldHVybiBp b3dyaXRlMzIodmFsLCBwY2llLT5wZl9iYXNlICsgb2ZmKTsKPiArCj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIGxzX3BjaWVfc2VuZF90dXJub2ZmX21zZyhzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4g K3sKPiArCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICsJ c3RydWN0IGxzX3BjaWUgKnBjaWUgPSB0b19sc19wY2llKHBjaSk7Cj4gKwl1MzIgdmFsOwo+ICsJ aW50IHJldDsKPiArCj4gKwl2YWwgPSBsc19wY2llX3BmX3JlYWRsKHBjaWUsIExTX1BDSUVfUEZf TUNSKTsKPiArCXZhbCB8PSBQRl9NQ1JfUFRPTVI7Cj4gKwlsc19wY2llX3BmX3dyaXRlbChwY2ll LCBMU19QQ0lFX1BGX01DUiwgdmFsKTsKPiArCj4gKwlyZXQgPSByZWFkeF9wb2xsX3RpbWVvdXQo bHNfcGNpZV9wZl9yZWFkbF9hZGRyLCBMU19QQ0lFX1BGX01DUiwKPiArCQkJCSB2YWwsICEodmFs ICYgUEZfTUNSX1BUT01SKSwgMTAwLCAxMDAwMCk7CgpBcyBJIG1lbnRpb25lZCBpbiBwcmV2aW91 cyBwYXRjaCwgaWYgeW91IGludGVuZCB0byB1c2UgMW1zLCBwbGVhc2UgY2hhbmdlIHRoZQp2YWx1 ZSB0byAxMDAwLgoKPiArCWlmIChyZXQpCj4gKwkJZGV2X2luZm8ocGNpZS0+cGNpLT5kZXYsICJw b2xsIHR1cm4gb2ZmIG1lc3NhZ2UgdGltZW91dFxuIik7CgpkZXZfZXJyPyBTYW1lIGJlbG93LgoK PiArfQo+ICsKPiArc3RhdGljIHZvaWQgbHNfcGNpZV9leGl0X2Zyb21fbDIoc3RydWN0IGR3X3Bj aWVfcnAgKnBwKQo+ICt7Cj4gKwlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9t X3BwKHBwKTsKPiArCXN0cnVjdCBsc19wY2llICpwY2llID0gdG9fbHNfcGNpZShwY2kpOwo+ICsJ dTMyIHZhbDsKPiArCWludCByZXQ7Cj4gKwo+ICsJdmFsID0gbHNfcGNpZV9wZl9yZWFkbChwY2ll LCBMU19QQ0lFX1BGX01DUik7Cj4gKwl2YWwgfD0gUEZfTUNSX0VYTDJTOwo+ICsJbHNfcGNpZV9w Zl93cml0ZWwocGNpZSwgTFNfUENJRV9QRl9NQ1IsIHZhbCk7Cj4gKwo+ICsJcmV0ID0gcmVhZHhf cG9sbF90aW1lb3V0KGxzX3BjaWVfcGZfcmVhZGxfYWRkciwgTFNfUENJRV9QRl9NQ1IsCj4gKwkJ CQkgdmFsLCAhKHZhbCAmIFBGX01DUl9FWEwyUyksIDEwMCwgMTAwMDApOwo+ICsJaWYgKHJldCkK PiArCQlkZXZfaW5mbyhwY2llLT5wY2ktPmRldiwgInBvbGwgZXhpdCBMMiBzdGF0ZSB0aW1lb3V0 XG4iKTsKClNhbWUgYXMgYWJvdmUuCgo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGxzX3BjaWVfaG9z dF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBj aSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gQEAgLTkxLDE4ICsxNjUsMzMgQEAgc3RhdGlj IGludCBsc19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIAo+ICBzdGF0 aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfaG9zdF9vcHMgbHNfcGNpZV9ob3N0X29wcyA9IHsKPiAg CS5ob3N0X2luaXQgPSBsc19wY2llX2hvc3RfaW5pdCwKPiArCS5wbWVfdHVybl9vZmYgPSBsc19w Y2llX3NlbmRfdHVybm9mZl9tc2csCj4gKwkuZXhpdF9mcm9tX2wyID0gbHNfcGNpZV9leGl0X2Zy b21fbDIsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGxzX3BjaWVfZHJ2ZGF0YSBs czEwMjFhX2RydmRhdGEgPSB7Cj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGxzX3Bj aWVfZHJ2ZGF0YSBsczEwNDNhX2RydmRhdGEgPSB7Cj4gKwkubHV0X29mZiA9IDB4MTAwMDAsCj4g K307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGxzX3BjaWVfZHJ2ZGF0YSBsYXllcnNjYXBl X2RydmRhdGEgPSB7Cj4gKwkubHV0X29mZiA9IDB4ODAwMDAsCj4gKwkucGZfb2ZmID0gMHhjMDAw MCwKPiArCS5wbV9zdXBwb3J0ID0gdHJ1ZSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIGxzX3BjaWVfb2ZfbWF0Y2hbXSA9IHsKPiAtCXsgLmNvbXBhdGlibGUg PSAiZnNsLGxzMTAxMmEtcGNpZSIsIH0sCj4gLQl7IC5jb21wYXRpYmxlID0gImZzbCxsczEwMjFh LXBjaWUiLCB9LAo+IC0JeyAuY29tcGF0aWJsZSA9ICJmc2wsbHMxMDI4YS1wY2llIiwgfSwKPiAt CXsgLmNvbXBhdGlibGUgPSAiZnNsLGxzMTA0M2EtcGNpZSIsIH0sCj4gLQl7IC5jb21wYXRpYmxl ID0gImZzbCxsczEwNDZhLXBjaWUiLCB9LAo+IC0JeyAuY29tcGF0aWJsZSA9ICJmc2wsbHMyMDgw YS1wY2llIiwgfSwKPiAtCXsgLmNvbXBhdGlibGUgPSAiZnNsLGxzMjA4NWEtcGNpZSIsIH0sCj4g LQl7IC5jb21wYXRpYmxlID0gImZzbCxsczIwODhhLXBjaWUiLCB9LAo+IC0JeyAuY29tcGF0aWJs ZSA9ICJmc2wsbHMxMDg4YS1wY2llIiwgfSwKPiArCXsgLmNvbXBhdGlibGUgPSAiZnNsLGxzMTAx MmEtcGNpZSIsIC5kYXRhID0gJmxheWVyc2NhcGVfZHJ2ZGF0YSB9LAo+ICsJeyAuY29tcGF0aWJs ZSA9ICJmc2wsbHMxMDIxYS1wY2llIiwgLmRhdGEgPSAmbHMxMDIxYV9kcnZkYXRhIH0sCj4gKwl7 IC5jb21wYXRpYmxlID0gImZzbCxsczEwMjhhLXBjaWUiLCAuZGF0YSA9ICZsYXllcnNjYXBlX2Ry dmRhdGEgfSwKPiArCXsgLmNvbXBhdGlibGUgPSAiZnNsLGxzMTA0M2EtcGNpZSIsIC5kYXRhID0g JmxzMTA0M2FfZHJ2ZGF0YSB9LAo+ICsJeyAuY29tcGF0aWJsZSA9ICJmc2wsbHMxMDQ2YS1wY2ll IiwgLmRhdGEgPSAmbGF5ZXJzY2FwZV9kcnZkYXRhIH0sCj4gKwl7IC5jb21wYXRpYmxlID0gImZz bCxsczIwODBhLXBjaWUiLCAuZGF0YSA9ICZsYXllcnNjYXBlX2RydmRhdGEgfSwKPiArCXsgLmNv bXBhdGlibGUgPSAiZnNsLGxzMjA4NWEtcGNpZSIsIC5kYXRhID0gJmxheWVyc2NhcGVfZHJ2ZGF0 YSB9LAo+ICsJeyAuY29tcGF0aWJsZSA9ICJmc2wsbHMyMDg4YS1wY2llIiwgLmRhdGEgPSAmbGF5 ZXJzY2FwZV9kcnZkYXRhIH0sCj4gKwl7IC5jb21wYXRpYmxlID0gImZzbCxsczEwODhhLXBjaWUi LCAuZGF0YSA9ICZsYXllcnNjYXBlX2RydmRhdGEgfSwKPiAgCXsgfSwKPiAgfTsKPiAgCj4gQEAg LTEyMSw2ICsyMTAsOCBAQCBzdGF0aWMgaW50IGxzX3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgCWlmICghcGNpKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAr CXBjaWUtPmRydmRhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsKPiArCj4gIAlw Y2ktPmRldiA9IGRldjsKPiAgCXBjaS0+cHAub3BzID0gJmxzX3BjaWVfaG9zdF9vcHM7Cj4gIAo+ IEBAIC0xMzEsNiArMjIyLDE0IEBAIHN0YXRpYyBpbnQgbHNfcGNpZV9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJaWYgKElTX0VSUihwY2ktPmRiaV9iYXNlKSkKPiAgCQly ZXR1cm4gUFRSX0VSUihwY2ktPmRiaV9iYXNlKTsKPiAgCj4gKwlwY2llLT5iaWdfZW5kaWFuID0g b2ZfcHJvcGVydHlfcmVhZF9ib29sKGRldi0+b2Zfbm9kZSwgImJpZy1lbmRpYW4iKTsKPiArCj4g KwlpZiAocGNpZS0+ZHJ2ZGF0YS0+bHV0X29mZikKPiArCQlwY2llLT5sdXRfYmFzZSA9IHBjaS0+ ZGJpX2Jhc2UgKyBwY2llLT5kcnZkYXRhLT5sdXRfb2ZmOwoKV2hlcmUgaXMgbHV0X2Jhc2UgYmVp bmcgdXNlZD8KCj4gKwo+ICsJaWYgKHBjaWUtPmRydmRhdGEtPnBmX29mZikKCk5vIG5lZWQgb2Yg dGhpcyBjaGVjay4gSW4gdGhlIGFic2VuY2Ugb2YgInBmX29mZiIsIHBmX2Jhc2UgaXMgZ29pbmcg dG8gYmUgMAp3aGljaCBpcyBhbnl3YXkgd3JvbmcgaWYgdXNlZC4gU28ganVzdCB1c2UgInBmX29m ZiIgZGlyZWN0bHkuCgpJZiB5b3UgcmVhbGx5IG5lZWQgdGhlIGNoZWNrLCB0aGVuIHlvdSBzaG91 bGQgdXNlICJwbV9zdXBwb3J0IiBhcyBiZWxvdzoKCglpZiAocGNpZS0+ZHJ2ZGF0YS0+cG1fc3Vw cG9ydCkKCQlwY2llLT5wZl9iYXNlID0gcGNpLT5kYmlfYmFzZSArIHBjaWUtPmRydmRhdGEtPnBm X29mZjsKClRoaXMgbWFrZXMgaXQgY2xlYXIgdGhhdCAicGZfYmFzZSIgaXMgb25seSB1c2VkIGlm IHBtX3N1cHBvcnQgaXMgZW5hYmxlZC4KCj4gKwkJcGNpZS0+cGZfYmFzZSA9IHBjaS0+ZGJpX2Jh c2UgKyBwY2llLT5kcnZkYXRhLT5wZl9vZmY7Cj4gKwo+ICAJaWYgKCFsc19wY2llX2lzX2JyaWRn ZShwY2llKSkKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCj4gQEAgLTEzOSwxMiArMjM4LDQxIEBA IHN0YXRpYyBpbnQgbHNfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ICAJcmV0dXJuIGR3X3BjaWVfaG9zdF9pbml0KCZwY2ktPnBwKTsKPiAgfQo+ICAKPiArc3RhdGlj IGludCBsc19wY2llX3N1c3BlbmRfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4gKwlz dHJ1Y3QgbHNfcGNpZSAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJc3RydWN0IGR3 X3BjaWUgKnBjaSA9IHBjaWUtPnBjaTsKPiArCj4gKwlpZiAoIXBjaWUtPmRydmRhdGEtPnBtX3N1 cHBvcnQpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcmV0dXJuIGR3X3BjaWVfc3VzcGVuZF9ub2ly cShwY2kpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxzX3BjaWVfcmVzdW1lX25vaXJxKHN0cnVj dCBkZXZpY2UgKmRldikKPiArewo+ICsKClJlbW92ZSBuZXdsaW5lLgoKLSBNYW5pCgo+ICsJc3Ry dWN0IGxzX3BjaWUgKnBjaWUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCXN0cnVjdCBkd19w Y2llICpwY2kgPSBwY2llLT5wY2k7Cj4gKwo+ICsJaWYgKCFwY2llLT5kcnZkYXRhLT5wbV9zdXBw b3J0KQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXJldHVybiBkd19wY2llX3Jlc3VtZV9ub2lycShw Y2kpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgbHNfcGNpZV9w bV9vcHMgPSB7Cj4gKwlOT0lSUV9TWVNURU1fU0xFRVBfUE1fT1BTKGxzX3BjaWVfc3VzcGVuZF9u b2lycSwKPiArCQkJCSAgICAgIGxzX3BjaWVfcmVzdW1lX25vaXJxKQo+ICt9Owo+ICsKPiAgc3Rh dGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbHNfcGNpZV9kcml2ZXIgPSB7Cj4gIAkucHJvYmUg PSBsc19wY2llX3Byb2JlLAo+ICAJLmRyaXZlciA9IHsKPiAgCQkubmFtZSA9ICJsYXllcnNjYXBl LXBjaWUiLAo+ICAJCS5vZl9tYXRjaF90YWJsZSA9IGxzX3BjaWVfb2ZfbWF0Y2gsCj4gIAkJLnN1 cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLAo+ICsJCS5wbSA9ICZsc19wY2llX3BtX29wcywKPiAg CX0sCj4gIH07Cj4gIGJ1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGxzX3BjaWVfZHJpdmVyKTsKPiAt LSAKPiAyLjM0LjEKPiAKCi0tIArgrq7grqPgrr/grrXgrqPgr43grqPgrqngr40g4K6a4K6k4K6+ 4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsCg==