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 4DBD0C7EE2E for ; Mon, 12 Jun 2023 17:49:49 +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:MIME-Version:References:In-Reply-To: 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=ZZ08wy9xoHt6W5KRsUnTPxcue4HBltKiSBmdYnaZtHc=; b=tWb04vckSKBfT8 ABxVwzeNM2j6KoYa30In7u08Gf9xp+GUaqgnwgPoMELDTYFGpd0iIIaHDRNCpeWQWyizp18+wTrgt S0DIRyPMrL9+9b4qus3VYBZagl3+v+VhlKu4oCjAEwQHqYV+GKeA82DxlXnaDxiGzBPh+sds9JRVN XzbQF1gJ4TUFbQhjAvkObiugr6631PjjhRt0SD8BRl6BtzTz92JjDiAzP/lxCufcmnQ44ZgR7Uud3 9OtWRHGxXmVOQzHacdp7+g0aIKDox+XiPTaJ1QkMEeioYFY0MLWxvSter7hwT4zkTh2IqYS5jQco4 eajRdW9hb7kpG6a9Nm/A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8lfM-004pmK-2K; Mon, 12 Jun 2023 17:49:20 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8lfI-004pkq-2C; Mon, 12 Jun 2023 17:49:19 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686592152; 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=4owMCVVu9ULGsD4qC/BEBM3U6FwTwiV0CgschpkiHuI=; b=gQcpSvLvvKcgaewcHclk82yAMx/LoJXOlN2H6we77gD4l5JmvNY0qnh8HcEA6a7esW6XBL yjAoaQlUTP7Covl2iLEcp1AcQLTewDzsxfDXNFElvGuFZRwC7UoAZbZL2Y9PxaLPzMt6L7 cUbXXTxNb4Hx0mFb17HDKOK99DU5YvDJEvV95rQy4H1Rv4dxIvmCRYDY5HvfrBDG5gOYF8 /ZUvqV3LVhRVOKV/kYQ2VtiFzaAPZZK7M2JDhhP65xoOZW2Mr3voDSysahfWjdAON6m5hV rh9937R6zadAJvf1oNAQFt3eqtQ1cTVimR/uTfHU7PA3wb2gapEofw+yfSoHrQ== X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 4C04460006; Mon, 12 Jun 2023 17:49:10 +0000 (UTC) Date: Mon, 12 Jun 2023 19:49:08 +0200 From: Miquel Raynal To: William Zhang Cc: Broadcom Kernel List , Linux MTD List , f.fainelli@gmail.com, rafal@milecki.pl, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, computersforpeace@gmail.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, linux-kernel@vger.kernel.org, Vignesh Raghavendra , Richard Weinberger , Kamal Dasu , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 10/12] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Message-ID: <20230612194908.5465bc56@xps-13> In-Reply-To: <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102232.17c4a27b@xps-13> <7b393f47-4053-a8c7-f32e-3881d8130d80@broadcom.com> <20230608081821.1de5a50b@xps-13> <4ab08e3e-3be4-8b8b-6eb8-03a62337f46f@broadcom.com> <20230609103544.0f00f799@xps-13> <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_104916_991306_97304772 X-CRM114-Status: GOOD ( 52.88 ) 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 SGkgV2lsbGlhbSwKCndpbGxpYW0uemhhbmdAYnJvYWRjb20uY29tIHdyb3RlIG9uIEZyaSwgOSBK dW4gMjAyMyAxMjoxNjoyNyAtMDcwMDoKCj4gSGkgTWlxdWVsLAo+IAo+IE9uIDA2LzA5LzIwMjMg MDE6MzUgQU0sIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBXaWxsaWFtLAo+ID4gCj4gPiB3 aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUaHUsIDggSnVuIDIwMjMgMTI6MTA6 MDYgLTA3MDA6Cj4gPiAgIAo+ID4+IE9uIDA2LzA3LzIwMjMgMTE6MTggUE0sIE1pcXVlbCBSYXlu YWwgd3JvdGU6ICAKPiA+Pj4gSGkgV2lsbGlhbSwKPiA+Pj4KPiA+Pj4gd2lsbGlhbS56aGFuZ0Bi cm9hZGNvbS5jb20gd3JvdGUgb24gV2VkLCA3IEp1biAyMDIzIDEzOjI0OjIzIC0wNzAwOiAgCj4g Pj4+ICAgID4+Pj4gSGkgTWlxdWVsLCAgCj4gPj4+Pgo+ID4+Pj4gT24gMDYvMDcvMjAyMyAwMToy MiBBTSwgTWlxdWVsIFJheW5hbCB3cm90ZTogIAo+ID4+Pj4+IEhpIFdpbGxpYW0sCj4gPj4+Pj4K PiA+Pj4+PiB3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUdWUsICA2IEp1biAy MDIzIDE2OjEyOjUwIC0wNzAwOiAgCj4gPj4+Pj4gICAgID4+Pj4gVGhlIEJDTUJDQSBicm9hZGJh bmQgU29DIGludGVncmF0ZXMgdGhlIE5BTkQgY29udHJvbGxlciBkaWZmZXJlbnRseSB0aGFuICAK PiA+Pj4+Pj4gU1RCLCBpUHJvYyBhbmQgb3RoZXIgU29Dcy4gIEl0IGhhcyBkaWZmZXJlbnQgZW5k aWFubmVzcyBmb3IgTkFORCBjYWNoZQo+ID4+Pj4+PiBkYXRhIGFuZCBPTkZJIHBhcmFtZXRlciBk YXRhLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBBZGQgYSBTb0MgcmVhZCBkYXRhIGJ1cyBzaGltIGZvciBC Q01CQ0EgdG8gbWVldCB0aGUgc3BlY2lmaWMgU29DIG5lZWQKPiA+Pj4+Pj4gYW5kIHBlcmZvcm1h bmNlIGltcHJvdmVtZW50IHVzaW5nIHRoZSBvcHRpbWl6ZWQgbWVtY3B5IGZ1bmN0aW9uIG9uIE5B TkQKPiA+Pj4+Pj4gY2FjaGUgbWVtb3J5Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBTaWduZWQtb2ZmLWJ5 OiBXaWxsaWFtIFpoYW5nIDx3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbT4KPiA+Pj4+Pj4gLS0t Cj4gPj4+Pj4+Cj4gPj4+Pj4+ICAgICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9iY21i Y2FfbmFuZC5jIHwgMzYgKysrKysrKysrKysrKysrKysKPiA+Pj4+Pj4gICAgIGRyaXZlcnMvbXRk L25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMgICAgfCA0NCArKysrKysrKysrKysrKy0tLS0t LS0KPiA+Pj4+Pj4gICAgIGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgg ICAgfCAgMiArCj4gPj4+Pj4+ICAgICAzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t dGQvbmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3 L2JyY21uYW5kL2JjbWJjYV9uYW5kLmMKPiA+Pj4+Pj4gaW5kZXggN2U0OGI2YTBiZmEyLi44OTkx MDNhNjJjOTggMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21u YW5kL2JjbWJjYV9uYW5kLmMKPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJj bW5hbmQvYmNtYmNhX25hbmQuYwo+ID4+Pj4+PiBAQCAtMjYsNiArMjYsMTggQEAgZW51bSB7Cj4g Pj4+Pj4+ICAgICAJQkNNQkNBX0NUTFJEWQkJPSBCSVQoNCksCj4gPj4+Pj4+ICAgICB9OyAgCj4g Pj4+Pj4+ICAgICA+PiArI2lmIGRlZmluZWQoQ09ORklHX0FSTTY0KSAgCj4gPj4+Pj4+ICsjZGVm aW5lIEFMSUdOX1JFUQkJOAo+ID4+Pj4+PiArI2Vsc2UKPiA+Pj4+Pj4gKyNkZWZpbmUgQUxJR05f UkVRCQk0Cj4gPj4+Pj4+ICsjZW5kaWYKPiA+Pj4+Pj4gKwo+ID4+Pj4+PiArc3RhdGljIGlubGlu ZSBib29sIGJjbWJjYV9uYW5kX2lzX2J1Zl9hbGlnbmVkKHZvaWQgKmZsYXNoX2NhY2hlLCAgdm9p ZCAqYnVmZmVyKQo+ID4+Pj4+PiArewo+ID4+Pj4+PiArCXJldHVybiBJU19BTElHTkVEKCh1aW50 cHRyX3QpYnVmZmVyLCBBTElHTl9SRVEpICYmCj4gPj4+Pj4+ICsJCQkJSVNfQUxJR05FRCgodWlu dHB0cl90KWZsYXNoX2NhY2hlLCBBTElHTl9SRVEpOwo+ID4+Pj4+PiArfQo+ID4+Pj4+PiArCj4g Pj4+Pj4+ICAgICBzdGF0aWMgYm9vbCBiY21iY2FfbmFuZF9pbnRjX2FjayhzdHJ1Y3QgYnJjbW5h bmRfc29jICpzb2MpCj4gPj4+Pj4+ICAgICB7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJjbWJjYV9u YW5kX3NvYyAqcHJpdiA9Cj4gPj4+Pj4+IEBAIC01Niw2ICs2OCwyOSBAQCBzdGF0aWMgdm9pZCBi Y21iY2FfbmFuZF9pbnRjX3NldChzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIGJvb2wgZW4pCj4g Pj4+Pj4+ICAgICAJYnJjbW5hbmRfd3JpdGVsKHZhbCwgbW1pbyk7Cj4gPj4+Pj4+ICAgICB9ICAK PiA+Pj4+Pj4gICAgID4+ICtzdGF0aWMgdm9pZCBiY21iY2FfcmVhZF9kYXRhX2J1cyhzdHJ1Y3Qg YnJjbW5hbmRfc29jICpzb2MsICAKPiA+Pj4+Pj4gKwkJCQkgdm9pZCBfX2lvbWVtICpmbGFzaF9j YWNoZSwgIHUzMiAqYnVmZmVyLAo+ID4+Pj4+PiArCQkJCSBpbnQgZmNfd29yZHMsIGJvb2wgaXNf cGFyYW0pCj4gPj4+Pj4+ICt7Cj4gPj4+Pj4+ICsJaW50IGk7Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4g KwlpZiAoIWlzX3BhcmFtKSB7Cj4gPj4+Pj4+ICsJCS8qCj4gPj4+Pj4+ICsJCSAqIG1lbWNweSBj YW4gZG8gdW5hbGlnbmVkIGFsaWduZWQgYWNjZXNzIGRlcGVuZGluZyBvbiBzb3VyY2UKPiA+Pj4+ Pj4gKwkJICogYW5kIGRlc3QgYWRkcmVzcywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggbmFu ZCBjYWNoZS4gRmFsbGJhY2sKPiA+Pj4+Pj4gKwkJICogdG8gdGhlIG1lbWNweSBmb3IgaW8gdmVy c2lvbgo+ID4+Pj4+PiArCQkgKi8KPiA+Pj4+Pj4gKwkJaWYgKGJjbWJjYV9uYW5kX2lzX2J1Zl9h bGlnbmVkKGZsYXNoX2NhY2hlLCBidWZmZXIpKQo+ID4+Pj4+PiArCQkJbWVtY3B5KCh2b2lkICop YnVmZmVyLCAodm9pZCAqKWZsYXNoX2NhY2hlLCBmY193b3JkcyAqIDQpOwo+ID4+Pj4+PiArCQll bHNlCj4gPj4+Pj4+ICsJCQltZW1jcHlfZnJvbWlvKCh2b2lkICopYnVmZmVyLCAodm9pZCAqKWZs YXNoX2NhY2hlLCBmY193b3JkcyAqIDQpOwo+ID4+Pj4+PiArCX0gZWxzZSB7Cj4gPj4+Pj4+ICsJ CS8qIEZsYXNoIGNhY2hlIGhhcyBzYW1lIGVuZGlhbiBhcyB0aGUgaG9zdCBmb3IgcGFyYW1ldGVy IHBhZ2VzICovCj4gPj4+Pj4+ICsJCWZvciAoaSA9IDA7IGkgPCBmY193b3JkczsgaSsrLCBidWZm ZXIrKykKPiA+Pj4+Pj4gKwkJCSpidWZmZXIgPSBfX3Jhd19yZWFkbChmbGFzaF9jYWNoZSArIGkg KiA0KTsKPiA+Pj4+Pj4gKwl9Cj4gPj4+Pj4+ICt9Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gICAgIHN0 YXRpYyBpbnQgYmNtYmNhX25hbmRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK PiA+Pj4+Pj4gICAgIHsKPiA+Pj4+Pj4gICAgIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ ZGV2Owo+ID4+Pj4+PiBAQCAtNzUsNiArMTEwLDcgQEAgc3RhdGljIGludCBiY21iY2FfbmFuZF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KSAgCj4gPj4+Pj4+ICAgICA+PiAgIAlz b2MtPmN0bHJkeV9hY2sgPSBiY21iY2FfbmFuZF9pbnRjX2FjazsgIAo+ID4+Pj4+PiAgICAgCXNv Yy0+Y3RscmR5X3NldF9lbmFibGVkID0gYmNtYmNhX25hbmRfaW50Y19zZXQ7Cj4gPj4+Pj4+ICsJ c29jLT5yZWFkX2RhdGFfYnVzID0gYmNtYmNhX3JlYWRfZGF0YV9idXM7ICAKPiA+Pj4+Pj4gICAg ID4+ICAgCXJldHVybiBicmNtbmFuZF9wcm9iZShwZGV2LCBzb2MpOyAgCj4gPj4+Pj4+ICAgICB9 Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNt bmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+ PiBpbmRleCBkOTIwZTg4YzdmNWIuLjY1NmJlNGQ3MzAxNiAxMDA2NDQKPiA+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+PiArKysgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jCj4gPj4+Pj4+IEBAIC04MTQs NiArODE0LDMwIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGVkdV9yZWFkbChzdHJ1Y3QgYnJjbW5hbmRf Y29udHJvbGxlciAqY3RybCwKPiA+Pj4+Pj4gICAgIAlyZXR1cm4gYnJjbW5hbmRfcmVhZGwoY3Ry bC0+ZWR1X2Jhc2UgKyBvZmZzKTsKPiA+Pj4+Pj4gICAgIH0gIAo+ID4+Pj4+PiAgICAgPj4gK3N0 YXRpYyBpbmxpbmUgdm9pZCBicmNtbmFuZF9yZWFkX2RhdGFfYnVzKHN0cnVjdCBicmNtbmFuZF9j b250cm9sbGVyICpjdHJsLCAgCj4gPj4+Pj4+ICsJCQkJCSAgIHZvaWQgX19pb21lbSAqZmxhc2hf Y2FjaGUsIHUzMiAqYnVmZmVyLAo+ID4+Pj4+PiArCQkJCQkgICBpbnQgZmNfd29yZHMsIGJvb2wg aXNfcGFyYW0pCj4gPj4+Pj4+ICt7Cj4gPj4+Pj4+ICsJc3RydWN0IGJyY21uYW5kX3NvYyAqc29j ID0gY3RybC0+c29jOwo+ID4+Pj4+PiArCWludCBpOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJaWYg KHNvYy0+cmVhZF9kYXRhX2J1cykgewo+ID4+Pj4+PiArCQlzb2MtPnJlYWRfZGF0YV9idXMoc29j LCBmbGFzaF9jYWNoZSwgYnVmZmVyLCBmY193b3JkcywgaXNfcGFyYW0pOwo+ID4+Pj4+PiArCX0g ZWxzZSB7Cj4gPj4+Pj4+ICsJCWlmICghaXNfcGFyYW0pIHsKPiA+Pj4+Pj4gKwkJCWZvciAoaSA9 IDA7IGkgPCBmY193b3JkczsgaSsrLCBidWZmZXIrKykKPiA+Pj4+Pj4gKwkJCQkqYnVmZmVyID0g YnJjbW5hbmRfcmVhZF9mYyhjdHJsLCBpKTsKPiA+Pj4+Pj4gKwkJfSBlbHNlIHsKPiA+Pj4+Pj4g KwkJCWZvciAoaSA9IDA7IGkgPCBmY193b3JkczsgaSsrKQo+ID4+Pj4+PiArCQkJCS8qCj4gPj4+ Pj4+ICsJCQkJICogRmxhc2ggY2FjaGUgaXMgYmlnIGVuZGlhbiBmb3IgcGFyYW1ldGVyIHBhZ2Vz LCBhdAo+ID4+Pj4+PiArCQkJCSAqIGxlYXN0IG9uIFNUQiBTb0NzCj4gPj4+Pj4+ICsJCQkJICov Cj4gPj4+Pj4+ICsJCQkJYnVmZmVyW2ldID0gYmUzMl90b19jcHUoYnJjbW5hbmRfcmVhZF9mYyhj dHJsLCBpKSk7Cj4gPj4+Pj4+ICsJCX0KPiA+Pj4+Pj4gKwl9ICAKPiA+Pj4+Pgo+ID4+Pj4+IFBl cmhhcHMgd2UgY291bGQgaGF2ZSBhIHNpbmdsZSBmdW5jdGlvbiB0aGF0IGlzIHN0YXRpY2FsbHkg YXNzaWduZWQgYXQKPiA+Pj4+PiBwcm9iZSB0aW1lIGluc3RlYWQgb2YgYSBmaXJzdCBoZWxwZXIg d2l0aCB0d28gY29uZGl0aW9ucyB3aGljaCBjYWxscyBpbgo+ID4+Pj4+IG9uZSBjYXNlIGFub3Ro ZXIgaG9vay4uLiBUaGlzIGNhbiBiZSBzaW1wbGlmaWVkIEkgZ3Vlc3MuICAKPiA+Pj4+PiAgICAg Pj4gV2VsbCB0aGlzIHdpbGwgbmVlZCB0byBiZSBkb25lIGF0IHRoZSBTb0Mgc3BlY2lmaWMgaW1w bGVtZW50YXRpb24gbGV2ZWwgKGJjbTx4eHg+X25hbmQuYykgYW5kIGVhY2ggU29DIHdpbGwgbmVl ZCB0byBoYXZlIGVpdGhlciBnZW5lcmFsIGRhdGEgYnVzIHJlYWQgZnVuYyB3aXRoIGlzX3BhcmFt IG9wdGlvbiBvciBkYXRhX2J1c19yZWFkX3BhZ2UsIGRhdGFfYnVzX3JlYWRfcGFyYW0uICAKPiA+ Pj4KPiA+Pj4gWW91IHRvbGQgbWUgaW4gY2FzZSB3ZSB3b3VsZCB1c2UgZXhlY19vcCB3ZSBjb3Vs ZCBhdm9pZCB0aGUgcGFyYW0KPiA+Pj4gY2FjaGUuIElmIHRoYXQncyB0cnVlIHRoZW4gdGhlIHdo b2xlIHN1cHBvcnQgY2FuIGJlIHNpbXBsaWZpZWQuICAKPiA+Pj4gICAgPj4gQ29ycmVjdCB3ZSBt YXkgcG9zc2libHkgdW5pZmllZCB0aGUgcGFyYW1ldGVyIGRhdGEgcmVhZCBidXQgZXhlY19vcCBp cyBsb25nIHNob3QgYW5kIHdlIGFyZSBub3QgZnVsbHkgcmVhZHkgZm9yIHRoYXQgeWV0LiBJdCBh bHNvIGRlcGVuZHMgb24gaWYgdGhlIGxvdyBsZXZlbCBkYXRhIHJlZ2lzdGVyIGhhcyBlbmRpYW5l c3MgZGlmZmVyZW5jZSBmb3IgdGhlIHBhcmFtZXRlciBkYXRhIGJldHdlZW4gZGlmZmVyZW5jZSBT b0NzLiAgCj4gPj4KPiA+PiBTbyBJIHdvdWxkIGxpa2UgdG8gcHVzaCB0aGUgY3VycmVudCBpbXBs ZW1lbnRhdGlvbiBhbmQgd2UgY2FuIGV4cGxvcmUgdGhlIGV4ZWNfb3Agb3B0aW9uIGxhdGUgd2hp Y2ggd2lsbCBiZSBhIG11Y2ggYmlnIGFuZCBjb21wbGV0ZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRp b24uICAKPiA+IAo+ID4gSSBhbSBzb3JyeSBidXQgdGhpcyBzZXJpZXMgaXMgdG90YWxseSBiYWNr d2FyZHMsIHlvdSdyZSB0cnlpbmcgdG8gZ3Vlc3MKPiA+IHdoYXQgY29tZXMgbmV4dCB3aXRoIHRo ZSAnaXNfcGFyYW0nIHRoaW5nLCBpdCdzIGV4YWN0bHkgd2hhdCB3ZSBhcmUKPiA+IGZpZ2h0aW5n IGFnYWluc3Qgc2luY2UgMjAxNy4gVGhlcmUgYXJlIHBsZW50eSBvZiAtPmV4ZWNfb3AoKQo+ID4g Y29udmVyc2lvbnMgb3V0IHRoZXJlLCBJIGRvbid0IGJlbGlldmUgdGhpcyBvbmUgd2lsbCBiZSBo YXJkZXIuIFlvdQo+ID4gbmVlZCB0byBjb252ZXJ0IHRoZSBkcml2ZXIgdG8gdGhpcyBuZXcgQVBJ IGFuZCBnZXQgcmlkIG9mIHRoaXMgd2hvbGUKPiA+IGVuZGlhbm5lc3Mgbm9uLXNlbnNlIHRvIHNp bXBsaWZ5IGEgbG90IHRoZSBkcml2ZXIuCj4gPiAgIAo+IEkgYW0gbm90IGd1ZXNzaW5nIGFueXRo aW5nIGJ1dCBqdXN0IGZhY3RvciBvdXQgdGhlIGV4aXN0aW5nIGNvbW1vbiBuYW5kIGNhY2hlIHJl YWQgbG9naWMgaW50byB0aGUgc2luZ2xlIGRlZmF1bHQgZnVuY3Rpb24ob3Igb25lIGZvciBwYWdl IHJlYWQgYW5kIGFub3RoZXIgZm9yIHBhcmFtZXRlciByZWFkIGFzIEkgbWVudGlvbmVkIGluIGFu b3RoZXIgdGhyZWFkKSBhbmQgYWxsb3cgU29DIHRvIG92ZXJyaWRlcyB0aGUgaW1wbGVtZW50YXRp b24gd2hlbiBuZWVkZWQuCgpObywgeW91IGFyZSB0cnlpbmcgdG8gZ3Vlc3Mgd2hhdCB0eXBlIG9m IHJlYWQgdGhlIGNvcmUgaXMgcGVyZm9ybWluZywKZWl0aGVyIGEgcmVndWxhciBkYXRhIHBhZ2Ug cmVhZCBvciBhIHBhcmFtZXRlciBwYWdlIHJlYWQuCgo+IEkgYWdyZWUgLT5leGVjX29wIGNhbiBw b3NzaWJseSBnZXQgcmlkIG9mIHRoZSBwYXJhbWV0ZXIgcGFnZSByZWFkIGZ1bmN0aW9uIGFuZCBp cyB0aGUgd2F5IHRvIGdvLiBCdXQgaXQgd29uJ3QgaGVscCBvbiB0aGUgcGFnZSByZWFkIGZvciBl bmRpYW5lc3MuCgpZb3UgdG9sZCBtZSB0aGVyZSBpcyBubyBlbmRpYW5lc3MgaXNzdWUgd2l0aCB0 aGUgZGF0YSBwYWdlcywgc28gd2h5IGl0Cndvbid0IGhlbHAgb24gdGhlIHBhZ2UgcmVhZD8KCj4g SXQncyBub3QgdGhhdCBJIGFtIGFnYWluc3QgZXhlY19vcCBidXQgSSB3YW50IHRvIHRha2Ugb25l IHN0ZXAgYSB0aW1lCj4gYW5kIEknZCBsaWtlIHRvIGdldCB0aGVzZSBmaXhlcwoKSSBkb24ndCBz ZWUgYW55IGZpeCBoZXJlPyBMZXQgbWUga25vdyBpZiBJIGFtIG1pc3Npbmcgc29tZXRoaW5nIGJ1 dApyaWdodCBub3cgSSBzZWUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgY29udHJvbGxlciBiZWluZyBz dXBwb3J0ZWQgd2l0aAppdHMgb3duIGNvbnN0cmFpbnRzLiBJZiB5b3UgYXJlIGZpeGluZyBleGlz dGluZyBjb2RlIGZvciBhbHJlYWR5CnN1cHBvcnRlZCBwbGF0Zm9ybSwgdGhlbiBtYWtlIGl0IGNs ZWFyIGFuZCB3ZSBjYW4gZGlzY3VzcyB0aGlzLiBCdXQgaWYKeW91IGp1c3Qgd2FudCB0byBzdXBw b3J0IHRoZSBiY21iY2EgZmxhdm9yLCB0aGVuIHRoZXJlIGlzIG5vIHJpc2sKbWl0aWdhdGlvbiBp bnZvbHZlZCBoZXJlLCBhbmQgYSBjb252ZXJzaW9uIGlzIHRoZSByaWdodCBzdGVwIDopCgo+IGFu ZCBzdXBwb3J0IGZvciBiY21iY2Egc29jIGZpcnN0IGFuZAo+IHRoZW4gd29yayBvbiB0aGUgZXhl Y19vcCBBUEkgdG8gbWluaW1pemUgdGhlIGNoYW5nZSBhbmQgcmVkdWNlIHRoZQo+IHJpc2suCj4g Cj4gPj4gIAo+ID4+Pj4gICAgTm90IHN1cmUgaG93IG11Y2ggdGhpcyBjYW4gYmUgc2ltcGxpZmll ZC4uLiBPciB3ZSBoYXZlIGRlZmF1bHQKPiA+Pj4+IGltcGxlbWVudGF0aW9uIGluIGJyY21uYW5k LmMgYnV0IHRoZW4gdGhlcmUgaXMgb25lIGNvbmRpdGlvbiBjaGVjawo+ID4+Pj4gdG9vLiBQYWdl IHJlYWQgaXMgZG9uZSBhdCA1MTIgYnl0ZXMgYnVyc3QuIE9uZSBvciB0d28gY29uZGl0aW9ucwo+ ID4+Pj4gY2hlY2sgb3V0c2lkZSBvZiB0aGUgcGVyIDUxMiBieXRlcyByZWFkIGxvb3AgZG9lcyBu b3Qgc291bmRzIHRvbyBiYWQKPiA+Pj4+IGlmIHBlcmZvcm1hbmNlIGlzIGNvbmNlcm4uICAKPiA+ Pj4KPiA+Pj4gSXQgaXMgdW5yZWFkYWJsZS4gVGhhdCBpcyBteSBtYWluIGNvbmNlcm4uICAKPiA+ Pj4gICAgPj4+PiAgID4+Pj4+PiArfSAgCj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gICAgIHN0YXRpYyB2 b2lkIGJyY21uYW5kX2NsZWFyX2VjY19hZGRyKHN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpj dHJsKQo+ID4+Pj4+PiAgICAgeyAgCj4gPj4+Pj4+ICAgICA+PiBAQCAtMTgxMSwyMCArMTgzNSwx MSBAQCBzdGF0aWMgdm9pZCBicmNtbmFuZF9jbWRmdW5jKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAs IHVuc2lnbmVkIGNvbW1hbmQsICAKPiA+Pj4+Pj4gICAgIAkJCW5hdGl2ZV9jbWQgPT0gQ01EX1BB UkFNRVRFUl9DSEFOR0VfQ09MKSB7Cj4gPj4+Pj4+ICAgICAJCS8qIENvcHkgZmxhc2ggY2FjaGUg d29yZC13aXNlICovCj4gPj4+Pj4+ICAgICAJCXUzMiAqZmxhc2hfY2FjaGUgPSAodTMyICopY3Ry bC0+Zmxhc2hfY2FjaGU7Cj4gPj4+Pj4+IC0JCWludCBpOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAkJ YnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKPiA+Pj4+Pj4g ICAgID4+IC0JCS8qICAKPiA+Pj4+Pj4gLQkJICogTXVzdCBjYWNoZSB0aGUgRkxBU0hfQ0FDSEUg bm93LCBzaW5jZSBjaGFuZ2VzIGluCj4gPj4+Pj4+IC0JCSAqIFNFQ1RPUl9TSVpFXzFLIG1heSBp bnZhbGlkYXRlIGl0Cj4gPj4+Pj4+IC0JCSAqLwo+ID4+Pj4+PiAtCQlmb3IgKGkgPSAwOyBpIDwg RkNfV09SRFM7IGkrKykKPiA+Pj4+Pj4gLQkJCS8qCj4gPj4+Pj4+IC0JCQkgKiBGbGFzaCBjYWNo ZSBpcyBiaWcgZW5kaWFuIGZvciBwYXJhbWV0ZXIgcGFnZXMsIGF0Cj4gPj4+Pj4+IC0JCQkgKiBs ZWFzdCBvbiBTVEIgU29Dcwo+ID4+Pj4+PiAtCQkJICovCj4gPj4+Pj4+IC0JCQlmbGFzaF9jYWNo ZVtpXSA9IGJlMzJfdG9fY3B1KGJyY21uYW5kX3JlYWRfZmMoY3RybCwgaSkpOwo+ID4+Pj4+PiAr CQlicmNtbmFuZF9yZWFkX2RhdGFfYnVzKGN0cmwsIGN0cmwtPm5hbmRfZmMsIGZsYXNoX2NhY2hl LAo+ID4+Pj4+PiArCQkJCSAgIEZDX1dPUkRTLCB0cnVlKTsgIAo+ID4+Pj4+PiAgICAgPj4gICAJ CWJyY21uYW5kX3NvY19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKPiA+Pj4+ Pj4gICAgID4+IEBAIC0yMTM3LDcgKzIxNTIsNyBAQCBzdGF0aWMgaW50IGJyY21uYW5kX3JlYWRf YnlfcGlvKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgCj4g Pj4+Pj4+ICAgICB7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJyY21uYW5kX2hvc3QgKmhvc3QgPSBu YW5kX2dldF9jb250cm9sbGVyX2RhdGEoY2hpcCk7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJyY21u YW5kX2NvbnRyb2xsZXIgKmN0cmwgPSBob3N0LT5jdHJsOwo+ID4+Pj4+PiAtCWludCBpLCBqLCBy ZXQgPSAwOwo+ID4+Pj4+PiArCWludCBpLCByZXQgPSAwOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAli cmNtbmFuZF9jbGVhcl9lY2NfYWRkcihjdHJsKTsKPiA+Pj4+Pj4gICAgID4+IEBAIC0yMTUwLDgg KzIxNjUsOSBAQCBzdGF0aWMgaW50IGJyY21uYW5kX3JlYWRfYnlfcGlvKHN0cnVjdCBtdGRfaW5m byAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgCj4gPj4+Pj4+ICAgICAJCWlmIChsaWtl bHkoYnVmKSkgewo+ID4+Pj4+PiAgICAgCQkJYnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUo Y3RybC0+c29jLCBmYWxzZSk7ICAKPiA+Pj4+Pj4gICAgID4+IC0JCQlmb3IgKGogPSAwOyBqIDwg RkNfV09SRFM7IGorKywgYnVmKyspICAKPiA+Pj4+Pj4gLQkJCQkqYnVmID0gYnJjbW5hbmRfcmVh ZF9mYyhjdHJsLCBqKTsKPiA+Pj4+Pj4gKwkJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwg Y3RybC0+bmFuZF9mYywgYnVmLAo+ID4+Pj4+PiArCQkJCQlGQ19XT1JEUywgZmFsc2UpOwo+ID4+ Pj4+PiArCQkJYnVmICs9IEZDX1dPUkRTOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAkJCWJyY21uYW5k X3NvY19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCBmYWxzZSk7ICAKPiA+Pj4+Pj4gICAg IAkJfQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQv YnJjbW5hbmQuaCBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+ Pj4+Pj4gaW5kZXggZjFmOTNkODVmNTBkLi44ODgxOWJjMzk1ZjggMTAwNjQ0Cj4gPj4+Pj4+IC0t LSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+Pj4+Pj4gKysr IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaAo+ID4+Pj4+PiBAQCAt MjQsNiArMjQsOCBAQCBzdHJ1Y3QgYnJjbW5hbmRfc29jIHsKPiA+Pj4+Pj4gICAgIAl2b2lkICgq Y3RscmR5X3NldF9lbmFibGVkKShzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIGJvb2wgZW4pOwo+ ID4+Pj4+PiAgICAgCXZvaWQgKCpwcmVwYXJlX2RhdGFfYnVzKShzdHJ1Y3QgYnJjbW5hbmRfc29j ICpzb2MsIGJvb2wgcHJlcGFyZSwKPiA+Pj4+Pj4gICAgIAkJCQkgYm9vbCBpc19wYXJhbSk7Cj4g Pj4+Pj4+ICsJdm9pZCAoKnJlYWRfZGF0YV9idXMpKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywg dm9pZCBfX2lvbWVtICpmbGFzaF9jYWNoZSwKPiA+Pj4+Pj4gKwkJCQkgdTMyICpidWZmZXIsIGlu dCBmY193b3JkcywgYm9vbCBpc19wYXJhbSk7Cj4gPj4+Pj4+ICAgICAJY29uc3Qgc3RydWN0IGJy Y21uYW5kX2lvX29wcyAqb3BzOwo+ID4+Pj4+PiAgICAgfTsgIAo+ID4+Pj4+PiAgICAgPiA+ICAK PiA+Pj4+PiBUaGFua3MsCj4gPj4+Pj4gTWlxdcOobCAgCj4gPj4+Pj4gICAgID4gPiAgCj4gPj4+ IFRoYW5rcywKPiA+Pj4gTWlxdcOobCAgCj4gPj4+ICAgID4gPiAgIAo+ID4gVGhhbmtzLAo+ID4g TWlxdcOobAo+ID4gICAKCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK