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 863B2C3DA42 for ; Wed, 17 Jul 2024 08:36: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=zf6xKB512SAxCVwCKioAOhn+EeoTf+G45j0iq7Zd91w=; b=FsCRXaQK97GbXz REQVHvFB7UgPqxnn61pzfdC9XF4w3jECiSoq1g/m25KU44WwgbcM7W9juMMsH0j+tbU8dqfyyuza1 eXP2PWawFMc9CWAuD4+ad6Y3HgSTshRVtFcMm3KIjawYn/vaxaQF8YwgDrkSQnRgWe+ap069zKWtN m4DdEI62lapSWzQN+PVkA5ri0UJ38FcFMPy2vPGfGdWhL5PTSDw4AVpn3wI/K3OqfUGJgYuWRcWOb brfKtCdEgEUp6Ty+veKVycGr9nfZl03F7r5jpL9R2700aYozdibHYBFPCX9S+8N5mJD60uTpjqF7M JDO5WZ04gpN7u0xQZ4Yg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sU09X-0000000DA2G-2GSA; Wed, 17 Jul 2024 08:36:47 +0000 Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sU09E-0000000D9vs-12g0 for linux-mtd@lists.infradead.org; Wed, 17 Jul 2024 08:36:30 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id A2089240004; Wed, 17 Jul 2024 08:36:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1721205385; 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=i6ol4Bte/dLJMoc78J1RFMZuqxdHcs0gCbCQIiakg7o=; b=igNCwyUn/7wJskLh2DTD+whtMcrLekNXwDt/yAmCT4SQ0yjIzzxblbIhAhguFtCFw5weMG fSQeNslhVc2/6x02zvuK/ynmBxqbhNULKPFa+eipJmA0M0e0g9u2MESsWibnUE5Vj31tQf 46hnBU5MlDVea0X999DUKs+ZsUOQURgMBo1o3FURNdhNTLNfKqmUboElAbVnQypd97N+d2 wulwVQjtma7GXaZ8k6ejAOM3wi8oBZA49f6Ot8t2OpHkdQLdFT1cYmuM9aV77nnw0xdtCY 3aAGPt3n1VdBnQPynYQw6ouYjEBArOPOcWoTUwnqHSio2VfhOVw00fMvXSwwXA== Date: Wed, 17 Jul 2024 10:36:23 +0200 From: Miquel Raynal To: Martin Kurbanov Cc: Richard Weinberger , Vignesh Raghavendra , Mika Westerberg , Michael Walle , Mark Brown , Chia-Lin Kao , Md Sadre Alam , Ezra Buehler , Sridharan S N , Frieder Schrempf , Alexey Romanov , , , Subject: Re: [PATCH v1 2/5] mtd: spinand: add OTP support Message-ID: <20240717103623.6d6b63be@xps-13> In-Reply-To: <20240617133504.179705-3-mmkurbanov@salutedevices.com> References: <20240617133504.179705-1-mmkurbanov@salutedevices.com> <20240617133504.179705-3-mmkurbanov@salutedevices.com> Organization: Bootlin X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240717_013628_619278_2977760E X-CRM114-Status: GOOD ( 34.03 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgTWFydGluLAoKbW1rdXJiYW5vdkBzYWx1dGVkZXZpY2VzLmNvbSB3cm90ZSBvbiBNb24sIDE3 IEp1biAyMDI0IDE2OjM0OjU0ICswMzAwOgoKPiBUaGUgTVREIHN1YnN5c3RlbSBhbHJlYWR5IHN1 cHBvcnRzIGFjY2Vzc2luZyB0d28gT1RQIGFyZWFzOiB1c2VyIGFuZAo+IGZhY3RvcnkuIFVzZXIg YXJlYXMgY2FuIGJlIHdyaXR0ZW4gYnkgdGhlIHVzZXIuIFRoaXMgcGF0Y2ggb25seSBhZGRzCj4g c3VwcG9ydCBmb3IgdGhlIHVzZXIgYXJlYXMuCj4gCj4gSW4gdGhpcyBwYXRjaCB0aGUgT1RQX0lO Rk8gbWFjcm8gaXMgcHJvdmlkZWQgdG8gYWRkIHBhcmFtZXRlcnMgdG8KPiBzcGluYW5kX2luZm8u Cj4gVG8gaW1wbGVtZW50IE9UUCBvcGVyYXRpb25zLCB0aGUgY2xpZW50IChmbGFzaCBkcml2ZXIp IGlzIHByb3ZpZGVkIHdpdGgKPiA1IGNhbGxiYWNrczogLnJlYWQoKSwgLndyaXRlKCksIC5pbmZv KCksIC5sb2NrKCksIC5lcmFzZSgpLgoKR29vZCBqb2IhIFBsZWFzZSBmaW5kIG1pbm9yIGNvbW1l bnRzIGJlbG93LgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3VyYmFub3YgPG1ta3VyYmFu b3ZAc2FsdXRlZGV2aWNlcy5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvbXRkL25hbmQvc3BpL01ha2Vm aWxlIHwgICAzICstCj4gIGRyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYyAgIHwgICAzICsKPiAg ZHJpdmVycy9tdGQvbmFuZC9zcGkvb3RwLmMgICAgfCAyMTkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICBpbmNsdWRlL2xpbnV4L210ZC9zcGluYW5kLmggICB8ICA1NiArKysr KysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyODAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tdGQvbmFuZC9zcGkvb3RwLmMKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvTWFrZWZpbGUgYi9kcml2ZXJzL210ZC9u YW5kL3NwaS9NYWtlZmlsZQo+IGluZGV4IDE5Y2M3NzI4OGViYmMuLjYwZDJlODMwZmZjNmIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJz L210ZC9uYW5kL3NwaS9NYWtlZmlsZQo+IEBAIC0xLDQgKzEsNSBAQAo+ICAjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gLXNwaW5hbmQtb2JqcyA6PSBjb3JlLm8gYWxsaWFuY2Vt ZW1vcnkubyBhdG8ubyBlc210Lm8gZm9yZXNlZS5vIGdpZ2FkZXZpY2UubyBtYWNyb25peC5vCj4g K3NwaW5hbmQtb2JqcyA6PSBjb3JlLm8gb3RwLm8KPiArc3BpbmFuZC1vYmpzICs9IGFsbGlhbmNl bWVtb3J5Lm8gYXRvLm8gZXNtdC5vIGZvcmVzZWUubyBnaWdhZGV2aWNlLm8gbWFjcm9uaXgubwo+ ICBzcGluYW5kLW9ianMgKz0gbWljcm9uLm8gcGFyYWdvbi5vIHRvc2hpYmEubyB3aW5ib25kLm8g eHR4Lm8KPiAgb2JqLSQoQ09ORklHX01URF9TUElfTkFORCkgKz0gc3BpbmFuZC5vCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYyBiL2RyaXZlcnMvbXRkL25hbmQvc3Bp L2NvcmUuYwo+IGluZGV4IDgwN2MyNGIwYzdjNGYuLjJjYjgyNWVkZDQ5ZDAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvY29yZS5jCj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9z cGkvY29yZS5jCj4gQEAgLTExMTEsNiArMTExMSw3IEBAIGludCBzcGluYW5kX21hdGNoX2FuZF9p bml0KHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwKPiAgCQlzcGluYW5kLT5mbGFncyA9 IHRhYmxlW2ldLmZsYWdzOwo+ICAJCXNwaW5hbmQtPmlkLmxlbiA9IDEgKyB0YWJsZVtpXS5kZXZp ZC5sZW47Cj4gIAkJc3BpbmFuZC0+c2VsZWN0X3RhcmdldCA9IHRhYmxlW2ldLnNlbGVjdF90YXJn ZXQ7Cj4gKwkJc3BpbmFuZC0+b3RwID0gJnRhYmxlW2ldLm90cDsKPiAgCj4gIAkJb3AgPSBzcGlu YW5kX3NlbGVjdF9vcF92YXJpYW50KHNwaW5hbmQsCj4gIAkJCQkJICAgICAgIGluZm8tPm9wX3Zh cmlhbnRzLnJlYWRfY2FjaGUpOwo+IEBAIC0xMjkyLDYgKzEyOTMsOCBAQCBzdGF0aWMgaW50IHNw aW5hbmRfaW5pdChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQpCj4gIAltdGQtPl9tYXhf YmFkX2Jsb2NrcyA9IG5hbmRkZXZfbXRkX21heF9iYWRfYmxvY2tzOwo+ICAJbXRkLT5fcmVzdW1l ID0gc3BpbmFuZF9tdGRfcmVzdW1lOwo+ICAKPiArCXNwaW5hbmRfc2V0X210ZF9vdHBfb3BzKHNw aW5hbmQpOwo+ICsKPiAgCWlmIChuYW5kLT5lY2MuZW5naW5lKSB7Cj4gIAkJcmV0ID0gbXRkX29v YmxheW91dF9jb3VudF9mcmVlYnl0ZXMobXRkKTsKPiAgCQlpZiAocmV0IDwgMCkKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvb3RwLmMgYi9kcml2ZXJzL210ZC9uYW5kL3NwaS9v dHAuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uZTFmOTZi MTg5OGRjYgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3NwaS9vdHAu Ywo+IEBAIC0wLDAgKzEsMjE5IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wCj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAyNCwgU2FsdXRlRGV2aWNlcy4gQWxsIFJp Z2h0cyBSZXNlcnZlZC4KPiArICoKPiArICogQXV0aG9yOiBNYXJ0aW4gS3VyYmFub3YgPG1ta3Vy YmFub3ZAc2FsdXRlZGV2aWNlcy5jb20+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L210 ZC9tdGQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L210ZC9zcGluYW5kLmg+Cj4gKwo+ICtzdGF0aWMg c2l6ZV90IHNwaW5hbmRfb3RwX3NpemUoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kKQo+ ICt7Cj4gKwlzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQgPSBzcGluYW5kX3RvX25hbmQoc3BpbmFu ZCk7Cj4gKwlzaXplX3Qgb3RwX3BhZ2VzaXplID0gbmFuZGRldl9wYWdlX3NpemUobmFuZCkgKwo+ ICsJCQkgICAgICBuYW5kZGV2X3Blcl9wYWdlX29vYnNpemUobmFuZCk7Cj4gKwo+ICsJcmV0dXJu IHNwaW5hbmQtPm90cC0+bGF5b3V0Lm5wYWdlcyAqIG90cF9wYWdlc2l6ZTsKPiArfQo+ICsKPiAr c3RhdGljIHVuc2lnbmVkIGludCBzcGluYW5kX290cF9ucGFnZXMoY29uc3Qgc3RydWN0IHNwaW5h bmRfZGV2aWNlICpzcGluYW5kKQo+ICt7Cj4gKwlyZXR1cm4gc3BpbmFuZC0+b3RwLT5sYXlvdXQu bnBhZ2VzOwoKTWF5YmUgeW91IGNhbiBtb3ZlIHRoaXMgaGVscGVyIHVwIGFuZCB1c2UgaXQgaW4g c3BpbmFuZF9vdHBfc2l6ZSgpLgoKPiArfQo+ICsKCi4uLgoKPiArc3RhdGljIGludCBzcGluYW5k X210ZF9vdHBfcncoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBvZnMsIHNpemVfdCBsZW4s Cj4gKwkJCSAgICAgIHNpemVfdCAqcmV0bGVuLCB1OCAqYnVmLCBib29sIGlzX3dyaXRlKQo+ICt7 Cj4gKwlzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQgPSBtdGRfdG9fc3BpbmFuZChtdGQp Owo+ICsJY29uc3Qgc3RydWN0IHNwaW5hbmRfb3RwX29wcyAqb3BzID0gc3BpbmFuZC0+b3RwLT5v cHM7Cj4gKwlzaXplX3QgdG90YWxfbGVuID0gbGVuOwo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAo b2ZzIDwgMCB8fCBvZnMgKyBsZW4gPiBzcGluYW5kX290cF9zaXplKHNwaW5hbmQpKQo+ICsJCXJl dHVybiAtRUlOVkFMOwo+ICsKClBsZWFzZSBqdXN0IGNoZWNrIGlmICghbGVuKSBoZXJlCgo+ICsJ dG90YWxfbGVuID0gbWluX3Qoc2l6ZV90LCB0b3RhbF9sZW4sIHNwaW5hbmRfb3RwX3NpemUoc3Bp bmFuZCkgLSBvZnMpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiBeXl4K CkhlcmUgeW91IGNhbiBqdXN0IGNvbXB1dGUgdGhlIG1pbmltdW0gYW5kIGRvbid0IGNoZWNrIHRo ZSBvdXRwdXQuIEl0CndpbGwgYmUgc2ltcGxlciB0byB1bmRlcnN0YW5kLgoKPiArCWlmICghdG90 YWxfbGVuKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCW11dGV4X2xvY2soJnNwaW5hbmQtPmxvY2sp Owo+ICsKPiArCXJldCA9IHNwaW5hbmRfdXBkX2NmZyhzcGluYW5kLCBDRkdfT1RQX0VOQUJMRSwg Q0ZHX09UUF9FTkFCTEUpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIG91dF91bmxvY2s7Cj4gKwo+ ICsJaWYgKGlzX3dyaXRlKQo+ICsJCXJldCA9IG9wcy0+d3JpdGUoc3BpbmFuZCwgb2ZzLCBsZW4s IGJ1ZiwgcmV0bGVuKTsKPiArCWVsc2UKPiArCQlyZXQgPSBvcHMtPnJlYWQoc3BpbmFuZCwgb2Zz LCBsZW4sIGJ1ZiwgcmV0bGVuKTsKPiArCj4gKwlpZiAoc3BpbmFuZF91cGRfY2ZnKHNwaW5hbmQs IENGR19PVFBfRU5BQkxFLCAwKSkgewo+ICsJCVdBUk4oMSwgIkNhbiBub3QgZGlzYWJsZSBPVFAg bW9kZVxuIik7CgpQbGVhc2UgYXZvaWQgV0FSTigpIHN0YXRlbWVudHMgbGlrZSB0aGF0LiBBIG5v cm1hbCBwcl93YXJuIGlzIGVub3VnaC4KCj4gKwkJcmV0ID0gLUVJTzsKPiArCX0KPiArCj4gK291 dF91bmxvY2s6Cj4gKwltdXRleF91bmxvY2soJnNwaW5hbmQtPmxvY2spOwo+ICsJcmV0dXJuIHJl dDsKPiArfQo+ICsKPiArc3RhdGljIGludCBzcGluYW5kX210ZF9vdHBfcmVhZChzdHJ1Y3QgbXRk X2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sCgpDYW4geW91IGtlZXAgdGhlIG5h bWluZyBjb25zaXN0ZW50PyAgICAgICAgICAgICAgICAgb2ZzIHZzLiBmcm9tICBeCgo+ICsJCQkJ c2l6ZV90ICpyZXRsZW4sIHU4ICpidWYpCj4gK3sKPiArCXJldHVybiBzcGluYW5kX210ZF9vdHBf cncobXRkLCBmcm9tLCBsZW4sIHJldGxlbiwgYnVmLCBmYWxzZSk7Cj4gK30KPiArCj4gK3N0YXRp YyBpbnQgc3BpbmFuZF9tdGRfb3RwX3dyaXRlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3Qg dG8sIHNpemVfdCBsZW4sCj4gKwkJCQkgc2l6ZV90ICpyZXRsZW4sIGNvbnN0IHU4ICpidWYpCj4g K3sKPiArCXJldHVybiBzcGluYW5kX210ZF9vdHBfcncobXRkLCB0bywgbGVuLCByZXRsZW4sICh1 OCAqKWJ1ZiwgdHJ1ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgc3BpbmFuZF9tdGRfb3RwX2Vy YXNlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbikKPiArewo+ ICsJc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kID0gbXRkX3RvX3NwaW5hbmQobXRkKTsK PiArCWNvbnN0IHN0cnVjdCBzcGluYW5kX290cF9vcHMgKm9wcyA9IHNwaW5hbmQtPm90cC0+b3Bz Owo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAoIW9wcy0+ZXJhc2UpCj4gKwkJcmV0dXJuIC1FT1BO T1RTVVBQOwo+ICsKPiArCWlmICghbGVuKQo+ICsJCXJldHVybiAwOwoKVGhpcyBjaGVjayBzZWVt cyBzZW5zaWJsZSBidXQgaXMgYWJzZW50IGluIHRoZSBvdGhlciBoZWxwZXJzLiBBbnkKcmVhc29u PyBQbGVhc2UgYWRkIGl0IHRvIF9sb2NrKCkgYW5kIF9ydygpCgo+ICsKPiArCWlmIChmcm9tIDwg MCB8fCAoZnJvbSArIGxlbikgPiBzcGluYW5kX290cF9zaXplKHNwaW5hbmQpKQo+ICsJCXJldHVy biAtRUlOVkFMOwoKQW5kIHRoaXMgaXMgYWxzbyByZXBlYXRlZCB0aHJlZSB0aW1lcywgaXQgaXMg cHJvYmFibHkgd29ydGggZmFjdG9yaXppbmcKb3V0LgoKPiArCj4gKwltdXRleF9sb2NrKCZzcGlu YW5kLT5sb2NrKTsKPiArCXJldCA9IG9wcy0+ZXJhc2Uoc3BpbmFuZCwgZnJvbSwgbGVuKTsKPiAr CW11dGV4X3VubG9jaygmc3BpbmFuZC0+bG9jayk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ ICsKPiArc3RhdGljIGludCBzcGluYW5kX210ZF9vdHBfbG9jayhzdHJ1Y3QgbXRkX2luZm8gKm10 ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4pCj4gK3sKPiArCXN0cnVjdCBzcGluYW5kX2Rldmlj ZSAqc3BpbmFuZCA9IG10ZF90b19zcGluYW5kKG10ZCk7Cj4gKwljb25zdCBzdHJ1Y3Qgc3BpbmFu ZF9vdHBfb3BzICpvcHMgPSBzcGluYW5kLT5vdHAtPm9wczsKPiArCWludCByZXQ7Cj4gKwo+ICsJ aWYgKCFvcHMtPmxvY2spCj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwo+ICsKPiArCWlmIChmcm9t IDwgMCB8fCAoZnJvbSArIGxlbikgPiBzcGluYW5kX290cF9zaXplKHNwaW5hbmQpKQo+ICsJCXJl dHVybiAtRUlOVkFMOwo+ICsKPiArCW11dGV4X2xvY2soJnNwaW5hbmQtPmxvY2spOwo+ICsJcmV0 ID0gb3BzLT5sb2NrKHNwaW5hbmQsIGZyb20sIGxlbik7Cj4gKwltdXRleF91bmxvY2soJnNwaW5h bmQtPmxvY2spOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBzcGlu YW5kX3NldF9tdGRfb3RwX29wcygpIC0gU2V0IHVwIE9UUCBtZXRob2RzCj4gKyAqIEBzcGluYW5k OiB0aGUgc3BpbmFuZCBkZXZpY2UKPiArICoKPiArICogU2V0IHVwIE9UUCBtZXRob2RzLgo+ICsg Ki8KPiArdm9pZCBzcGluYW5kX3NldF9tdGRfb3RwX29wcyhzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2Ug KnNwaW5hbmQpCj4gK3sKPiArCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gc3BpbmFuZF90b19tdGQo c3BpbmFuZCk7Cj4gKwo+ICsJaWYgKCFzcGluYW5kLT5vdHAtPm9wcykKPiArCQlyZXR1cm47Cj4g Kwo+ICsJbXRkLT5fZ2V0X3VzZXJfcHJvdF9pbmZvID0gc3BpbmFuZF9tdGRfb3RwX2luZm87Cj4g KwltdGQtPl9yZWFkX3VzZXJfcHJvdF9yZWcgPSBzcGluYW5kX210ZF9vdHBfcmVhZDsKPiArCW10 ZC0+X3dyaXRlX3VzZXJfcHJvdF9yZWcgPSBzcGluYW5kX210ZF9vdHBfd3JpdGU7Cj4gKwltdGQt Pl9sb2NrX3VzZXJfcHJvdF9yZWcgPSBzcGluYW5kX210ZF9vdHBfbG9jazsKPiArCW10ZC0+X2Vy YXNlX3VzZXJfcHJvdF9yZWcgPSBzcGluYW5kX210ZF9vdHBfZXJhc2U7Cj4gK30KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9tdGQvc3BpbmFuZC5oIGIvaW5jbHVkZS9saW51eC9tdGQvc3Bp bmFuZC5oCj4gaW5kZXggNTU1ODQ2NTE3ZmFmNi4uYTBkNDJhOWJlMzMzZiAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2xpbnV4L210ZC9zcGluYW5kLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L210ZC9z cGluYW5kLmgKPiBAQCAtMzIyLDYgKzMyMiw0MyBAQCBzdHJ1Y3Qgc3BpbmFuZF9vbmRpZV9lY2Nf Y29uZiB7Cj4gIAl1OCBzdGF0dXM7Cj4gIH07Cj4gIAo+ICsvKioKPiArICogc3RydWN0IHNwaW5h bmRfb3RwX2xheW91dCAtIHN0cnVjdHVyZSB0byBkZXNjcmliZSB0aGUgU1BJIE5BTkQgT1RQIGFy ZWEKPiArICogQG5wYWdlczogbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBPVFAKPiArICovCj4gK3N0 cnVjdCBzcGluYW5kX290cF9sYXlvdXQgewo+ICsJdW5zaWduZWQgaW50IG5wYWdlczsKPiArfTsK PiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3Qgc3BpbmFuZF9vdHBfb3BzIC0gU1BJIE5BTkQgT1RQIG1l dGhvZHMKPiArICogQGluZm86IEdldCB0aGUgT1RQIGFyZWEgaW5mb3JtYXRpb24KPiArICogQGxv Y2s6IGxvY2sgYW4gT1RQIHJlZ2lvbgo+ICsgKiBAZXJhc2U6IGVyYXNlIGFuIE9UUCByZWdpb24K PiArICogQHJlYWQ6IHJlYWQgZnJvbSB0aGUgU1BJIE5BTkQgT1RQIGFyZWEKPiArICogQHdyaXRl OiB3cml0ZSB0byB0aGUgU1BJIE5BTkQgT1RQIGFyZWEKPiArICovCj4gK3N0cnVjdCBzcGluYW5k X290cF9vcHMgewo+ICsJaW50ICgqaW5mbykoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5k LCBzaXplX3QgbGVuLAo+ICsJCSAgICBzdHJ1Y3Qgb3RwX2luZm8gKmJ1Ziwgc2l6ZV90ICpyZXRs ZW4pOwo+ICsJaW50ICgqbG9jaykoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLCBsb2Zm X3QgZnJvbSwgc2l6ZV90IGxlbik7Cj4gKwlpbnQgKCplcmFzZSkoc3RydWN0IHNwaW5hbmRfZGV2 aWNlICpzcGluYW5kLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbik7Cj4gKwlpbnQgKCpyZWFkKShz dHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsIGxvZmZfdCBmcm9tLCBzaXplX3QgbGVuLAo+ ICsJCSAgICB1OCAqYnVmLCBzaXplX3QgKnJldGxlbik7Cj4gKwlpbnQgKCp3cml0ZSkoc3RydWN0 IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwKPiArCQkg ICAgIGNvbnN0IHU4ICpidWYsIHNpemVfdCAqcmV0bGVuKTsKPiArfTsKPiArCj4gKy8qKgo+ICsg KiBzdHJ1Y3Qgc3BpbmFuZF9vdHAgLSBTUEkgTkFORCBPVFAgZ3JvdXBpbmcgc3RydWN0dXJlCj4g KyAqIEBsYXlvdXQ6IE9UUCByZWdpb24gbGF5b3V0Cj4gKyAqIEBvcHM6IE9UUCBhY2Nlc3Mgb3Bz Cj4gKyAqLwo+ICtzdHJ1Y3Qgc3BpbmFuZF9vdHAgewo+ICsJY29uc3Qgc3RydWN0IHNwaW5hbmRf b3RwX2xheW91dCBsYXlvdXQ7Cj4gKwljb25zdCBzdHJ1Y3Qgc3BpbmFuZF9vdHBfb3BzICpvcHM7 Cj4gK307Cj4gKwo+ICAvKioKPiAgICogc3RydWN0IHNwaW5hbmRfaW5mbyAtIFN0cnVjdHVyZSB1 c2VkIHRvIGRlc2NyaWJlIFNQSSBOQU5EIGNoaXBzCj4gICAqIEBtb2RlbDogbW9kZWwgbmFtZQo+ IEBAIC0zNTQsNiArMzkxLDcgQEAgc3RydWN0IHNwaW5hbmRfaW5mbyB7Cj4gIAl9IG9wX3Zhcmlh bnRzOwo+ICAJaW50ICgqc2VsZWN0X3RhcmdldCkoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGlu YW5kLAo+ICAJCQkgICAgIHVuc2lnbmVkIGludCB0YXJnZXQpOwo+ICsJc3RydWN0IHNwaW5hbmRf b3RwIG90cDsKPiAgfTsKPiAgCj4gICNkZWZpbmUgU1BJTkFORF9JRChfX21ldGhvZCwgLi4uKQkJ CQkJXAo+IEBAIC0zNzksNiArNDE3LDE0IEBAIHN0cnVjdCBzcGluYW5kX2luZm8gewo+ICAjZGVm aW5lIFNQSU5BTkRfU0VMRUNUX1RBUkdFVChfX2Z1bmMpCQkJCQlcCj4gIAkuc2VsZWN0X3Rhcmdl dCA9IF9fZnVuYywKPiAgCj4gKyNkZWZpbmUgU1BJTkFORF9PVFBfSU5GTyhfX25wYWdlcywgX19v cHMpCQkJCVwKPiArCS5vdHAgPSB7CQkJCQkJCVwKPiArCQkubGF5b3V0ID0gewkJCQkJCVwKPiAr CQkJLm5wYWdlcyA9IF9fbnBhZ2VzLAkJCQlcCj4gKwkJfSwJCQkJCQkJXAo+ICsJCS5vcHMgPSBf X29wcywJCQkJCQlcCj4gKwl9Cj4gKwo+ICAjZGVmaW5lIFNQSU5BTkRfSU5GTyhfX21vZGVsLCBf X2lkLCBfX21lbW9yZywgX19lY2NyZXEsIF9fb3BfdmFyaWFudHMsCVwKPiAgCQkgICAgIF9fZmxh Z3MsIC4uLikJCQkJCVwKPiAgCXsJCQkJCQkJCVwKPiBAQCAtNDIyLDYgKzQ2OCw3IEBAIHN0cnVj dCBzcGluYW5kX2Rpcm1hcCB7Cj4gICAqCQlwYXNzZWQgaW4gc3BpX21lbV9vcCBiZSBETUEtYWJs ZSwgc28gd2UgY2FuJ3QgYmFzZWQgdGhlIGJ1ZnMgb24KPiAgICoJCXRoZSBzdGFjawo+ICAgKiBA bWFudWZhY3R1cmVyOiBTUEkgTkFORCBtYW51ZmFjdHVyZXIgaW5mb3JtYXRpb24KPiArICogQG90 cDogU1BJIE5BTkQgT1RQIGluZm8uCj4gICAqIEBwcml2OiBtYW51ZmFjdHVyZXIgcHJpdmF0ZSBk YXRhCj4gICAqLwo+ICBzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2Ugewo+IEBAIC00NTAsNiArNDk3LDcg QEAgc3RydWN0IHNwaW5hbmRfZGV2aWNlIHsKPiAgCXU4ICpvb2JidWY7Cj4gIAl1OCAqc2NyYXRj aGJ1ZjsKPiAgCWNvbnN0IHN0cnVjdCBzcGluYW5kX21hbnVmYWN0dXJlciAqbWFudWZhY3R1cmVy Owo+ICsJY29uc3Qgc3RydWN0IHNwaW5hbmRfb3RwICpvdHA7Cj4gIAl2b2lkICpwcml2Owo+ICB9 Owo+ICAKPiBAQCAtNTI1LDQgKzU3MywxMiBAQCBpbnQgc3BpbmFuZF9yZWFkX3BhZ2Uoc3RydWN0 IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLAo+ICBpbnQgc3BpbmFuZF93cml0ZV9wYWdlKHN0cnVj dCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwKPiAgCQkgICAgICAgY29uc3Qgc3RydWN0IG5hbmRf cGFnZV9pb19yZXEgKnJlcSk7Cj4gIAo+ICt2b2lkIHNwaW5hbmRfc2V0X210ZF9vdHBfb3BzKHN0 cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCk7Cj4gKwo+ICtpbnQgc3BpbmFuZF9vdHBfcmVh ZChzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsIGxvZmZfdCBmcm9tLCBzaXplX3QgbGVu LAo+ICsJCSAgICAgdTggKmJ1Ziwgc2l6ZV90ICpyZXRsZW4pOwo+ICsKPiAraW50IHNwaW5hbmRf b3RwX3dyaXRlKHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwgbG9mZl90IGZyb20sIHNp emVfdCBsZW4sCj4gKwkJICAgICAgY29uc3QgdTggKmJ1Ziwgc2l6ZV90ICpyZXRsZW4pOwo+ICsK CldoeSBleHBvc2luZyBzcGluYW5kX290cF9yZWFkIGFuZCBzcGluYW5kX290cF93cml0ZSA/Cgo+ ICAjZW5kaWYgLyogX19MSU5VWF9NVERfU1BJTkFORF9IICovCgoKVGhhbmtzLApNaXF1w6hsCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGlu dXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=