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 216B2C433F5 for ; Fri, 7 Oct 2022 09:16:53 +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=yfr67krdJsxE+W0+dqUKBf3CyqtRiijS+KSCd9ETjjQ=; b=0lWruLA2OwIyU4 C7bnJzFm4tu3xnwzgrAfXmbFAMFHas5CPA3AZAPZ4iLylfNmqWU3y5OxVrkQIberxx7vjJh++JGfI kJkwQsr/XOqFEb05ci95UfhQf52MffPFjM+DVwonwjcZSVLuALC3nPQKnFi2pHza9TB+jUcH2NwXU fRfQfIwb3SC03c6JDCe2ReHzYik9CB4Arh8Dd/P5H5mmQ0O1QjmZOk4jo7ggy5UuMDI+JaAiBXQi4 sjd9ij3Igtp3HXPOtZaahyaYZWm2spce0HxpE7IevffiSX7yJraVChi40VyBh9y8ixPqIzkq37Fvx sn44TJwe+fPebt+7Kmgg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ogjSN-008FtN-7g; Fri, 07 Oct 2022 09:15:47 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ogjSJ-008FmQ-5g for linux-arm-kernel@lists.infradead.org; Fri, 07 Oct 2022 09:15:45 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 96FFEB8229B; Fri, 7 Oct 2022 09:15:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D5C1C433C1; Fri, 7 Oct 2022 09:15:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665134140; bh=qVJoQ6YlfJEzLvx32Gk1iCvr34KtLSNoE7vybUBEf/M=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=vFg7oKfCjVey3WEqhHGHWUeZ7O86HKFqJBQtjwGxKZmu2mmkWTEoTx6EAQnQLTOLF u32dMb288GLNFKRjsNZW2zu2JAAoPqDpgWV+Y1jmAGbJ2/ewuQGnvX1F2ZrjGgb8EY MWPIFuVTtznuxFEQu8D1n1aF/zKjWRqEMoM8ulyX/19JAqF4wdMn3r6948x9qyDPO6 pXpf0cAcmEVsQHn8dKwHBAoPveMDJWxczY5f4stbFrDj/OOCt51ETVUXS14rNPgag+ CAx6y5aeVLicCeqvCVbIA+bWW/oIFsy5jL8JCRXwPVZqyAkeqIt4ISOalzXH2mH1B+ aoLFmE8z+rxJw== Date: Fri, 7 Oct 2022 11:15:30 +0200 From: Lorenzo Pieralisi To: Frank Li Cc: maz@kernel.org, tglx@linutronix.de, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kw@linux.com, bhelgaas@google.com, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, peng.fan@nxp.com, aisheng.dong@nxp.com, jdmason@kudzu.us, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, kishon@ti.com, lorenzo.pieralisi@arm.com, ntb@lists.linux.dev, lznuaa@gmail.com, imx@lists.linux.dev, manivannan.sadhasivam@linaro.org Subject: Re: [PATCH v12 6/6] PCI: endpoint: Add vNTB MSI support Message-ID: References: <20220922161246.20586-1-Frank.Li@nxp.com> <20220922161246.20586-7-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220922161246.20586-7-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221007_021543_524432_D05BE766 X-CRM114-Status: GOOD ( 38.87 ) 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 T24gVGh1LCBTZXAgMjIsIDIwMjIgYXQgMTE6MTI6NDZBTSAtMDUwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gICAgICAgICAgICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICAg ICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKPiAgICAg ICAgICAgICAgICAgICAgICAg4pSCICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICDilIIgICAg ICAgICAg4pSCCj4gICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUkCAgIOKUgiBQQ0kgICDilIIgICAgICAgICAgICAgICAgICAg4pSCIFBDSSBIb3N0IOKUggo+ ICAgICDilIIgTVNJICAgICAgICAg4pSC4peE4pSQIOKUgiBFUCAgICDilIIgICAgICAgICAgICAg ICAgICAg4pSCICAgICAgICAgIOKUggo+ICAgICDilIIgQ29udHJvbGxlciAg4pSCIOKUgiDilIIg ICAgICAg4pSCIDMuTVNJIFdyaXRlICAgICAgIOKUgiAgICAgICAgICDilIIKPiAgICAg4pSU4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUvOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUpCAgICAgICAgICDilIIKPiAgICAgICDilrIgICAgICDilIIgICAg ICAgIOKUgiAgICAgICDilIIgICAgICAgICAgICAgICAgICAg4pSc4pSAQkFSX24gICAg4pSCCj4g ICAgICAg4pSCICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pa64pSCICAgICAgICAgIOKUggo+ICAgICAgIOKUgiAgICAgICAgICAgICAgIOKU giAgICAgICDilIIgMi5DYWxsIEJhY2sgICAgICAg4pSCICAgICAgICAgIOKUggo+ICAgICAgIOKU giAgICAgICAgICAgICAgIOKUgiAgICAgICDilIIgICB3cml0ZV9tc2lfbXNnKCkg4pSCICAgICAg ICAgIOKUggo+ICAgICAgIOKUgiAgICAgICAgICAgICAgIOKUgiAgICAgICDilIIgICAgICAgICAg ICAgICAgICAg4pSCICAgICAgICAgIOKUggo+ICAgICAgIOKUgiAgICAgICAgICAgICAgIOKUlOKU gOKUgOKUgOKUrOKUgOKUgOKUgOKUmCAgICAgICAgICAgICAgICAgICDilJTilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilJgKPiAgICAgICDilIIgICAgICAgICAgICAgICAgICAg4pSCCj4g ICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSYCj4gICAgICAgMS5wbGF0Zm9ybV9tc2lfZG9tYWluX2FsbG9jX2lycXMoKQo+ IAo+IFRoZXJlIGlzIG5vIGRlZmluZWQgd2F5IG9mIHJhaXNpbmcgSVJRcyBieSBQQ0kgaG9zdCB0 byB0aGUgUENJIGVuZHBvaW50Lgo+IE9ubHkgZGVmaW5lIE1TSS9NU0ktWCB0byBsZXQgRVAgbm90 aWZpZWQgUkMgc3RhdHVzIGNoYW5nZS4KClRoaXMgcGljdHVyZSBpcyBtaXNsZWFkaW5nLCBlc3Bl Y2lhbGx5ICgyKS4gSUlVQyBhbGwgdGhpcyBwYXRjaCBpcwpkb2luZyBpcyBpbXBsZW1lbnRpbmcg YW4gTlRCIERCIGluIHRoZSBFUCwgdGhhdCdzIGl0LCB3ZSBzaG91bGQKcmV3b3JkIHRoZSBjb21t aXQgbG9nIGFzIHN1Y2guCgpXZSBhcmUgaW4gdGhlIG1lcmdlIHdpbmRvdyAtIGl0IGlzIHZlcnkg bGlrZWx5IHRoaXMgcGF0Y2ggc2hvdWxkCmJlIHBvc3Rwb25lZCB0byB2Ni4yLCBJIGRpZG4ndCBu b3RpY2UgdGhhdCB0aGUgSVJRY2hpcCBjaGFuZ2VzCndlbnQgaW4gLSBhcG9sb2dpZXMuCgo+IFRo ZSBtZW1vcnkgYXNzaWduZWQgZm9yIEJBUiByZWdpb24gYnkgdGhlIFBDSSBob3N0IGlzIG1hcHBl ZCB0byB0aGUKPiBtZXNzYWdlIGFkZHJlc3Mgb2YgcGxhdGZvcm0gbXNpIGludGVycnVwdCBjb250 cm9sbGVyIGluIFBDSSBFbmRwb2ludC4KPiBTdWNoIHRoYXQsIHdoZW5ldmVyIHRoZSBQQ0kgaG9z dCB3cml0ZXMgdG8gdGhlIEJBUiByZWdpb24sIGl0IHdpbGwKPiB0cmlnZ2VyIGFuIElSUSBpbiB0 aGUgRW5kcG9pbnQuCj4gCj4gQmFzaWMgd29ya2luZyBmb2xsb3cgYXMKPiAxLiBFUCBmdW5jdGlv biBkcml2ZXIgY2FsbCBwbGF0Zm9ybV9tc2lfZG9tYWluX2FsbG9jX2lycXMoKSBhbGxvYyBhCj4g TVNJIGlycSBmcm9tIE1TSSBjb250cm9sbGVyIHdpdGggY2FsbCBiYWNrIGZ1bmN0aW9uIHdyaXRl X21zaV9tc2coKTsKPiAyLiB3cml0ZV9tc2dfbXNnIHdpbGwgY29uZmlnIEJBUiBhbmQgbWFwIHRv IGFkZHJlc3MgZGVmaW5lZCBpbiBtc2lfbXNnOwo+IDMuIEhvc3Qgc2lkZSB0cmlnZ2VyIGFuIElS USBpbiBFbmRwb2ludCBieSB3cml0ZSB0byBCQVIgcmVnaW9uLgo+IAo+IEFkZCBNU0kgc3VwcG9y dCBmb3IgcGNpLWVwZi12bnRiLiBRdWVyeSBpZiBzeXN0ZW0gaGFzIGFuIE1TSSBjb250cm9sbGVy Lgo+IFNldCB1cCBkb29yYmVsbCBhZGRyZXNzIGFjY29yZGluZyB0byBzdHJ1Y3QgbXNpX21zZy4K PiAKPiBTbyBQQ0kgUkMgY2FuIHdyaXRlIHRoaXMgZG9vcmJlbGwgYWRkcmVzcyB0byB0cmlnZ2Vy IEVQIHNpZGUncyBJUlEuCj4gCj4gSWYgbm8gTVNJIGNvbnRyb2xsZXIgZXhpc3RzLCBmYWxsIGJh Y2sgdG8gc29mdHdhcmUgcG9sbGluZy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBMaSA8RnJh bmsuTGlAbnhwLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3Bj aS1lcGYtdm50Yi5jIHwgMTQ4ICsrKysrKysrKysrKysrKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwg MTI3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi12bnRiLmMgYi9kcml2ZXJzL3BjaS9l bmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi12bnRiLmMKPiBpbmRleCBhY2VhNzUzYWYyOWVkLi44 ZmRlYWMyMjAxZTI5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9u cy9wY2ktZXBmLXZudGIuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9w Y2ktZXBmLXZudGIuYwo+IEBAIC00NCw2ICs0NCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9wY2kt ZXBjLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wY2ktZXBmLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9u dGIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21zaS5oPgo+ICAKPiAgc3RhdGljIHN0cnVjdCB3b3Jr cXVldWVfc3RydWN0ICprcGNpbnRiX3dvcmtxdWV1ZTsKPiAgCj4gQEAgLTEzNywxMSArMTM4LDE0 IEBAIHN0cnVjdCBlcGZfbnRiIHsKPiAgCXN0cnVjdCBlcGZfbnRiX2N0cmwgKnJlZzsKPiAgCj4g IAl1MzIgKmVwZl9kYjsKPiArCXBoeXNfYWRkcl90IGVwZl9kYl9waHlzOwo+ICAKPiAgCXBoeXNf YWRkcl90IHZwY2lfbXdfcGh5W01BWF9NV107Cj4gIAl2b2lkIF9faW9tZW0gKnZwY2lfbXdfYWRk cltNQVhfTVddOwo+ICAKPiAgCXN0cnVjdCBkZWxheWVkX3dvcmsgY21kX2hhbmRsZXI7Cj4gKwo+ ICsJaW50IG1zaV92aXJxYmFzZTsKPiAgfTsKPiAgCj4gICNkZWZpbmUgdG9fZXBmX250YihlcGZf Z3JvdXApIGNvbnRhaW5lcl9vZigoZXBmX2dyb3VwKSwgc3RydWN0IGVwZl9udGIsIGdyb3VwKQo+ IEBAIC0yNTYsMTAgKzI2MCwxMyBAQCBzdGF0aWMgdm9pZCBlcGZfbnRiX2NtZF9oYW5kbGVyKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCj4gIAludGIgPSBjb250YWluZXJfb2Yod29yaywg c3RydWN0IGVwZl9udGIsIGNtZF9oYW5kbGVyLndvcmspOwo+ICAKPiAtCWZvciAoaSA9IDE7IGkg PCBudGItPmRiX2NvdW50OyBpKyspIHsKPiAtCQlpZiAobnRiLT5lcGZfZGJbaV0pIHsKPiAtCQkJ bnRiX2RiX2V2ZW50KCZudGItPm50YiwgaSk7Cj4gLQkJCW50Yi0+ZXBmX2RiW2ldID0gMDsKPiAr CWlmICghbnRiLT5lcGZfZGJfcGh5cykgewo+ICsJCWZvciAoaSA9IDE7IGkgPCBudGItPmRiX2Nv dW50OyBpKyspIHsKPiArCQkJaWYgKG50Yi0+ZXBmX2RiW2ldKSB7Cj4gKwkJCQludGItPmRiIHw9 IDEgPDwgKGkgLSAxKTsKPiArCQkJCW50Yl9kYl9ldmVudCgmbnRiLT5udGIsIGkpOwo+ICsJCQkJ bnRiLT5lcGZfZGJbaV0gPSAwOwo+ICsJCQl9Cj4gIAkJfQo+ICAJfQo+ICAKPiBAQCAtNDY0LDcg KzQ3MSw3IEBAIHN0YXRpYyBpbnQgZXBmX250Yl9jb25maWdfc3BhZF9iYXJfYWxsb2Moc3RydWN0 IGVwZl9udGIgKm50YikKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgbnRiLT5kYl9jb3VudDsgaSsr KSB7Cj4gIAkJbnRiLT5yZWctPmRiX2RhdGFbaV0gPSAxICsgaTsKPiAtCQludGItPnJlZy0+ZGJf b2Zmc2V0W2ldID0gMDsKPiArCQludGItPnJlZy0+ZGJfb2Zmc2V0W2ldID0gc2l6ZW9mKHUzMikg KiBpOwoKV2h5IHNpemVvZih1MzIpID8KCj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gQEAgLTUx Nyw2ICs1MjQsMjggQEAgc3RhdGljIGludCBlcGZfbnRiX2NvbmZpZ3VyZV9pbnRlcnJ1cHQoc3Ry dWN0IGVwZl9udGIgKm50YikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGVw Zl9udGJfZGJfc2l6ZShzdHJ1Y3QgZXBmX250YiAqbnRiKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3Qg cGNpX2VwY19mZWF0dXJlcyAqZXBjX2ZlYXR1cmVzOwo+ICsJc2l6ZV90IHNpemUgPSBzaXplb2Yo dTMyKSAqIG50Yi0+ZGJfY291bnQ7CgpTYW1lIHF1ZXN0aW9uLgoKPiArCXUzMiBhbGlnbjsKPiAr Cj4gKwllcGNfZmVhdHVyZXMgPSBwY2lfZXBjX2dldF9mZWF0dXJlcyhudGItPmVwZi0+ZXBjLAo+ ICsJCQkJCSAgICBudGItPmVwZi0+ZnVuY19ubywKPiArCQkJCQkgICAgbnRiLT5lcGYtPnZmdW5j X25vKTsKPiArCWFsaWduID0gZXBjX2ZlYXR1cmVzLT5hbGlnbjsKPiArCj4gKwlpZiAoc2l6ZSA8 IDEyOCkKPiArCQlzaXplID0gMTI4Owo+ICsKPiArCWlmIChhbGlnbikKPiArCQlzaXplID0gQUxJ R04oc2l6ZSwgYWxpZ24pOwo+ICsJZWxzZQo+ICsJCXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28o c2l6ZSk7Cj4gKwo+ICsJcmV0dXJuIHNpemU7Cj4gK30KPiArCj4gIC8qKgo+ICAgKiBlcGZfbnRi X2RiX2Jhcl9pbml0KCkgLSBDb25maWd1cmUgRG9vcmJlbGwgd2luZG93IEJBUnMKPiAgICogQG50 YjogTlRCIGRldmljZSB0aGF0IGZhY2lsaXRhdGVzIGNvbW11bmljYXRpb24gYmV0d2VlbiBIT1NU IGFuZCBWSE9TVAo+IEBAIC01NDAsMjcgKzU2OSwyNiBAQCBzdGF0aWMgaW50IGVwZl9udGJfZGJf YmFyX2luaXQoc3RydWN0IGVwZl9udGIgKm50YikKPiAgCQkJCQkgICAgbnRiLT5lcGYtPmZ1bmNf bm8sCj4gIAkJCQkJICAgIG50Yi0+ZXBmLT52ZnVuY19ubyk7Cj4gIAlhbGlnbiA9IGVwY19mZWF0 dXJlcy0+YWxpZ247Cj4gLQo+IC0JaWYgKHNpemUgPCAxMjgpCj4gLQkJc2l6ZSA9IDEyODsKPiAt Cj4gLQlpZiAoYWxpZ24pCj4gLQkJc2l6ZSA9IEFMSUdOKHNpemUsIGFsaWduKTsKPiAtCWVsc2UK PiAtCQlzaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKHNpemUpOwo+ICsJc2l6ZSA9IGVwZl9udGJf ZGJfc2l6ZShudGIpOwo+ICAKPiAgCWJhcm5vID0gbnRiLT5lcGZfbnRiX2JhcltCQVJfREJdOwo+ ICsJZXBmX2JhciA9ICZudGItPmVwZi0+YmFyW2Jhcm5vXTsKPiAgCj4gLQltd19hZGRyID0gcGNp X2VwZl9hbGxvY19zcGFjZShudGItPmVwZiwgc2l6ZSwgYmFybm8sIGFsaWduLCAwKTsKPiAtCWlm ICghbXdfYWRkcikgewo+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIE9CIGFk ZHJlc3NcbiIpOwo+IC0JCXJldHVybiAtRU5PTUVNOwo+ICsJaWYgKG50Yi0+ZXBmX2RiX3BoeXMp IHsKPiArCQltd19hZGRyID0gTlVMTDsKPiArCQllcGZfYmFyLT5waHlzX2FkZHIgPSBudGItPmVw Zl9kYl9waHlzOwo+ICsJCWVwZl9iYXItPmJhcm5vID0gYmFybm87Cj4gKwkJZXBmX2Jhci0+c2l6 ZSA9IHNpemU7Cj4gKwl9IGVsc2Ugewo+ICsJCW13X2FkZHIgPSBwY2lfZXBmX2FsbG9jX3NwYWNl KG50Yi0+ZXBmLCBzaXplLCBiYXJubywgYWxpZ24sIDApOwo+ICsJCWlmICghbXdfYWRkcikgewo+ ICsJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBkb29yYmVsbCBhZGRyZXNzXG4i KTsKPiArCQkJcmV0dXJuIC1FTk9NRU07Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCW50Yi0+ZXBmX2Ri ID0gbXdfYWRkcjsKPiAgCj4gLQllcGZfYmFyID0gJm50Yi0+ZXBmLT5iYXJbYmFybm9dOwo+IC0K PiAgCXJldCA9IHBjaV9lcGNfc2V0X2JhcihudGItPmVwZi0+ZXBjLCBudGItPmVwZi0+ZnVuY19u bywgbnRiLT5lcGYtPnZmdW5jX25vLCBlcGZfYmFyKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlkZXZf ZXJyKGRldiwgIkRvb3JiZWxsIEJBUiBzZXQgZmFpbGVkXG4iKTsKPiBAQCAtNzE5LDYgKzc0Nyw4 MyBAQCBzdGF0aWMgaW50IGVwZl9udGJfaW5pdF9lcGNfYmFyKHN0cnVjdCBlcGZfbnRiICpudGIp Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArI2lmZGVmIENPTkZJR19HRU5FUklDX01TSV9JUlFf RE9NQUlOCj4gK3N0YXRpYyB2b2lkIGVwZl9udGJfd3JpdGVfbXNpX21zZyhzdHJ1Y3QgbXNpX2Rl c2MgKmRlc2MsIHN0cnVjdCBtc2lfbXNnICptc2cpCj4gK3sKPiArCXN0cnVjdCBlcGZfbnRiICpu dGIgPSBkZXZfZ2V0X2RydmRhdGEoZGVzYy0+ZGV2KTsKPiArCXN0cnVjdCBlcGZfbnRiX2N0cmwg KnJlZyA9IG50Yi0+cmVnOwo+ICsJaW50IHNpemUgPSBlcGZfbnRiX2RiX3NpemUobnRiKTsKPiAr CXU2NCBhZGRyOwo+ICsKPiArCWFkZHIgPSBtc2ctPmFkZHJlc3NfaGk7Cj4gKwlhZGRyIDw8PSAz MjsKPiArCWFkZHIgfD0gbXNnLT5hZGRyZXNzX2xvOwo+ICsKPiArCXJlZy0+ZGJfZGF0YVtkZXNj LT5tc2lfaW5kZXhdID0gbXNnLT5kYXRhOwo+ICsKPiArCWlmICghZGVzYy0+bXNpX2luZGV4KQo+ ICsJCW50Yi0+ZXBmX2RiX3BoeXMgPSByb3VuZF9kb3duKGFkZHIsIHNpemUpOwo+ICsKPiArCXJl Zy0+ZGJfb2Zmc2V0W2Rlc2MtPm1zaV9pbmRleF0gPSBhZGRyIC0gbnRiLT5lcGZfZGJfcGh5czsK PiArfQo+ICsjZW5kaWYKCkNhbiB3ZSBtb3ZlIHRoaXMgaHVuayBkb3duIGludG8gdGhlIHNhbWUg I2lmZGVmIGd1YXJkIHBsZWFzZSA/Cgo+ICtzdGF0aWMgaXJxcmV0dXJuX3QgZXBmX250Yl9pbnRl cnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgZXBmX250 YiAqbnRiID0gZGF0YTsKPiArCWludCBpbmRleDsKPiArCj4gKwlpbmRleCA9IGlycSAtIG50Yi0+ bXNpX3ZpcnFiYXNlOwo+ICsJbnRiLT5kYiB8PSAxIDw8IChpbmRleCAtIDEpOwo+ICsJbnRiX2Ri X2V2ZW50KCZudGItPm50YiwgaW5kZXgpOwo+ICsKPiArCXJldHVybiBJUlFfSEFORExFRDsKPiAr fQo+ICsKPiArI2lmZGVmIENPTkZJR19HRU5FUklDX01TSV9JUlFfRE9NQUlOCj4gK3N0YXRpYyB2 b2lkIGVwZl9udGJfZXBjX21zaV9pbml0KHN0cnVjdCBlcGZfbnRiICpudGIpCj4gK3sKPiArCXN0 cnVjdCBkZXZpY2UgKmRldiA9ICZudGItPmVwZi0+ZGV2Owo+ICsJc3RydWN0IGlycV9kb21haW4g KmRvbWFpbjsKPiArCWludCB2aXJxOwo+ICsJaW50IHJldDsKPiArCWludCBpOwo+ICsKPiArCWRv bWFpbiA9IGRldl9nZXRfbXNpX2RvbWFpbihudGItPmVwZi0+ZXBjLT5kZXYucGFyZW50KTsKPiAr CWlmICghZG9tYWluKQo+ICsJCXJldHVybjsKPiArCj4gKwlkZXZfc2V0X21zaV9kb21haW4oZGV2 LCBkb21haW4pOwo+ICsKPiArCWlmIChwbGF0Zm9ybV9tc2lfZG9tYWluX2FsbG9jX2lycXMoJm50 Yi0+ZXBmLT5kZXYsCj4gKwkJbnRiLT5kYl9jb3VudCwKPiArCQllcGZfbnRiX3dyaXRlX21zaV9t c2cpKSB7Cj4gKwkJZGV2X2VycihkZXYsICJDYW4ndCBhbGxvY2F0ZSBNU0ksIGZhbGxpbmcgYmFj ayB0byBwb2xsaW5nIG1vZGVcbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCWRldl9pbmZvKGRl diwgIlVzaW5nIE1TSSBhcyBkb29yYmVsbFxuIik7CgpJcyBpdCByZWFsbHkgdXNlZnVsIHRvIHBy aW50IHRoaXMgaW4gdGhlIGtlcm5lbCBsb2cgPyBkZXZfZGJnIHNlZW1zIG1vcmUKc3VpdGFibGUg dG8gbWUuCgo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBudGItPmRiX2NvdW50OyBpKyspIHsKPiAr CQl2aXJxID0gbXNpX2dldF92aXJxKGRldiwgaSk7Cj4gKwkJcmV0ID0gZGV2bV9yZXF1ZXN0X2ly cShkZXYsIHZpcnEsCj4gKwkJCSAgICAgICBlcGZfbnRiX2ludGVycnVwdF9oYW5kbGVyLCAwLAo+ ICsJCQkgICAgICAgInBjaV9lcGZfdm50YiIsIG50Yik7Cj4gKwo+ICsJCWlmIChyZXQpIHsKPiAr CQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBkb29yYmVsbCBJUlEhIEZhbGxpbmcg YmFjayB0byBwb2xsaW5nIG1vZGUiKTsKPiArCQkJbnRiLT5lcGZfZGJfcGh5cyA9IDA7Cj4gKwkJ CWJyZWFrOwoKRG9lc24ndCB0aGlzIHJlcXVpcmUgYSBwbGF0Zm9ybV9tc2lfZG9tYWluX2ZyZWVf aXJxcygpID8KClRoYW5rcywKTG9yZW56bwoKPiArCQl9Cj4gKwo+ICsJCWlmICghaSkKPiArCQkJ bnRiLT5tc2lfdmlycWJhc2UgPSB2aXJxOyAvKiBtc2kgc3RhcnQgdmlycSBudW1iZXIgKi8KPiAr CX0KPiArfQo+ICsjZWxzZQo+ICtzdGF0aWMgdm9pZCBlcGZfbnRiX2VwY19tc2lfaW5pdChzdHJ1 Y3QgZXBmX250YiAqbnRiKQo+ICt7Cj4gK30KPiArI2VuZGlmIC8qIENPTkZJR19HRU5FUklDX01T SV9JUlFfRE9NQUlOICovCj4gIC8qKgo+ICAgKiBlcGZfbnRiX2VwY19pbml0KCkgLSBJbml0aWFs aXplIE5UQiBpbnRlcmZhY2UKPiAgICogQG50YjogTlRCIGRldmljZSB0aGF0IGZhY2lsaXRhdGVz IGNvbW11bmljYXRpb24gYmV0d2VlbiBIT1NUIGFuZCBWSE9TVAo+IEBAIC0xMzIwLDE0ICsxNDI1 LDE1IEBAIHN0YXRpYyBpbnQgZXBmX250Yl9iaW5kKHN0cnVjdCBwY2lfZXBmICplcGYpCj4gIAkJ Z290byBlcnJfYmFyX2FsbG9jOwo+ICAJfQo+ICAKPiArCWVwZl9zZXRfZHJ2ZGF0YShlcGYsIG50 Yik7Cj4gKwllcGZfbnRiX2VwY19tc2lfaW5pdChudGIpOwo+ICsKPiAgCXJldCA9IGVwZl9udGJf ZXBjX2luaXQobnRiKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBpbml0aWFsaXplIEVQQ1xuIik7Cj4gIAkJZ290byBlcnJfYmFyX2FsbG9jOwo+ICAJfQo+ICAK PiAtCWVwZl9zZXRfZHJ2ZGF0YShlcGYsIG50Yik7Cj4gLQo+ICAJcGNpX3NwYWNlWzBdID0gKG50 Yi0+dm50Yl9waWQgPDwgMTYpIHwgbnRiLT52bnRiX3ZpZDsKPiAgCXBjaV92bnRiX3RhYmxlWzBd LnZlbmRvciA9IG50Yi0+dm50Yl92aWQ7Cj4gIAlwY2lfdm50Yl90YWJsZVswXS5kZXZpY2UgPSBu dGItPnZudGJfcGlkOwo+IC0tIAo+IDIuMzUuMQo+IAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=