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 C2624C433FE for ; Mon, 7 Nov 2022 15:02:17 +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=cIpVnoFw4+gEA8NokYCbcWXmUTUe8O9cxiL2OpWNdbU=; b=ldN7rsl6Q9qErF 20RffYphxeP5zRSYBXB/ZmAsLHGQ7YxB9rbs+VAXUuZ/Baf+LLw62LFOKCggzpwwxCrMF8CykyTnu Q7vEyLVe/JesPY9azDYx+HlU4cbA9xzoMQ01amlwEZqUyb50ngJSIaYwpU47aTjlNWg9qLzTsmUbH Uj8BiDdwie/l3dfUmVj2H4PFBdt2PZnPqGW/aLwqo46VB2vMTlQW4iJQmhm6+YToaJIj8hIWe96Cv X047HeB9jn6o1EBko7wz8L0FoCpYE1gJLgfyvuv/s25SfACYUG7OWTmCgQj1DwNbzoHwr9bkVH2Fy KD0jsHhbOSAy0qidakCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1os3dZ-00FUV8-AA; Mon, 07 Nov 2022 15:02:10 +0000 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1os3Qb-00FMZD-8k for linux-mtd@lists.infradead.org; Mon, 07 Nov 2022 14:48:48 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id B9D35FF805; Mon, 7 Nov 2022 14:48:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1667832519; 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=adB4scL9AjKFQiFCDl3FBuf6wqs04kG99WYiDrkNvXY=; b=l0F70Gf5dpP9rmDEZNBxvBQbgxGM9Z51oNTMB3kHlfrWektKyJaSlUlXiejndmlsua3za1 YkuI6xDrhBzbFs8oT9+azD2qNJn5Nn/V5JgAfJ1YYrFqiNsInoi2M9aCZS3lx0AqkSm4ZF WgkpRvYw4vtt4MrCouMt6uALIgUHwBn5BYAYbXlA8iugNqGB59501C2fFtYR4Y9CNIdY4K p7PbfKKsrG5P2EMvOPVDMkhlHnxwWqz24lsgnXCI3nxSXr7HRjug1ynHihook/ceQq8zi8 NiwFSFpDgvIMf7mWuIW5gRWLL/vLgBKOp3tcId7FyYYXf2sppI54FiFUaLlqew== Date: Mon, 7 Nov 2022 15:48:38 +0100 From: Miquel Raynal To: JaimeLiao Cc: linux-mtd@lists.infradead.org, jaimeliao@mxic.com.tw Subject: Re: [PATCH v1 3/4] mtd: spinand: Add support continuous read operation Message-ID: <20221107154838.29b2803b@xps-13> In-Reply-To: <20220811094536.24498-4-jaimeliao.tw@gmail.com> References: <20220811094536.24498-1-jaimeliao.tw@gmail.com> <20220811094536.24498-4-jaimeliao.tw@gmail.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-20221107_064845_724183_CE48D8B8 X-CRM114-Status: GOOD ( 41.55 ) 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 SGkgSmFpbWVMaWFvLAoKamFpbWVsaWFvLnR3QGdtYWlsLmNvbSB3cm90ZSBvbiBUaHUsIDExIEF1 ZyAyMDIyIDE3OjQ1OjM1ICswODAwOgoKPiBUaGUgY29udGludW91cyByZWFkIG9wZXJhdGlvbiBp bmNsdWRlcyB0aHJlZSBwaGFzZXM6Cj4gRmlyc3RseSwgc3RhcnRpbmcgd2l0aCB0aGUgcGFnZSBy ZWFkIGNvbW1hbmQgYW5kIHRoZSAxc3QKPiBwYWdlIGRhdGEgd2lsbCBiZSByZWFkIGludG8gdGhl IGNhY2hlIGFmdGVyIHRoZSByZWFkIGxhdGVuY3kgdFJELgo+IFNlY29uZGx5LCBJc3N1aW5nIHRo ZSBSZWFkIEZyb20gQ2FjaGUgY29tbWFuZHMKPiAoMDNoLzBCaC8zQmgvNkJoL0JCaC9FQmgpIHRv IHJlYWQgb3V0IHRoZSBkYXRhIGZyb20gY2FjaGUgY29udGludW91c2x5Lgo+IEFmdGVyIGFsbCB0 aGUgZGF0YSBpcyByZWFkIG91dCwgdGhlIGhvc3Qgc2hvdWxkIHB1bGwgQ1MjIGhpZ2gKPiB0byB0 ZXJtaW5hdGUgdGhpcyBjb250aW51b3VzIHJlYWQgb3BlcmF0aW9uIGFuZCB3YWl0IHRSU1QgZm9y IHRoZSBOQU5ECj4gZGV2aWNlIHJlc2V0cyByZWFkIG9wZXJhdGlvbi4KPiAKPiBDb250aW51b3Vz IHJlYWRzIGhhdmUgYSBwb3NpdGl2ZSBpbXBhY3Qgd2hlbiByZWFkaW5nIG1vcmUgdGhhbgo+IG9u ZSBwYWdlIGFuZCB0aGUgY29sdW1uIGFkZHJlc3MgaXMgZG9uJ3QgY2FyZSBpbiB0aGlzIG9wZXJh dGlvbiwKPiBhIGZ1bGwgcGFnZSBkYXRhIHdpbGwgYmUgcmVhZCBvdXQgZm9yIGVhY2ggcGFnZS4K PiAKPiBUaGUgcGVyZm9ybWFuY2Ugb2YgY29udGludW91cyByZWFkIG1vZGUgaXMgYXMgZm9sbG93 cy4gU2V0IHRoZQo+IGZsYXNoIHRvIFFVQUQgbW9kZSBhbmQgcnVuIDI1TVogZGlyZWN0IG1hcHBp bmcgbW9kZSBvbiB0aGUgU1BJCgoJCQkgICAgICAgTUh6Cgo+IGJ1cyBhbmQgdXNlIHRoZSBNVEQg dGVzdCBtb2R1bGUgdG8gc2hvdyB0aGUgcGVyZm9ybWFuY2Ugb2YKPiBjb250aW51b3VzIHJlYWRz LgoKUGxlYXNlIHNob3cgYmVmb3JlIGFuZCBhZnRlciBjaGFuZ2VzIGFuZCBqdXN0IGdpdmUgdXMg dGhlIGxpbmVzCnJlZ2FyZGluZyB0aGUgcmVhZCBzcGVlZHMgcmF0aGVyIHRoYW4gYWxsIHRoZSBv dXRwdXQgb2YgdGhlIHRvb2wuCgo+IAo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KPiBtdGRfc3BlZWR0ZXN0OiBNVEQgZGV2aWNlOiAwICAgIGNvdW50 OiAxMDAKPiBtdGRfc3BlZWR0ZXN0OiBNVEQgZGV2aWNlIHNpemUgMjY4NDM1NDU2LCBlcmFzZWJs b2NrIHNpemUgMTMxMDcyLAo+ICAgICAgICAgICAgICAgIHBhZ2Ugc2l6ZSAyMDQ4LCBjb3VudCBv ZiBlcmFzZWJsb2NrcyAyMDQ4LCBwYWdlcyBwZXIKPiAgICAgICAgICAgICAgICBlcmFzZWJsb2Nr IDY0LCBPT0Igc2l6ZSA2NAo+IG10ZF90ZXN0OiBzY2FubmluZyBmb3IgYmFkIGVyYXNlYmxvY2tz Cj4gbXRkX3Rlc3Q6IHNjYW5uZWQgMTAwIGVyYXNlYmxvY2tzLCAwIGFyZSBiYWQKPiBtdGRfc3Bl ZWR0ZXN0OiB0ZXN0aW5nIGVyYXNlYmxvY2sgd3JpdGUgc3BlZWQKPiBtdGRfc3BlZWR0ZXN0OiBl cmFzZWJsb2NrIHdyaXRlIHNwZWVkIGlzIDEyOTggS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiB0ZXN0 aW5nIGVyYXNlYmxvY2sgcmVhZCBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IGVyYXNlYmxvY2sgcmVh ZCBzcGVlZCBpcyAxMTA1MyBLaUIvcwo+IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgcGFnZSB3cml0 ZSBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IHBhZ2Ugd3JpdGUgc3BlZWQgaXMgMTI5MSBLaUIvcwo+ IG10ZF9zcGVlZHRlc3Q6IHRlc3RpbmcgcGFnZSByZWFkIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDog cGFnZSByZWFkIHNwZWVkIGlzIDMyNDAgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiB0ZXN0aW5nIDIg cGFnZSB3cml0ZSBzcGVlZAo+IG10ZF9zcGVlZHRlc3Q6IDIgcGFnZSB3cml0ZSBzcGVlZCBpcyAx Mjg5IEtpQi9zCj4gbXRkX3NwZWVkdGVzdDogdGVzdGluZyAyIHBhZ2UgcmVhZCBzcGVlZAo+IG10 ZF9zcGVlZHRlc3Q6IDIgcGFnZSByZWFkIHNwZWVkIGlzIDI5MDkgS2lCL3MKPiBtdGRfc3BlZWR0 ZXN0OiBUZXN0aW5nIGVyYXNlIHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogZXJhc2Ugc3BlZWQgaXMg NDUyMjkgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0aW5nIDJ4IG11bHRpLWJsb2NrIGVyYXNl IHNwZWVkCj4gbXRkX3NwZWVkdGVzdDogMnggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgNjIx MzUgS2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0aW5nIDR4IG11bHRpLWJsb2NrIGVyYXNlIHNw ZWVkCj4gbXRkX3NwZWVkdGVzdDogNHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgNjAwOTMg S2lCL3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0aW5nIDh4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVk Cj4gbXRkX3NwZWVkdGVzdDogOHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgNjEyNDQgS2lC L3MKPiBtdGRfc3BlZWR0ZXN0OiBUZXN0aW5nIDE2eCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZAo+ IG10ZF9zcGVlZHRlc3Q6IDE2eCBtdWx0aS1ibG9jayBlcmFzZSBzcGVlZCBpcyA2MTUzOCBLaUIv cwo+IG10ZF9zcGVlZHRlc3Q6IFRlc3RpbmcgMzJ4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVkCj4g bXRkX3NwZWVkdGVzdDogMzJ4IG11bHRpLWJsb2NrIGVyYXNlIHNwZWVkIGlzIDYxODM1IEtpQi9z Cj4gbXRkX3NwZWVkdGVzdDogVGVzdGluZyA2NHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQKPiBt dGRfc3BlZWR0ZXN0OiA2NHggbXVsdGktYmxvY2sgZXJhc2Ugc3BlZWQgaXMgNjA2NjMgS2lCL3MK PiBtdGRfc3BlZWR0ZXN0OiBmaW5pc2hlZAo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKYWltZUxpYW8gPGphaW1l bGlhby50d0BnbWFpbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYyB8 IDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS9saW51 eC9tdGQvc3BpbmFuZC5oIHwgIDEgKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25z KCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYyBiL2RyaXZl cnMvbXRkL25hbmQvc3BpL2NvcmUuYwo+IGluZGV4IDM4MDQxMWZlYWI2Yy4uZWYwOWJlZGRhOGQ0 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYwo+ICsrKyBiL2RyaXZl cnMvbXRkL25hbmQvc3BpL2NvcmUuYwo+IEBAIC0zODYsNiArMzg2LDEwIEBAIHN0YXRpYyBpbnQg c3BpbmFuZF9yZWFkX2Zyb21fY2FjaGVfb3Aoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5k LAo+ICAJaWYgKHJlcS0+ZGF0YWxlbikgewo+ICAJCWJ1ZiA9IHNwaW5hbmQtPmRhdGFidWY7Cj4g IAkJbmJ5dGVzID0gbmFuZGRldl9wYWdlX3NpemUobmFuZCk7Cj4gKwkJaWYgKHNwaW5hbmQtPnVz ZV9jb250aW51b3VzX3JlYWQpIHsKPiArCQkJYnVmID0gcmVxLT5kYXRhYnVmLmluOwo+ICsJCQlu Ynl0ZXMgPSByZXEtPmRhdGFsZW47Cj4gKwkJfQoKRG9lcyBub3QgbG9vayByaWdodC4gQSBjYWNo ZSByZWFkIGlzIHN0aWxsIG9uZSBwYWdlLCBhbmQgSSBiZWxpZXZlIHRoZQpjYWxsZXIgc2hvdWxk IGhhdmUgdGFrZW4gY2FyZSBvZiB0aGF0PwoKPiAgCQljb2x1bW4gPSAwOwo+ICAJfQo+ICAKPiBA QCAtNDEyLDYgKzQxNiw5IEBAIHN0YXRpYyBpbnQgc3BpbmFuZF9yZWFkX2Zyb21fY2FjaGVfb3Ao c3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLAo+ICAJCWJ1ZiArPSByZXQ7Cj4gIAl9Cj4g IAo+ICsJaWYgKHNwaW5hbmQtPnVzZV9jb250aW51b3VzX3JlYWQpCj4gKwkJcmV0dXJuIDA7CgpG b3IgbWUgdGhpcyBpcyBub3QgdGhlIHJpZ2h0IHBsYWNlLgoKPiArCj4gIAlpZiAocmVxLT5kYXRh bGVuKQo+ICAJCW1lbWNweShyZXEtPmRhdGFidWYuaW4sIHNwaW5hbmQtPmRhdGFidWYgKyByZXEt PmRhdGFvZmZzLAo+ICAJCSAgICAgICByZXEtPmRhdGFsZW4pOwo+IEBAIC02NDAsNiArNjQ3LDgw IEBAIHN0YXRpYyBpbnQgc3BpbmFuZF93cml0ZV9wYWdlKHN0cnVjdCBzcGluYW5kX2RldmljZSAq c3BpbmFuZCwKPiAgCXJldHVybiBuYW5kX2VjY19maW5pc2hfaW9fcmVxKG5hbmQsIChzdHJ1Y3Qg bmFuZF9wYWdlX2lvX3JlcSAqKXJlcSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgc3BpbmFuZF9t dGRfY29udGludW91c19yZWFkKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwKPiAr CQkJCSAgICAgICBzdHJ1Y3QgbXRkX29vYl9vcHMgKm9wcywKPiArCQkJCSAgICAgICBzdHJ1Y3Qg bmFuZF9pb19pdGVyICppdGVyKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5h bmQgPSBtdGRfdG9fc3BpbmFuZChtdGQpOwo+ICsJc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kID0g bXRkX3RvX25hbmRkZXYobXRkKTsKPiArCWludCByZXQgPSAwOwo+ICsKPiArCS8qCj4gKwkgKiBD b250aW51b3VzIHJlYWQgbW9kZSBjb3VsZCByZWR1Y2Ugc29tZSBvcGVyYXRpb24gaW4gT24tZGll IEVDQyBmcmVlCj4gKwkgKiBmbGFzaCB3aGVuIHJlYWQgcGFnZSBzZXF1ZW50aWFsbHkuCj4gKwkg Ki8KPiArCWl0ZXItPnJlcS50eXBlID0gTkFORF9QQUdFX1JFQUQ7Cj4gKwlpdGVyLT5yZXEubW9k ZSA9IE1URF9PUFNfUkFXOwoKSSBkb24ndCBnZXQgd2hhdCB5b3UgZG8gaGVyZS4KCkNvbnRpbnVv dXMgcmVhZCBzaGFsbCBlaXRoZXIgd29yayB3aXRoIEVDQyBlbmdpbmVzIG9yIGp1c3Qgbm90IGJl CmltcGxlbWVudGVkIGF0IGFsbC4gWW91IGNhbm5vdCBibGluZGx5IGRpc2FibGUgRUNDIHN1cHBv cnQuCgo+ICsJaXRlci0+cmVxLmRhdGFvZmZzID0gbmFuZGRldl9vZmZzX3RvX3BvcyhuYW5kLCBm cm9tLCAmaXRlci0+cmVxLnBvcyk7Cj4gKwlpdGVyLT5yZXEuZGF0YWJ1Zi5pbiA9IG9wcy0+ZGF0 YnVmOwo+ICsJaXRlci0+cmVxLmRhdGFsZW4gPSBvcHMtPmxlbjsKPiArCj4gKwlpZiAoZnJvbSAm IChuYW5kZGV2X3BhZ2Vfc2l6ZShuYW5kKSAtIDEpKSB7Cj4gKwkJcHJfZGVidWcoIiVzOiB1bmFs aWduZWQgYWRkcmVzc1xuIiwgX19mdW5jX18pOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ ICsKPiArCXJldCA9IHNwaW5hbmRfY29udGludW91c19yZWFkX2VuYWJsZShzcGluYW5kKTsKPiAr CWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlzcGluYW5kLT51c2VfY29udGludW91 c19yZWFkID0gdHJ1ZTsKPiArCj4gKwlyZXQgPSBzcGluYW5kX3NlbGVjdF90YXJnZXQoc3BpbmFu ZCwgaXRlci0+cmVxLnBvcy50YXJnZXQpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCS8qCj4gKwkgKiBUaGUgY29udGludW91cyByZWFkIG9wZXJhdGlvbiBpbmNsdWRpbmc6 IGZpcnN0bHksIHN0YXJ0aW5nIHdpdGggdGhlCj4gKwkgKiBwYWdlIHJlYWQgY29tbWFuZCBhbmQg dGhlIDEgc3QgcGFnZSBkYXRhIHdpbGwgYmUgcmVhZCBpbnRvIHRoZSBjYWNoZQo+ICsJICogYWZ0 ZXIgdGhlIHJlYWQgbGF0ZW5jeSB0UkQuIFNlY29uZGx5LCBJc3N1aW5nIHRoZSBSZWFkIEZyb20g Q2FjaGUKPiArCSAqIGNvbW1hbmRzICgwM2gvMEJoLzNCaC82QmgvQkJoL0VCaCkgdG8gcmVhZCBv dXQgdGhlIGRhdGEgZnJvbSBjYWNoZQo+ICsJICogY29udGludW91c2x5Lgo+ICsJICoKPiArCSAq IFRoZSBjYWNoZSBpcyBkaXZpZGVkIGludG8gdHdvIGhhbHZlcywgd2hpbGUgb25lIGhhbGYgb2Yg dGhlIGNhY2hlIGlzCj4gKwkgKiBvdXRwdXR0aW5nIHRoZSBkYXRhLCB0aGUgb3RoZXIgaGFsZiB3 aWxsIGJlIGxvYWRlZCBmb3IgdGhlIG5ldyBkYXRhOwo+ICsJICogdGhlcmVmb3JlLCB0aGUgaG9z dCBjYW4gcmVhZCBvdXQgdGhlIGRhdGEgY29udGludW91c2x5IGZyb20gcGFnZSB0bwo+ICsJICog cGFnZS4gTXVsdGlwbGUgb2YgUmVhZCBGcm9tIENhY2hlIGNvbW1hbmRzIGNhbiBiZSBpc3N1ZWQg aW4gb25lCj4gKwkgKiBjb250aW51b3VzIHJlYWQgb3BlcmF0aW9uLCBlYWNoIFJlYWQgRnJvbSBD YWNoZSBjb21tYW5kIGlzIHJlcXVpcmVkCj4gKwkgKiB0byByZWFkIG11bHRpcGxlIDQtYnl0ZSBk YXRhIGV4YWN0bHk7IG90aGVyd2lzZSwgdGhlIGRhdGEgb3V0cHV0IHdpbGwKPiArCSAqIGJlIG91 dCBvZiBzZXF1ZW5jZSBmcm9tIG9uZSBSZWFkIEZyb20gQ2FjaGUgY29tbWFuZCB0byBhbm90aGVy IFJlYWQKPiArCSAqIEZyb20gQ2FjaGUgY29tbWFuZC4KPiArCSAqCj4gKwkgKiBBZnRlciBhbGwg dGhlIGRhdGEgaXMgcmVhZCBvdXQsIHRoZSBob3N0IHNob3VsZCBwdWxsIENTIyBoaWdoIHRvCj4g KwkgKiB0ZXJtaW5hdGUgdGhpcyBjb250aW51b3VzIHJlYWQgb3BlcmF0aW9uIGFuZCB3YWl0IGEg NnVzIG9mIHRSU1QgZm9yCj4gKwkgKiB0aGUgTkFORCBkZXZpY2UgcmVzZXRzIHJlYWQgb3BlcmF0 aW9uLiBUaGUgZGF0YSBvdXRwdXQgZm9yIGVhY2ggcGFnZQo+ICsJICogd2lsbCBhbHdheXMgc3Rh cnQgZnJvbSBieXRlIDAgYW5kIGEgZnVsbCBwYWdlIGRhdGEgc2hvdWxkIGJlIHJlYWQgb3V0Cj4g KwkgKiBmb3IgZWFjaCBwYWdlLgo+ICsJICovCj4gKwlyZXQgPSBzcGluYW5kX3JlYWRfcGFnZShz cGluYW5kLCAmaXRlci0+cmVxKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4g KwlyZXQgPSBzcGluYW5kX3Jlc2V0X29wKHNwaW5hbmQpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1 cm4gcmV0Owo+ICsKPiArCXJldCA9IHNwaW5hbmRfY29udGludW91c19yZWFkX2Rpc2FibGUoc3Bp bmFuZCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJc3BpbmFuZC0+dXNl X2NvbnRpbnVvdXNfcmVhZCA9IGZhbHNlOwoKQW55IGVycm9yIGluIHRoaXMgZnVuY3Rpb24gc2hv dWxkIGxlYWQgdG8gcmVzZXR0aW5nIHVzZV9jb250aW51b3VzX3JlYWQKdG8gZmFsc2UgYW5kIGRp c2FibGluZyBjb250aW51b3VzIHJlYWQgb24gdGhlIGZsYXNoIHNpZGUuCgo+ICsKPiArCW9wcy0+ cmV0bGVuID0gaXRlci0+cmVxLmRhdGFsZW47Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsK PiAgc3RhdGljIGludCBzcGluYW5kX210ZF9yZWFkKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2Zm X3QgZnJvbSwKPiAgCQkJICAgIHN0cnVjdCBtdGRfb29iX29wcyAqb3BzKQo+ICB7Cj4gQEAgLTY1 Niw2ICs3MzcsMjQgQEAgc3RhdGljIGludCBzcGluYW5kX210ZF9yZWFkKHN0cnVjdCBtdGRfaW5m byAqbXRkLCBsb2ZmX3QgZnJvbSwKPiAgCj4gIAltdXRleF9sb2NrKCZzcGluYW5kLT5sb2NrKTsK PiAgCj4gKwkvKgo+ICsJICogSWYgdGhlIGRldmljZSBzdXBwb3J0IGNvbnRpbnVvdXMgcmVhZCBt b2RlIGFuZCByZWFkIGxlbmd0aCBsYXJnZXIKPiArCSAqIHRoYW4gb25lIHBhZ2Ugc2l6ZSB3aWxs IGVudGVyIHRoZSBjb250aW51b3VzIHJlYWQgbW9kZS4gVGhpcyBtb2RlCj4gKwkgKiBoZWxwcyBh dm9pZCBpc3N1aW5nIGEgcGFnZSByZWFkIGNvbW1hbmQgYW5kIHJlYWQgZnJvbSBjYWNoZSBjb21t YW5kCj4gKwkgKiBhZ2FpbiwgYW5kIGltcHJvdmVzIHJlYWQgcGVyZm9ybWFuY2UgZm9yIGNvbnRp bnVvdXMgYWRkcmVzc2VzLgo+ICsJICovCj4gKwlpZiAoKHNwaW5hbmQtPmZsYWdzICYgU1BJTkFO RF9IQVNfQ09OVF9SRUFEX0JJVCkgJiYKPiArCSAgICAob3BzLT5sZW4gPiBuYW5kZGV2X3BhZ2Vf c2l6ZShuYW5kKSkpIHsKPiArCQlyZXQgPSBzcGluYW5kX210ZF9jb250aW51b3VzX3JlYWQobXRk LCBmcm9tLCBvcHMsICZpdGVyKTsKPiArCj4gKwkJbXV0ZXhfdW5sb2NrKCZzcGluYW5kLT5sb2Nr KTsKPiArCj4gKwkJaWYgKGVjY19mYWlsZWQgJiYgIXJldCkKPiArCQkJcmV0ID0gLUVCQURNU0c7 Cj4gKwo+ICsJCXJldHVybiByZXQgPyByZXQgOiBtYXhfYml0ZmxpcHM7Cj4gKwl9Cj4gKwo+ICAJ bmFuZGRldl9pb19mb3JfZWFjaF9wYWdlKG5hbmQsIE5BTkRfUEFHRV9SRUFELCBmcm9tLCBvcHMs ICZpdGVyKSB7Cj4gIAkJaWYgKGRpc2FibGVfZWNjKQo+ICAJCQlpdGVyLnJlcS5tb2RlID0gTVRE X09QU19SQVc7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaCBiL2lu Y2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaAo+IGluZGV4IGQ3MGE2ZjQ5Y2M2Zi4uYzI5NmQ0ZDBk ZGE1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaAo+ICsrKyBiL2lu Y2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaAo+IEBAIC0zMDgsNiArMzA4LDcgQEAgc3RydWN0IHNw aW5hbmRfZWNjX2luZm8gewo+ICAKPiAgI2RlZmluZSBTUElOQU5EX0hBU19RRV9CSVQJCUJJVCgw KQo+ICAjZGVmaW5lIFNQSU5BTkRfSEFTX0NSX0ZFQVRfQklUCQlCSVQoMSkKPiArI2RlZmluZSBT UElOQU5EX0hBU19DT05UX1JFQURfQklUCUJJVCgyKQoKSXMgdGhpcyBiaXQgc3RhbmRhcmQ/Cgo+ ICAKPiAgLyoqCj4gICAqIHN0cnVjdCBzcGluYW5kX29uZGllX2VjY19jb25mIC0gcHJpdmF0ZSBT UEktTkFORCBvbi1kaWUgRUNDIGVuZ2luZSBzdHJ1Y3R1cmUKCgpUaGFua3MsCk1pcXXDqGwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==