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 X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02251C433DB for ; Thu, 18 Feb 2021 09:21:39 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 71D2764EBD for ; Thu, 18 Feb 2021 09:21:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71D2764EBD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID: Subject: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=dx5irVAIrkbb/2ovmIByLGyC2rzmrtCT1F7Z4fbTrU8=; b=DAktsJ2z88Cyyv1gqdikgmZE4 +tO9dxBalM9Op/hV1gXKqUiquKWYOLEjXWioO87FAl8WeZSAbuPk79kks9w8IIkkMhIPSDcCLdm/d pJITvXAdzBmTecqNEfAZkCYejOyr3XzrapuNGGdq0VKqNRNqGxsa0609XZMbvXYpwlz9PfTJlhucm XjN3UHFygK+B1NVxa6aSMbaWQevRSPxhjYGnNatD7gC1RHFR4HRBbfGMRZ8u11ZNaE3MSM9r56nEU OcOb9mQI5S5rsa8yV3m14jEGoEVXXcP75ACOE2Jfyvjn+kIyZ3yHp5sqMOnC1zr9N7EDZ1Z4GMgi/ /4qz2sxDQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lCfU6-0003jS-EZ; Thu, 18 Feb 2021 09:20:30 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lCfU2-0003ij-Qp for linux-mtd@lists.infradead.org; Thu, 18 Feb 2021 09:20:28 +0000 X-Originating-IP: 86.210.203.113 Received: from xps13 (lfbn-tou-1-972-113.w86-210.abo.wanadoo.fr [86.210.203.113]) (Authenticated sender: miquel.raynal@bootlin.com) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 809DD60008; Thu, 18 Feb 2021 09:20:20 +0000 (UTC) Date: Thu, 18 Feb 2021 10:20:19 +0100 From: Miquel Raynal To: mdalam@codeaurora.org Subject: Re: [PATCH] mtd: rawnand: qcom: update last code word register Message-ID: <20210218102019.44973727@xps13> In-Reply-To: <6f21a0cc139546c6351eb4e195dd43bd@codeaurora.org> References: <1613416602-1175-1-git-send-email-mdalam@codeaurora.org> <20210216091613.1d0e7470@xps13> <6f21a0cc139546c6351eb4e195dd43bd@codeaurora.org> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; 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-20210218_042027_112495_78718928 X-CRM114-Status: GOOD ( 25.99 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mani@kernel.org, richard@nod.at, linux-kernel@vger.kernel.org, krzk@kernel.org, boris.brezillon@collabora.com, linux-mtd@lists.infradead.org, sricharan@codeaurora.org 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 SGVsbG8sCgo+ID4+ID4+ICsvKiBoZWxwZXIgdG8gY29uZmlndXJlIGxvY2F0aW9uIHJlZ2lzdGVy IHZhbHVlcyAqLyAgCj4gPj4gK3N0YXRpYyB2b2lkIG5hbmRjX3NldF9yZWFkX2xvYyhzdHJ1Y3Qg bmFuZF9jaGlwICpjaGlwLCBpbnQgY3csIGludCA+PiByZWcsCj4gPj4gKwkJCSAgICAgICBpbnQg b2Zmc2V0LCBpbnQgc2l6ZSwgaW50IGlzX2xhc3QpICAKPiA+IAo+ID4gWW91IGtub3cgY3csIHlv dSBoYXZlIGFjY2VzcyB0byBjaGlwLT5lY2Muc3RlcHMsIHNvIHlvdSBjYW4gZGVyaXZlIGJ5Cj4g PiB5b3Vyc2VsZiBpZiBpc19sYXN0IGlzIHNldCBvciBub3QuIE5vIG5lZWQgdG8gZm9yd2FyZCBp dCB0aHJvdWdoCj4gPiBmdW5jdGlvbiBjYWxscy4gIAo+IAo+IAo+ICAgIFRoaXMgImlzX2xhc3Qi IGlzIG5vdCBmb3IgbGFzdCBjb2RlIHdvcmQsIGl0IHdpbGwgaW5kaWNhdGUgdGhlIExvY2F0aW9u IHJlZ2lzdGVyICJOQU5EX1JFQURfTE9DQVRJT05fbiIgbGFzdCBiaXQuCgpPaywgSSd2ZSBtaXhl ZCB0d28gdGhpbmdzLiBMZXQncyBrZWVwIHRoaXMgYm9vbGVhbiBhcyBpdCBpcyBmb3Igbm93IGFu ZApqdXN0IGRvIHRoZSBtaW5pbXVtIGNoYW5nZXMgdG8gc3VwcG9ydCB0aGUgTE9DQVRJT05fTEFT VF9jdyByZWdpc3RlcnMuCgpOZXZlcnRoZWxlc3MsIGNhbid0IHlvdSBjYWxjdWxhdGUgaXNfbGFz dCBmcm9tIG5hbmRjX3NldF9yZWFkX2xvYygpID8KCkkgYWxzbyB0aGluayBhIGJpdCBvZiByZW5h bWluZyAoaW4gYSBkaWZmZXJlbnQgcGF0Y2gpIHdvdWxkIGJlIHdlbGNvbWUKdG8gYXZvaWQgc3Vj aCBjb25mdXNpb25zLgoKSnVzdCB0byBiZSBjbGVhcjogSSB0aGluayB5b3Ugc2hvdWxkIHRha2Ug YSBzdGVwIGJhY2ssIGFuZCB0cnkgdG8Kc2ltcGxpZnkgYSBiaXQgdGhpcyBkcml2ZXIuIEkgdW5k ZXJzdGFuZCB5b3Uga25vdyBldmVyeSBjaGFyYWN0ZXIgYnkKaGVhcnQgYnV0IHdpdGggYW4gZXh0 ZXJuYWwgZXllIGl0J3Mgbm90IHRoYXQgZWFzeSB0byB1bmRlcnN0YW5kIHdoYXQKeW91IHdhbnQg dG8gZG8gYW5kIHdoeToKLSB3cml0ZSBzbWFsbCBjb21taXRzIHdpdGggYSBzaW5nbGUsIGF0b21p YyBjaGFuZ2UKLSB0cnkgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyB3aGVuIGl0 IGlzIHBvc3NpYmxlCi0gdHJ5IHRvIHVzZSBtZWFuaW5nZnVsIG5hbWVzIChpc19sYXN0IHZzLiBM QVNUX0NXKQotIHRyeSB0byBhdm9pZCBleHRyYSBpbmRlbnRhdGlvbiBsZXZlbCB3aGVuIHBvc3Np YmxlCgoKWy4uLl0KCj4gPj4gQEAgLTEwOTQsMTEgKzExNDQsMTkgQEAgc3RhdGljIHZvaWQKY29u ZmlnX25hbmRfcGFnZV9yZWFkKHN0cnVjdAo+PiBxY29tX25hbmRfY29udHJvbGxlciAqbmFuZGMp Cj4gPj4gICAqIGJlZm9yZSByZWFkaW5nIGVhY2ggY29kZXdvcmQgaW4gTkFORCBwYWdlLgo+ID4+ ICAgKi8KPiA+PiAgc3RhdGljIHZvaWQKPiA+PiAtY29uZmlnX25hbmRfY3dfcmVhZChzdHJ1Y3Qg cWNvbV9uYW5kX2NvbnRyb2xsZXIgKm5hbmRjLCBib29sIHVzZV9lY2MpCj4gPj4gK2NvbmZpZ19u YW5kX2N3X3JlYWQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgYm9vbCB1c2VfZWNjLCBpbnQgY3cp Cj4gPj4gIHsKPiA+PiAtCWlmIChuYW5kYy0+cHJvcHMtPmlzX2JhbSkKPiA+PiAtCQl3cml0ZV9y ZWdfZG1hKG5hbmRjLCBOQU5EX1JFQURfTE9DQVRJT05fMCwgNCwKPiA+PiAtCQkJICAgICAgTkFO RF9CQU1fTkVYVF9TR0wpOwo+ID4+ICsJc3RydWN0IHFjb21fbmFuZF9jb250cm9sbGVyICpuYW5k YyA9IGdldF9xY29tX25hbmRfY29udHJvbGxlcihjaGlwKTsKPiA+PiArCXN0cnVjdCBuYW5kX2Vj Y19jdHJsICplY2MgPSAmY2hpcC0+ZWNjOwo+ID4+ICsKPiA+PiArCWlmIChuYW5kYy0+cHJvcHMt PmlzX2JhbSkgewo+ID4+ICsJCWlmIChuYW5kYy0+cHJvcHMtPnFwaWNfdjIgJiYgY3cgPT0gKGVj Yy0+c3RlcHMgLSAxKSkKPiA+PiArCQkJd3JpdGVfcmVnX2RtYShuYW5kYywgTkFORF9SRUFEX0xP Q0FUSU9OX0xBU1RfQ1dfMCwgNCwKPiA+PiArCQkJCSAgICAgIE5BTkRfQkFNX05FWFRfU0dMKTsK PiA+PiArCQllbHNlCj4gPj4gKwkJCXdyaXRlX3JlZ19kbWEobmFuZGMsIE5BTkRfUkVBRF9MT0NB VElPTl8wLCA0LAo+ID4+ICsJCQkJICAgICAgTkFORF9CQU1fTkVYVF9TR0wpOwo+ID4+ICsJfSAg Cj4gPiAKPiA+IFNhbWUgaGVyZSwgSSBhbSBwcmV0dHkgc3VyZSB3ZSBjYW4gYWJzdHJhY3QgdGhl IGNvbXBsZXhpdHkuCj4gPiAgIAo+ICAgICBIZXJlIEkgZGlkIHRoaXMgYmVjYXVzZSAsIGkgbmVl ZCBwb2ludGVyIHRvIHN0cnVjdCBuYW5kX2VjY19jdHJsIHN0cnVjdHVyZQo+ICAgICB0byBhY2Nl c3MgZWNjLT5zdGVwcyBmb3IgQ1cgY29tcGFyaXNvbiBmb3IgbGFzdCBjb2RlIHdvcmQuIGN3ID09 IChlY2MtPnN0ZXBzIC0gMSkKPiAKPiAgICAgU28gaSB0aGluayBubyBzZXBhcmF0ZSBwYXRjaCBu ZWVkZWQgZm9yIGNvbnZlcnNpb24gb2YgbmFuYy0tPmNoaXAuCj4gICAgIFBsZWFzZSBsZXQgbWUg a25vdyBpZiBzdGlsbCBzZXBhcmF0ZSBwYXRjaCBuZWVkZWQgZm9yIG5hbmMtLT5jaGlwIGNvbnZl cnNpb24uCgpJIHdhcyB0YWxraW5nIGFib3V0IHRoZSBleHRyYSBpbmRlbnRhdGlvbiBsZXZlbC4K CnRoZSAicXBpY192MiAmJiBjdiA9PSAuLi4iIGNvbmRpdGlvbiBjYW4gYmUgY2hlY2tlZCBieSB3 cml0ZV9yZWdfZG1hCmRpcmVjdGx5LgoKWW91IGNvdWxkIGV2ZW4gaW50cm9kdWNlIGEgaGVscGVy IHJldHVybmluZyB0aGUgYm9vbGVhbiB2YWx1ZSBvZiB3aGljaApyZWdpc3RlciBzaG91bGQgYmUg dXNlZC4KClJlZ2FyZGluZyB0aGUgdXNlIG9mIG5hbmRfY2hpcCBpbnN0ZWFkIG9mIG5hbmRjLCBp ZiB0aGVyZSBhcmUgdG9vIG1hbnkKY2hhbmdlcyBpbnZvbHZlZCwgSSBwcmVmZXIgYSBzZXBhcmF0 ZSBwYXRjaC4KCj4gCj4gPj4gPj4gIAl3cml0ZV9yZWdfZG1hKG5hbmRjLCBOQU5EX0ZMQVNIX0NN RCwgMSwgTkFORF9CQU1fTkVYVF9TR0wpOyAgCj4gPj4gIAl3cml0ZV9yZWdfZG1hKG5hbmRjLCBO QU5EX0VYRUNfQ01ELCAxLCBOQU5EX0JBTV9ORVhUX1NHTCk7Cj4gPj4gQEAgLTExMTcsMTEgKzEx NzUsMTEgQEAgY29uZmlnX25hbmRfY3dfcmVhZChzdHJ1Y3QgPj4gcWNvbV9uYW5kX2NvbnRyb2xs ZXIgKm5hbmRjLCBib29sIHVzZV9lY2MpCj4gPj4gICAqIHNpbmdsZSBjb2Rld29yZCBpbiBwYWdl Cj4gPj4gICAqLwo+ID4+ICBzdGF0aWMgdm9pZAo+ID4+IC1jb25maWdfbmFuZF9zaW5nbGVfY3df cGFnZV9yZWFkKHN0cnVjdCBxY29tX25hbmRfY29udHJvbGxlciAqbmFuZGMsCj4gPj4gLQkJCQli b29sIHVzZV9lY2MpCj4gPj4gK2NvbmZpZ19uYW5kX3NpbmdsZV9jd19wYWdlX3JlYWQoc3RydWN0 IG5hbmRfY2hpcCAqY2hpcCwKPiA+PiArCQkJCWJvb2wgdXNlX2VjYywgaW50IGN3KQo+ID4+ICB7 Cj4gPj4gLQljb25maWdfbmFuZF9wYWdlX3JlYWQobmFuZGMpOwo+ID4+IC0JY29uZmlnX25hbmRf Y3dfcmVhZChuYW5kYywgdXNlX2VjYyk7Cj4gPj4gKwljb25maWdfbmFuZF9wYWdlX3JlYWQoY2hp cCk7Cj4gPj4gKwljb25maWdfbmFuZF9jd19yZWFkKGNoaXAsIHVzZV9lY2MsIGN3KTsKPiA+PiAg fSAgCj4gPj4gPj4gIC8qICAKPiA+PiBAQCAtMTIwNSw3ICsxMjYzLDcgQEAgc3RhdGljIGludCBu YW5kY19wYXJhbShzdHJ1Y3QgcWNvbV9uYW5kX2hvc3QgPj4gKmhvc3QpCj4gPj4gIAkJbmFuZGNf c2V0X3JlZyhuYW5kYywgTkFORF9ERVZfQ01EX1ZMRF9SRVNUT1JFLCBuYW5kYy0+dmxkKTsKPiA+ PiAgCX0gIAo+ID4+ID4+IC0JbmFuZGNfc2V0X3JlYWRfbG9jKG5hbmRjLCAwLCAwLCA1MTIsIDEp OyAgCj4gPj4gKwluYW5kY19zZXRfcmVhZF9sb2MoY2hpcCwgMCwgMCwgMCwgNTEyLCAxKTsgIAo+ ID4+ID4+ICAJaWYgKCFuYW5kYy0+cHJvcHMtPnFwaWNfdjIpIHsgIAo+ID4+ICAJCXdyaXRlX3Jl Z19kbWEobmFuZGMsIE5BTkRfREVWX0NNRF9WTEQsIDEsIDApOwo+ID4+IEBAIC0xMjE1LDcgKzEy NzMsNyBAQCBzdGF0aWMgaW50IG5hbmRjX3BhcmFtKHN0cnVjdCBxY29tX25hbmRfaG9zdCA+PiAq aG9zdCkKPiA+PiAgCW5hbmRjLT5idWZfY291bnQgPSA1MTI7Cj4gPj4gIAltZW1zZXQobmFuZGMt PmRhdGFfYnVmZmVyLCAweGZmLCBuYW5kYy0+YnVmX2NvdW50KTsgIAo+ID4+ID4+IC0JY29uZmln X25hbmRfc2luZ2xlX2N3X3BhZ2VfcmVhZChuYW5kYywgZmFsc2UpOyAgCj4gPj4gKwljb25maWdf bmFuZF9zaW5nbGVfY3dfcGFnZV9yZWFkKGNoaXAsIGZhbHNlLCAwKTsgIAo+ID4+ID4+ICAJcmVh ZF9kYXRhX2RtYShuYW5kYywgRkxBU0hfQlVGX0FDQywgbmFuZGMtPmRhdGFfYnVmZmVyLCAgCj4g Pj4gIAkJICAgICAgbmFuZGMtPmJ1Zl9jb3VudCwgMCk7Cj4gPj4gQEAgLTE2MTcsNyArMTY3NSw3 IEBAIHFjb21fbmFuZGNfcmVhZF9jd19yYXcoc3RydWN0IG10ZF9pbmZvICptdGQsID4+IHN0cnVj dCBuYW5kX2NoaXAgKmNoaXAsCj4gPj4gIAljbGVhcl9iYW1fdHJhbnNhY3Rpb24obmFuZGMpOwo+ ID4+ICAJc2V0X2FkZHJlc3MoaG9zdCwgaG9zdC0+Y3dfc2l6ZSAqIGN3LCBwYWdlKTsKPiA+PiAg CXVwZGF0ZV9yd19yZWdzKGhvc3QsIDEsIHRydWUpOwo+ID4+IC0JY29uZmlnX25hbmRfcGFnZV9y ZWFkKG5hbmRjKTsKPiA+PiArCWNvbmZpZ19uYW5kX3BhZ2VfcmVhZChjaGlwKTsgIAo+ID4+ID4+ ICAJZGF0YV9zaXplMSA9IG10ZC0+d3JpdGVzaXplIC0gaG9zdC0+Y3dfc2l6ZSAqIChlY2MtPnN0 ZXBzIC0gMSk7ICAKPiA+PiAgCW9vYl9zaXplMSA9IGhvc3QtPmJibV9zaXplOwo+ID4+IEBAIC0x NjMzLDE5ICsxNjkxLDE5IEBAIHFjb21fbmFuZGNfcmVhZF9jd19yYXcoc3RydWN0IG10ZF9pbmZv ICptdGQsID4+IHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCj4gPj4gIAl9ICAKPiA+PiA+PiAgCWlm IChuYW5kYy0+cHJvcHMtPmlzX2JhbSkgeyAgCj4gPj4gLQkJbmFuZGNfc2V0X3JlYWRfbG9jKG5h bmRjLCAwLCByZWFkX2xvYywgZGF0YV9zaXplMSwgMCk7Cj4gPj4gKwkJbmFuZGNfc2V0X3JlYWRf bG9jKGNoaXAsIGN3LCAwLCByZWFkX2xvYywgZGF0YV9zaXplMSwgMCk7Cj4gPj4gIAkJcmVhZF9s b2MgKz0gZGF0YV9zaXplMTsgIAo+ID4+ID4+IC0JCW5hbmRjX3NldF9yZWFkX2xvYyhuYW5kYywg MSwgcmVhZF9sb2MsIG9vYl9zaXplMSwgMCk7ICAKPiA+PiArCQluYW5kY19zZXRfcmVhZF9sb2Mo Y2hpcCwgY3csIDEsIHJlYWRfbG9jLCBvb2Jfc2l6ZTEsIDApOwo+ID4+ICAJCXJlYWRfbG9jICs9 IG9vYl9zaXplMTsgIAo+ID4+ID4+IC0JCW5hbmRjX3NldF9yZWFkX2xvYyhuYW5kYywgMiwgcmVh ZF9sb2MsIGRhdGFfc2l6ZTIsIDApOyAgCj4gPj4gKwkJbmFuZGNfc2V0X3JlYWRfbG9jKGNoaXAs IGN3LCAyLCByZWFkX2xvYywgZGF0YV9zaXplMiwgMCk7Cj4gPj4gIAkJcmVhZF9sb2MgKz0gZGF0 YV9zaXplMjsgIAo+ID4+ID4+IC0JCW5hbmRjX3NldF9yZWFkX2xvYyhuYW5kYywgMywgcmVhZF9s b2MsIG9vYl9zaXplMiwgMSk7ICAKPiA+PiArCQluYW5kY19zZXRfcmVhZF9sb2MoY2hpcCwgY3cs IDMsIHJlYWRfbG9jLCBvb2Jfc2l6ZTIsIDEpOwo+ID4+ICAJfSAgCj4gPj4gPj4gLQljb25maWdf bmFuZF9jd19yZWFkKG5hbmRjLCBmYWxzZSk7ICAKPiA+PiArCWNvbmZpZ19uYW5kX2N3X3JlYWQo Y2hpcCwgZmFsc2UsIGN3KTsgIAo+ID4+ID4+ICAJcmVhZF9kYXRhX2RtYShuYW5kYywgcmVnX29m ZiwgZGF0YV9idWYsIGRhdGFfc2l6ZTEsIDApOyAgCj4gPj4gIAlyZWdfb2ZmICs9IGRhdGFfc2l6 ZTE7Cj4gPj4gQEAgLTE4NTYsNyArMTkxNCw3IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWdlX2VjYyhz dHJ1Y3QgcWNvbV9uYW5kX2hvc3QgPj4gKmhvc3QsIHU4ICpkYXRhX2J1ZiwKPiA+PiAgCXU4ICpk YXRhX2J1Zl9zdGFydCA9IGRhdGFfYnVmLCAqb29iX2J1Zl9zdGFydCA9IG9vYl9idWY7Cj4gPj4g IAlpbnQgaSwgcmV0OyAgCj4gPj4gPj4gLQljb25maWdfbmFuZF9wYWdlX3JlYWQobmFuZGMpOyAg Cj4gPj4gKwljb25maWdfbmFuZF9wYWdlX3JlYWQoY2hpcCk7ICAKPiA+PiA+PiAgCS8qIHF1ZXVl IGNtZCBkZXNjcyBmb3IgZWFjaCBjb2Rld29yZCAqLyAgCj4gPj4gIAlmb3IgKGkgPSAwOyBpIDwg ZWNjLT5zdGVwczsgaSsrKSB7Cj4gPj4gQEAgLTE4NzMsMTggKzE5MzEsMTYgQEAgc3RhdGljIGlu dCByZWFkX3BhZ2VfZWNjKHN0cnVjdCBxY29tX25hbmRfaG9zdCA+PiAqaG9zdCwgdTggKmRhdGFf YnVmLCAgCj4gPj4gPj4gIAkJaWYgKG5hbmRjLT5wcm9wcy0+aXNfYmFtKSB7ICAKPiA+PiAgCQkJ aWYgKGRhdGFfYnVmICYmIG9vYl9idWYpIHsKPiA+PiAtCQkJCW5hbmRjX3NldF9yZWFkX2xvYyhu YW5kYywgMCwgMCwgZGF0YV9zaXplLCAwKTsKPiA+PiAtCQkJCW5hbmRjX3NldF9yZWFkX2xvYyhu YW5kYywgMSwgZGF0YV9zaXplLAo+ID4+IC0JCQkJCQkgICBvb2Jfc2l6ZSwgMSk7Cj4gPj4gKwkJ CQluYW5kY19zZXRfcmVhZF9sb2MoY2hpcCwgaSwgMCwgMCwgZGF0YV9zaXplLCAwKTsKPiA+PiAr CQkJCW5hbmRjX3NldF9yZWFkX2xvYyhjaGlwLCBpLCAxLCBkYXRhX3NpemUsIG9vYl9zaXplLCAx KTsKPiA+PiAgCQkJfSBlbHNlIGlmIChkYXRhX2J1Zikgewo+ID4+IC0JCQkJbmFuZGNfc2V0X3Jl YWRfbG9jKG5hbmRjLCAwLCAwLCBkYXRhX3NpemUsIDEpOwo+ID4+ICsJCQkJbmFuZGNfc2V0X3Jl YWRfbG9jKGNoaXAsIGksIDAsIDAsIGRhdGFfc2l6ZSwgMSk7Cj4gPj4gIAkJCX0gZWxzZSB7Cj4g Pj4gLQkJCQluYW5kY19zZXRfcmVhZF9sb2MobmFuZGMsIDAsIGRhdGFfc2l6ZSwKPiA+PiAtCQkJ CQkJICAgb29iX3NpemUsIDEpOwo+ID4+ICsJCQkJbmFuZGNfc2V0X3JlYWRfbG9jKGNoaXAsIGks IDAsIGRhdGFfc2l6ZSwgb29iX3NpemUsIDEpOwo+ID4+ICAJCQl9Cj4gPj4gIAkJfSAgCj4gPj4g Pj4gLQkJY29uZmlnX25hbmRfY3dfcmVhZChuYW5kYywgdHJ1ZSk7ICAKPiA+PiArCQljb25maWdf bmFuZF9jd19yZWFkKGNoaXAsIHRydWUsIGkpOyAgCj4gPj4gPj4gIAkJaWYgKGRhdGFfYnVmKSAg Cj4gPj4gIAkJCXJlYWRfZGF0YV9kbWEobmFuZGMsIEZMQVNIX0JVRl9BQ0MsIGRhdGFfYnVmLAo+ ID4+IEBAIC0xOTQ2LDcgKzIwMDIsNyBAQCBzdGF0aWMgaW50IGNvcHlfbGFzdF9jdyhzdHJ1Y3Qg cWNvbV9uYW5kX2hvc3QgPj4gKmhvc3QsIGludCBwYWdlKQo+ID4+ICAJc2V0X2FkZHJlc3MoaG9z dCwgaG9zdC0+Y3dfc2l6ZSAqIChlY2MtPnN0ZXBzIC0gMSksIHBhZ2UpOwo+ID4+ICAJdXBkYXRl X3J3X3JlZ3MoaG9zdCwgMSwgdHJ1ZSk7ICAKPiA+PiA+PiAtCWNvbmZpZ19uYW5kX3NpbmdsZV9j d19wYWdlX3JlYWQobmFuZGMsIGhvc3QtPnVzZV9lY2MpOyAgCj4gPj4gKwljb25maWdfbmFuZF9z aW5nbGVfY3dfcGFnZV9yZWFkKGNoaXAsIGhvc3QtPnVzZV9lY2MsIGVjYy0+c3RlcHMgLSA+PiAx KTsgIAo+ID4+ID4+ICAJcmVhZF9kYXRhX2RtYShuYW5kYywgRkxBU0hfQlVGX0FDQywgbmFuZGMt PmRhdGFfYnVmZmVyLCBzaXplLCAwKTsKPiA+PiA+ID4gVGhhbmtzLCAgCj4gPiBNaXF1w6hsICAK ClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K