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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 512A0C433EF for ; Tue, 9 Nov 2021 11:47:04 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 16B12611CC for ; Tue, 9 Nov 2021 11:47:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 16B12611CC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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=EjjBVh5Bc+5vsBnOJJeDwQ0CF/HtejPvFxh38NvRGww=; b=JVuArENI5SGzlb h9Q5LSUdkxEwWA6uBe0X1LfSiefENsem+BS+x/YmQJArPonLMk+f2iprkMIOqTtsSuI/ws6aYYrg+ fbFljeouTzV7lnkv0452eXuzSRr68nwsUHfo1cS/YnqxUsuTnsti+KHfOhL4Lo87tDBQRSYaCjUDo gJAspaOZI3AHB/jnAw0eNlOka1cTJqYYwHGo48Kzs+S9Ikph+H6hwwrxYV7SfxNVOQOEgl0SMffcu Xhav27HiFAX12luj7YH8QzJxEsIlxzPvE1crSo28nvJ/AiROSc/YVkwL71vvviSU8ASI8zHFVecfe MebYmu9wE+hM6yxOhoTA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mkPab-001nyI-6B; Tue, 09 Nov 2021 11:46:57 +0000 Received: from relay6-d.mail.gandi.net ([217.70.183.198]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mkPaX-001nwy-03; Tue, 09 Nov 2021 11:46:55 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 6421EC000A; Tue, 9 Nov 2021 11:46:49 +0000 (UTC) Date: Tue, 9 Nov 2021 12:46:47 +0100 From: Miquel Raynal To: Xiangsheng Hou Cc: , , , , , , , , , , , , Subject: Re: [RFC,v3 3/5] spi: add Mediatek SPI Nand controller driver Message-ID: <20211109124647.0a831b1e@xps13> In-Reply-To: <20211022024021.14665-4-xiangsheng.hou@mediatek.com> References: <20211022024021.14665-1-xiangsheng.hou@mediatek.com> <20211022024021.14665-4-xiangsheng.hou@mediatek.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (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-20211109_034653_336907_4C1D4D7E X-CRM114-Status: GOOD ( 20.99 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGkgWGlhbmdzaGVuZywKCnhpYW5nc2hlbmcuaG91QG1lZGlhdGVrLmNvbSB3cm90ZSBvbiBGcmks IDIyIE9jdCAyMDIxIDEwOjQwOjE5ICswODAwOgoKPiBUaGlzIHZlcnNpb24gdGhlIFNQSSBkcml2 ZXIgY293b3JrIHdpdGggTVRLIHBpcGVsaW5lZAo+IEhXIEVDQyBlbmdpbmUuCj4gCj4gU2lnbmVk LW9mZi1ieTogWGlhbmdzaGVuZyBIb3UgPHhpYW5nc2hlbmcuaG91QG1lZGlhdGVrLmNvbT4KPiAt LS0KClsuLi5dCgo+ICsvKiBFQ0Mgd3JhcHBlciAqLwo+ICtzdGF0aWMgc3RydWN0IG10a19zbmZp ICptdGtfbmFuZF90b19zcGkoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kKQo+ICt7Cj4gKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSBuYW5kLT5lY2MuZW5naW5lLT5kZXY7Cj4gKwlzdHJ1Y3Qgc3BpX21h c3RlciAqbWFzdGVyID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwlzdHJ1Y3QgbXRrX3NuZmkg KnNuZmkgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKG1hc3Rlcik7Cj4gKwo+ICsJcmV0dXJuIHNu Zmk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXRrX3NuZmlfc2V0X3NwYXJlX3Blcl9zZWN0b3Io c3RydWN0IG5hbmRfZGV2aWNlICpuYW5kLAo+ICsJCQkJc3RydWN0IG10a19zbmZpICpzbmZpLCB1 MzIgKnNwcywgdTMyICppZHgpCj4gK3sKPiArCXN0cnVjdCBtdGtfZWNjX2VuZ2luZSAqZW5nID0g bmFuZC0+ZWNjLmN0eC5wcml2Owo+ICsJc3RydWN0IG5hbmRfZWNjX3Byb3BzICpjb25mID0gJm5h bmQtPmVjYy5jdHguY29uZjsKPiArCWNvbnN0IHU4ICpzcGFyZSA9IHNuZmktPmNhcHMtPnNwYXJl X3NpemU7Cj4gKwl1MzIgaSwgY2xvc2VzdF9zcGFyZSA9IDA7Cj4gKwo+ICsJZW5nLT5uc3RlcHMg PSBuYW5kLT5tZW1vcmcucGFnZXNpemUgLyBjb25mLT5zdGVwX3NpemU7Cj4gKwkqc3BzID0gbmFu ZC0+bWVtb3JnLm9vYnNpemUgLyBlbmctPm5zdGVwczsKPiArCj4gKwlpZiAoY29uZi0+c3RlcF9z aXplID09IDEwMjQpCj4gKwkJKnNwcyA+Pj0gMTsKPiArCj4gKwlpZiAoKCpzcHMgPCBzbmZpLT5m ZG1fc2l6ZSkgfHwgKCpzcHMgPCBNVEtfTkZJX01JTl9TUEFSRSkpCj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IHNuZmktPmNhcHMtPm51bV9zcGFyZV9zaXplOyBp KyspIHsKPiArCQlpZiAoKnNwcyA+PSBzcGFyZVtpXSAmJiBzcGFyZVtpXSA+PSBzcGFyZVtjbG9z ZXN0X3NwYXJlXSkgewo+ICsJCQljbG9zZXN0X3NwYXJlID0gaTsKPiArCQkJaWYgKCpzcHMgPT0g c3BhcmVbaV0pCj4gKwkJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJKnNwcyA9IHNwYXJl W2Nsb3Nlc3Rfc3BhcmVdOwo+ICsJKmlkeCA9IGNsb3Nlc3Rfc3BhcmU7Cj4gKwo+ICsJaWYgKGNv bmYtPnN0ZXBfc2l6ZSA9PSAxMDI0KQo+ICsJCSpzcHMgPDw9IDE7Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXRrX3NuZmlfZWNjX2luaXQoc3RydWN0IG5hbmRfZGV2 aWNlICpuYW5kKQo+ICt7Cj4gKwlzdHJ1Y3QgbmFuZF9lY2NfcHJvcHMgKnJlcXMgPSAmbmFuZC0+ ZWNjLnJlcXVpcmVtZW50czsKPiArCXN0cnVjdCBuYW5kX2VjY19wcm9wcyAqdXNlciA9ICZuYW5k LT5lY2MudXNlcl9jb25mOwo+ICsJc3RydWN0IG5hbmRfZWNjX3Byb3BzICpjb25mID0gJm5hbmQt PmVjYy5jdHguY29uZjsKPiArCXN0cnVjdCBtdGtfc25maSAqc25maSA9IG10a19uYW5kX3RvX3Nw aShuYW5kKTsKPiArCXN0cnVjdCBtdGtfZWNjX2VuZ2luZSAqZW5nOwo+ICsJdTMyIHNwYXJlLCBp ZHg7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWVuZyA9IGt6YWxsb2Moc2l6ZW9mKCplbmcpLCBHRlBf S0VSTkVMKTsKPiArCWlmICghZW5nKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCW5hbmQt PmVjYy5jdHgucHJpdiA9IGVuZzsKPiArCW5hbmQtPmVjYy5lbmdpbmUtPnByaXYgPSBlbmc7Cj4g Kwo+ICsJLyogQ29uZmlndXJlIHRoZSBjb3JyZWN0aW9uIGRlcGVuZGluZyBvbiB0aGUgTkFORCBk ZXZpY2UgdG9wb2xvZ3kgKi8KPiArCWlmICh1c2VyLT5zdGVwX3NpemUgJiYgdXNlci0+c3RyZW5n dGgpIHsKPiArCQljb25mLT5zdGVwX3NpemUgPSB1c2VyLT5zdGVwX3NpemU7Cj4gKwkJY29uZi0+ c3RyZW5ndGggPSB1c2VyLT5zdHJlbmd0aDsKPiArCX0gZWxzZSBpZiAocmVxcy0+c3RlcF9zaXpl ICYmIHJlcXMtPnN0cmVuZ3RoKSB7Cj4gKwkJY29uZi0+c3RlcF9zaXplID0gcmVxcy0+c3RlcF9z aXplOwo+ICsJCWNvbmYtPnN0cmVuZ3RoID0gcmVxcy0+c3RyZW5ndGg7Cj4gKwl9Cj4gKwo+ICsJ LyoKPiArCSAqIGFsaWduIGVjY3N0cmVuZ3RoIGFuZCBlY2NzaXplLgo+ICsJICogVGhlIE1USyBI VyBFQ0MgZW5naW5lIG9ubHkgc3VwcG9ydCA1MTIgYW5kIDEwMjQgZWNjc2l6ZS4KPiArCSAqLwo+ ICsJaWYgKGNvbmYtPnN0ZXBfc2l6ZSA8IDEwMjQpIHsKPiArCQlpZiAobmFuZC0+bWVtb3JnLnBh Z2VzaXplID4gNTEyICYmCj4gKwkJCSAgICBzbmZpLT5jYXBzLT5tYXhfc2VjdG9yX3NpemUgPiA1 MTIpIHsKPiArCQkJY29uZi0+c3RlcF9zaXplID0gMTAyNDsKPiArCQkJY29uZi0+c3RyZW5ndGgg PDw9IDE7Cj4gKwkJfSBlbHNlIHsKPiArCQkJY29uZi0+c3RlcF9zaXplID0gNTEyOwo+ICsJCX0K PiArCX0gZWxzZSB7Cj4gKwkJY29uZi0+c3RlcF9zaXplID0gMTAyNDsKPiArCX0KPiArCj4gKwly ZXQgPSBtdGtfc25maV9zZXRfc3BhcmVfcGVyX3NlY3RvcihuYW5kLCBzbmZpLCAmc3BhcmUsICZp ZHgpOwo+ICsKPiArCS8qIFRoZXNlIHdpbGwgYmUgdXNlZCBieSB0aGUgc25maSBkcml2ZXIgKi8K PiArCXNuZmktPmVjYy5wYWdlX3NpemUgPSBuYW5kLT5tZW1vcmcucGFnZXNpemU7Cj4gKwlzbmZp LT5lY2Muc3BhcmVfcGVyX3NlY3RvciA9IHNwYXJlOwo+ICsJc25maS0+ZWNjLnNwYXJlX2lkeCA9 IGlkeDsKPiArCXNuZmktPmVjYy5zZWN0b3JzID0gbmFuZC0+bWVtb3JnLnBhZ2VzaXplIC8gY29u Zi0+c3RlcF9zaXplOwo+ICsKPiArCS8qIFRoZXNlIHdpbGwgYmUgdXNlZCBieSBIVyBFQ0MgZW5n aW5lICovCj4gKwllbmctPm9vYl9wZXJfc2VjdG9yID0gc3BhcmU7Cj4gKwllbmctPm5zdGVwcyA9 IHNuZmktPmVjYy5zZWN0b3JzOwoKSSBiZWxpZXZlIG1vc3Qgb2YgdGhpcyBmdW5jdGlvbiBzaG91 bGQgbW92ZSBpbnRvIG10a19lY2MuYy4KCj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAr c3RhdGljIGludCBtdGtfc25maV9lY2NfaW5pdF9jdHgoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5k KQo+ICt7Cj4gKwlzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lX29wcyAqb3BzID0gbXRrX2VjY19nZXRf cGlwZWxpbmVkX29wcygpOwo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBtdGtfc25maV9lY2Nf aW5pdChuYW5kKTsKPiArCWlmIChyZXQpIHsKPiArCQlwcl9pbmZvKCJtdGsgc25maSBlY2MgaW5p dCBmYWlsIVxuIik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZXR1cm4gb3BzLT5p bml0X2N0eChuYW5kKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbXRrX3NuZmlfZWNjX2NsZWFu dXBfY3R4KHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCkKPiArewo+ICsJc3RydWN0IG5hbmRfZWNj X2VuZ2luZV9vcHMgKm9wcyA9IG10a19lY2NfZ2V0X3BpcGVsaW5lZF9vcHMoKTsKPiArCj4gKwlv cHMtPmNsZWFudXBfY3R4KG5hbmQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19zbmZpX3By ZXBhcmVfZm9yX2VjYyhzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCj4gKwkJCQkJc3RydWN0IG10 a19zbmZpICpzbmZpKQo+ICt7Cj4gKwlzdHJ1Y3QgbmFuZF9lY2NfcHJvcHMgKmNvbmYgPSAmbmFu ZC0+ZWNjLmN0eC5jb25mOwo+ICsJc3RydWN0IG10a19lY2NfZW5naW5lICplbmcgPSBuYW5kLT5l Y2MuY3R4LnByaXY7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXN3aXRjaCAobmFuZC0+bWVtb3JnLnBh Z2VzaXplKSB7Cj4gKwljYXNlIDUxMjoKPiArCQl2YWwgPSBQQUdFRk1UXzUxMl8ySyB8IFBBR0VG TVRfU0VDX1NFTF81MTI7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEtCKDIpOgo+ICsJCWlmIChjb25m LT5zdGVwX3NpemUgPT0gNTEyKQo+ICsJCQl2YWwgPSBQQUdFRk1UXzJLXzRLIHwgUEFHRUZNVF9T RUNfU0VMXzUxMjsKPiArCQllbHNlCj4gKwkJCXZhbCA9IFBBR0VGTVRfNTEyXzJLOwo+ICsJCWJy ZWFrOwo+ICsJY2FzZSBLQig0KToKPiArCQlpZiAoY29uZi0+c3RlcF9zaXplID09IDUxMikKPiAr CQkJdmFsID0gUEFHRUZNVF80S184SyB8IFBBR0VGTVRfU0VDX1NFTF81MTI7Cj4gKwkJZWxzZQo+ ICsJCQl2YWwgPSBQQUdFRk1UXzJLXzRLOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBLQig4KToKPiAr CQlpZiAoY29uZi0+c3RlcF9zaXplID09IDUxMikKPiArCQkJdmFsID0gUEFHRUZNVF84S18xNksg fCBQQUdFRk1UX1NFQ19TRUxfNTEyOwo+ICsJCWVsc2UKPiArCQkJdmFsID0gUEFHRUZNVF80S184 SzsKPiArCQlicmVhazsKPiArCWNhc2UgS0IoMTYpOgo+ICsJCXZhbCA9IFBBR0VGTVRfOEtfMTZL Owo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlkZXZfZXJyKHNuZmktPmRldiwgImludmFs aWQgcGFnZSBsZW46ICVkXG4iLAo+ICsJCQkJbmFuZC0+bWVtb3JnLnBhZ2VzaXplKTsKPiArCQly ZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlzbmZpLT5mZG1fc2l6ZSA9IGVuZy0+ZmRtX3Np emU7Cj4gKwlzbmZpLT5mZG1fZWNjX3NpemUgPSBlbmctPmZkbV9lY2Nfc2l6ZTsKPiArCj4gKwl2 YWwgfD0gc25maS0+ZWNjLnNwYXJlX2lkeCA8PCBQQUdFRk1UX1NQQVJFX1NISUZUOwo+ICsJdmFs IHw9IHNuZmktPmZkbV9zaXplIDw8IFBBR0VGTVRfRkRNX1NISUZUOwo+ICsJdmFsIHw9IHNuZmkt PmZkbV9lY2Nfc2l6ZSA8PCBQQUdFRk1UX0ZETV9FQ0NfU0hJRlQ7Cj4gKwl3cml0ZWwodmFsLCBz bmZpLT5yZWdzICsgTkZJX1BBR0VGTVQpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IG10a19zbmZpX2VjY19wcmVwYXJlX2lvX3JlcShzdHJ1Y3QgbmFuZF9kZXZpY2Ug Km5hbmQsCj4gKwkJCQkJCXN0cnVjdCBuYW5kX3BhZ2VfaW9fcmVxICpyZXEpCj4gK3sKPiArCXN0 cnVjdCBuYW5kX2VjY19lbmdpbmVfb3BzICpvcHMgPSBtdGtfZWNjX2dldF9waXBlbGluZWRfb3Bz KCk7Cj4gKwlzdHJ1Y3QgbXRrX3NuZmkgKnNuZmkgPSBtdGtfbmFuZF90b19zcGkobmFuZCk7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCXNuZmktPmVjYy5lbmFibGVkID0gKHJlcS0+bW9kZSAhPSBNVERf T1BTX1JBVyk7CgpTaG91bGRuJ3QgeW91IGNoZWNrIGVjYy5lbmFibGVkIGJlZm9yZSBjYWxsaW5n IHByZXBhcmVfZm9yX2VjYyA/Cgo+ICsJcmV0ID0gbXRrX3NuZmlfcHJlcGFyZV9mb3JfZWNjKG5h bmQsIHNuZmkpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldHVybiBv cHMtPnByZXBhcmVfaW9fcmVxKG5hbmQsIHJlcSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXRr X3NuZmlfZWNjX2ZpbmlzaF9pb19yZXEoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kLAo+ICsJCQkJ CQlzdHJ1Y3QgbmFuZF9wYWdlX2lvX3JlcSAqcmVxKQo+ICt7Cj4gKwlzdHJ1Y3QgbmFuZF9lY2Nf ZW5naW5lX29wcyAqb3BzID0gbXRrX2VjY19nZXRfcGlwZWxpbmVkX29wcygpOwo+ICsJc3RydWN0 IG10a19lY2NfZW5naW5lICplbmcgPSBuYW5kLT5lY2MuY3R4LnByaXY7Cj4gKwlzdHJ1Y3QgbXRr X3NuZmkgKnNuZmkgPSBtdGtfbmFuZF90b19zcGkobmFuZCk7Cj4gKwo+ICsJaWYgKHNuZmktPmVj Yy5lbmFibGVkKSB7CgpJIGFtIGN1cnJlbnRseSBsb29raW5nIGF0IGEgYmV0dGVyIHdheSBvZiBr ZWVwaW5nIHRoaXMKaW5mb3JtYXRpb24sIHdoaWxlIGJlaW5nIHNhZmVyIGFnYWluc3QgY29uY3Vy cmVudCBhY2Nlc3Nlcy4gU28KZmFyIHBhcmFsbGVsIG9wZXJhdGlvbnMgYXJlIG5vdCBzdXBwb3J0 ZWQgc28gdGhpcyBpcyBzYWZlLCBidXQKd2UgbWlnaHQgaW1wcm92ZSB0aGUgY29yZSBpbiBhIGxp dHRsZSB3aGlsZSBhbmQgSSBkb24ndCB3YW50CnRoaXMgdG8gYmUgYW4gaXNzdWUuIE15IG5leHQg aXRlcmF0aW9uIG9uIHRoZSBNYWNyb25peCBlbmdpbmUgd2lsbApzb2x2ZSB0aGlzLgoKPiArCQll bmctPnJlYWRfZW1wdHkgPQo+ICsJCQlyZWFkbChzbmZpLT5yZWdzICsgTkZJX1NUQSkgJiBTVEFf RU1QX1BBR0U7Cj4gKwkJc25maS0+ZWNjLmVuYWJsZWQgPSBmYWxzZTsKPiArCX0KPiArCj4gKwly ZXR1cm4gb3BzLT5maW5pc2hfaW9fcmVxKG5hbmQsIHJlcSk7Cj4gK30KPiArCj4gK3N0YXRpYyBz dHJ1Y3QgbmFuZF9lY2NfZW5naW5lX29wcyBtdGtfc25maV9lY2NfZW5naW5lX3BpcGVsaW5lZF9v cHMgPSB7Cj4gKwkuaW5pdF9jdHggPSBtdGtfc25maV9lY2NfaW5pdF9jdHgsCj4gKwkuY2xlYW51 cF9jdHggPSBtdGtfc25maV9lY2NfY2xlYW51cF9jdHgsCj4gKwkucHJlcGFyZV9pb19yZXEgPSBt dGtfc25maV9lY2NfcHJlcGFyZV9pb19yZXEsCj4gKwkuZmluaXNoX2lvX3JlcSA9IG10a19zbmZp X2VjY19maW5pc2hfaW9fcmVxLAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBtdGtfc25maV9lY2Nf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiArCQkJCXN0cnVjdCBtdGtfc25m aSAqc25maSkKPiArewo+ICsJc3RydWN0IG5hbmRfZWNjX2VuZ2luZSAqZWNjZW5nOwo+ICsKPiAr CWlmICghbXRrX2VjY19nZXRfcGlwZWxpbmVkX29wcygpKQo+ICsJCXJldHVybiAtRU9QTk9UU1VQ UDsKPiArCj4gKwllY2NlbmcgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCplY2Nl bmcpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghZWNjZW5nKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsKPiArCWVjY2VuZy0+ZGV2ID0gJnBkZXYtPmRldjsKPiArCWVjY2VuZy0+b3BzID0gJm10a19z bmZpX2VjY19lbmdpbmVfcGlwZWxpbmVkX29wczsKPiArCj4gKwluYW5kX2VjY19yZWdpc3Rlcl9v bl9ob3N0X2h3X2VuZ2luZShlY2NlbmcpOwo+ICsJc25maS0+ZWNjLmVuZ2luZSA9IGVjY2VuZzsK PiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtbWVkaWF0ZWsgbWFpbGlu ZyBsaXN0CkxpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tZWRpYXRlawo=