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 1EF35C433EF for ; Mon, 11 Apr 2022 02:45:28 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:CC:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4f68IUshuiBfFhOh1w13OwXRYPWk+fB3xjppLuIsjO0=; b=31dO9ZbBvsmXjX bsR1QIifThU9pI2421DAZopBrd3RPYGRtY54YMprFfJfwa8pwVWj9jMdPhIn932wh9N7veuRi/3x8 3UMr5ZoDEFSIthjoo5xm2RjYex5RoWtoW56Y9hM+DrLdLDKC5UeTQNMSZjJQBU+Cw7/Bvbho5eR3V qyIkrVVd8zvpAWiB6Q37ceoWPbDU9BanWxUcEpJEwsLcFRyebC2pI+4BltPEJoa6KMEWVHWzjypX8 yK1I8zdg3PhD3rCLT5hpZAjXjqteEbAmZX5bHanga5q7WLuAPP5v1AaXM0BPUk/JoP86snHk9JzB/ xcwaw/W3zCaP2pqbA6oA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ndk2J-006IvH-Ba; Mon, 11 Apr 2022 02:44:15 +0000 Received: from mail-sz.amlogic.com ([211.162.65.117]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ndk2B-006IsW-Cu; Mon, 11 Apr 2022 02:44:09 +0000 Received: from [10.28.39.106] (10.28.39.106) by mail-sz.amlogic.com (10.28.11.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 11 Apr 2022 10:44:05 +0800 Message-ID: <0435d1f5-af28-2a3a-b53c-d7557e3fe75f@amlogic.com> Date: Mon, 11 Apr 2022 10:44:05 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework Content-Language: en-US To: Neil Armstrong , Miquel Raynal , CC: Rob Herring , Richard Weinberger , Vignesh Raghavendra , Jerome Brunet , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , References: <20220402074921.13316-1-liang.yang@amlogic.com> <20220402074921.13316-2-liang.yang@amlogic.com> From: Liang Yang In-Reply-To: X-Originating-IP: [10.28.39.106] X-ClientProxiedBy: mail-sz.amlogic.com (10.28.11.5) To mail-sz.amlogic.com (10.28.11.5) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220410_194407_462954_1F0F1007 X-CRM114-Status: GOOD ( 21.60 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTmVpbCwKCgpPbiAyMDIyLzQvNCAyMDo0MCwgTmVpbCBBcm1zdHJvbmcgd3JvdGU6Cj4gWyBF WFRFUk5BTCBFTUFJTCBdCj4gCj4gSGksCj4gCj4gT24gMDIvMDQvMjAyMiAwOTo0OSwgTGlhbmcg WWFuZyB3cm90ZToKPj4gRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNsb2NrIGNvbnRyb2wg cmVnaXN0ZXIgbmFtZWQgCj4+ICdTRF9FTU1DX0NMT0NLJyB3aGljaCBpcwo+PiBkZWZpbmVkIGlu IEVNTUMgcG9ydCBpbnRlcm5hbGx5LiBiaXQwfjUgb2YgJ1NEX0VNTUNfQ0xPQ0snIGlzIHRoZSAK Pj4gZGl2aWRlciBhbmQKPj4gYml0Nn43IGlzIHRoZSBtdXggZm9yIGZpeCBwbGwgYW5kIHh0YWwu QSBjb21tb24gTU1DIGFuZCBOQU5EIHN1Yi1jbG9jayAKPj4gaGFzIGJlZW4KPj4gaW1wbGVtZW50 ZWQgYW5kIGNhbiBiZSB1c2VkIGJ5IHRoZSBlTU1DIGFuZCBOQU5EIGNvbnRyb2xsZXIgKHdoaWNo IGFyZSAKPj4gbXV0dWFsbHkKPj4gZXhjbHVzaXZlIGFueXdheSkuIExldCdzIHVzZSB0aGlzIG5l dyBjbG9jay4KPj4KPj4gU2lnbmVkLW9mZi1ieTogTGlhbmcgWWFuZyA8bGlhbmcueWFuZ0BhbWxv Z2ljLmNvbT4KPj4gLS0tCj4+IMKgIGRyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYyB8 IDg5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPj4gwqAgMSBmaWxlIGNoYW5nZWQs IDQyIGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIAo+PiBiL2RyaXZlcnMvbXRkL25hbmQvcmF3 L21lc29uX25hbmQuYwo+PiBpbmRleCBhYzNiZTkyODcyZDAuLjFiMWE5NDA3ZmIyZiAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jCj4+ICsrKyBiL2RyaXZl cnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+PiBAQCAtMTAsNiArMTAsNyBAQAo+PiDCoCAj aW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgv Y2xrLXByb3ZpZGVyLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9tdGQvcmF3bmFuZC5oPgo+PiDC oCAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvbWZkL3N5 c2Nvbi5oPgo+PiBAQCAtMTksNiArMjAsNyBAQAo+PiDCoCAjaW5jbHVkZSA8bGludXgvaW9wb2xs Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9vZi5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvb2Zf ZGV2aWNlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgo+PiDCoCAjaW5jbHVk ZSA8bGludXgvc2NoZWQvdGFza19zdGFjay5oPgo+PiDCoCAjZGVmaW5lIE5GQ19SRUdfQ01EwqDC oMKgwqDCoMKgwqAgMHgwMAo+PiBAQCAtMTA0LDYgKzEwNiw5IEBACj4+IMKgICNkZWZpbmUgUEVS X0lORk9fQllURcKgwqDCoMKgwqDCoMKgIDgKPj4gKyNkZWZpbmUgQ0xLX0RJVl9TSElGVMKgwqDC oMKgwqDCoMKgIDAKPj4gKyNkZWZpbmUgQ0xLX0RJVl9XSURUSMKgwqDCoMKgwqDCoMKgIDYKPj4g Kwo+PiDCoCBzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCB7Cj4+IMKgwqDCoMKgwqAgc3RydWN0 IGxpc3RfaGVhZCBub2RlOwo+PiDCoMKgwqDCoMKgIHN0cnVjdCBuYW5kX2NoaXAgbmFuZDsKPj4g QEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0cnVjdCBtZXNvbl9uZmMgewo+PiDCoMKgwqDCoMKgIHN0 cnVjdCBuYW5kX2NvbnRyb2xsZXIgY29udHJvbGxlcjsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgY2xr ICpjb3JlX2NsazsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+PiAtwqDC oMKgIHN0cnVjdCBjbGsgKnBoYXNlX3R4Owo+PiAtwqDCoMKgIHN0cnVjdCBjbGsgKnBoYXNlX3J4 Owo+PiArwqDCoMKgIHN0cnVjdCBjbGsgKm5hbmRfY2xrOwo+PiArwqDCoMKgIHN0cnVjdCBjbGtf ZGl2aWRlciBuYW5kX2RpdmlkZXI7Cj4+IMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBjbGtfcmF0 ZTsKPj4gwqDCoMKgwqDCoCB1MzIgYnVzX3RpbWluZzsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZGV2 aWNlICpkZXY7Cj4+IMKgwqDCoMKgwqAgdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsKPj4gLcKgwqDC oCBzdHJ1Y3QgcmVnbWFwICpyZWdfY2xrOwo+PiArwqDCoMKgIHZvaWQgX19pb21lbSAqc2RfZW1t Y19jbG9jazsKPiAKPiBUaGUgbmFtZSBjb3VsZCBzdGlsbCBiZSByZWdfY2xrLCBldmVuIGlmIG5v dCBhIHJlZ21hcCBhbnltb3JlLgoKb2ssIGkgd2lsbCBkbyBpdC4KPiAKPj4gwqDCoMKgwqDCoCBz dHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOwo+PiDCoMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hl YWQgY2hpcHM7Cj4+IMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IG1lc29uX25mY19kYXRhICpkYXRh Owo+PiBAQCAtMjM1LDcgKzI0MCw3IEBAIHN0YXRpYyB2b2lkIG1lc29uX25mY19zZWxlY3RfY2hp cChzdHJ1Y3QgbmFuZF9jaGlwIAo+PiAqbmFuZCwgaW50IGNoaXApCj4+IMKgwqDCoMKgwqAgbmZj LT50aW1pbmcudGJlcnNfbWF4ID0gbWVzb25fY2hpcC0+dGJlcnNfbWF4Owo+PiDCoMKgwqDCoMKg IGlmIChuZmMtPmNsa19yYXRlICE9IG1lc29uX2NoaXAtPmNsa19yYXRlKSB7Cj4+IC3CoMKgwqDC oMKgwqDCoCByZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5kZXZpY2VfY2xrLCBtZXNvbl9jaGlwLT5j bGtfcmF0ZSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5uYW5k X2NsaywgbWVzb25fY2hpcC0+Y2xrX3JhdGUpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJl dCkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKG5mYy0+ZGV2LCAiZmFp bGVkIHRvIHNldCBjbG9jayByYXRlXG4iKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuOwo+PiBAQCAtNDA2LDcgKzQxMSw2IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVl X3JiKHN0cnVjdCBtZXNvbl9uZmMgCj4+ICpuZmMsIGludCB0aW1lb3V0X21zKQo+PiDCoMKgwqDC oMKgIGNtZCA9IE5GQ19DTURfUkIgfCBORkNfQ01EX1JCX0lOVAo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgfCBuZmMtPnBhcmFtLmNoaXBfc2VsZWN0IHwgbmZjLT50aW1pbmcudGJlcnNfbWF4Owo+PiDC oMKgwqDCoMKgIHdyaXRlbChjbWQsIG5mYy0+cmVnX2Jhc2UgKyBORkNfUkVHX0NNRCk7Cj4+IC0K Pj4gwqDCoMKgwqDCoCByZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29t cGxldGlvbiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBtc2Vjc190b19qaWZmaWVzKHRpbWVvdXRfbXMpKTsKPj4gwqDCoMKgwqDCoCBpZiAocmV0ID09 IDApCj4+IEBAIC05ODUsOSArOTg5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRkX29vYmxh eW91dF9vcHMgCj4+IG1lc29uX29vYmxheW91dF9vcHMgPSB7Cj4+IMKgwqDCoMKgwqAgLmZyZWUg PSBtZXNvbl9vb2JsYXlvdXRfZnJlZSwKPj4gwqAgfTsKPj4gK3N0cnVjdCBjbGtfcGFyZW50X2Rh dGEgbmZjX2RpdmlkZXJfcGFyZW50X2RhdGFbMV07Cj4gCj4gVGhpcyBzaG91bGQgYmUgaW4gdGhl IG1lc29uX25mY19jbGtfaW5pdCgpIGZ1bmN0aW9uLCBub3QgZ2xvYmFsCgpvay4KCj4gCj4+IMKg IHN0YXRpYyBpbnQgbWVzb25fbmZjX2Nsa19pbml0KHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPj4g wqAgewo+PiDCoMKgwqDCoMKgIGludCByZXQ7Cj4+ICvCoMKgwqAgc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdCA9IHswfTsKPj4gwqDCoMKgwqDCoCAvKiByZXF1ZXN0IGNvcmUgY2xvY2sgKi8KPj4g wqDCoMKgwqDCoCBuZmMtPmNvcmVfY2xrID0gZGV2bV9jbGtfZ2V0KG5mYy0+ZGV2LCAiY29yZSIp Owo+PiBAQCAtMTAwMiwyMSArMTAwOCwyNiBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5p dChzdHJ1Y3QgbWVzb25fbmZjIAo+PiAqbmZjKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJu IFBUUl9FUlIobmZjLT5kZXZpY2VfY2xrKTsKPj4gwqDCoMKgwqDCoCB9Cj4+IC3CoMKgwqAgbmZj LT5waGFzZV90eCA9IGRldm1fY2xrX2dldChuZmMtPmRldiwgInR4Iik7Cj4+IC3CoMKgwqAgaWYg KElTX0VSUihuZmMtPnBoYXNlX3R4KSkgewo+PiAtwqDCoMKgwqDCoMKgwqAgZGV2X2VycihuZmMt PmRldiwgImZhaWxlZCB0byBnZXQgVFggY2xrXG4iKTsKPj4gLcKgwqDCoMKgwqDCoMKgIHJldHVy biBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+PiAtwqDCoMKgIH0KPj4gLQo+PiAtwqDCoMKgIG5m Yy0+cGhhc2VfcnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+PiAtwqDCoMKgIGlm IChJU19FUlIobmZjLT5waGFzZV9yeCkpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGRldl9lcnIobmZj LT5kZXYsICJmYWlsZWQgdG8gZ2V0IFJYIGNsa1xuIik7Cj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1 cm4gUFRSX0VSUihuZmMtPnBoYXNlX3J4KTsKPj4gLcKgwqDCoCB9Cj4+ICvCoMKgwqAgaW5pdC5u YW1lID0gZGV2bV9rc3RyZHVwKG5mYy0+ZGV2LCAibmZjI2RpdiIsIEdGUF9LRVJORUwpOwo+IAo+ IG5hbWUgPSBkZXZtX2thc3ByaW50ZihuZmMtPmRldiwgR0ZQX0tFUk5FTCwgIiVzI2RpdiIsIGRl dl9uYW1lKGRldikpOwo+IAo+IHdvdWxkIGJlIGJldHRlci4KCm9rLCB0aGFua3MuCgo+IAo+PiAr wqDCoMKgIGluaXQub3BzID0gJmNsa19kaXZpZGVyX29wczsKPj4gK8KgwqDCoCBuZmNfZGl2aWRl cl9wYXJlbnRfZGF0YVswXS5md19uYW1lID0gImRldmljZSI7Cj4+ICvCoMKgwqAgaW5pdC5wYXJl bnRfZGF0YSA9IG5mY19kaXZpZGVyX3BhcmVudF9kYXRhOwo+PiArwqDCoMKgIGluaXQubnVtX3Bh cmVudHMgPSAxOwo+PiArwqDCoMKgIG5mYy0+bmFuZF9kaXZpZGVyLnJlZyA9IG5mYy0+c2RfZW1t Y19jbG9jazsKPj4gK8KgwqDCoCBuZmMtPm5hbmRfZGl2aWRlci5zaGlmdCA9IENMS19ESVZfU0hJ RlQ7Cj4+ICvCoMKgwqAgbmZjLT5uYW5kX2RpdmlkZXIud2lkdGggPSBDTEtfRElWX1dJRFRIOwo+ PiArwqDCoMKgIG5mYy0+bmFuZF9kaXZpZGVyLmh3LmluaXQgPSAmaW5pdDsKPj4gK8KgwqDCoCBu ZmMtPm5hbmRfZGl2aWRlci5mbGFncyA9IENMS19ESVZJREVSX09ORV9CQVNFRCB8Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIENMS19ESVZJREVSX1JPVU5EX0NMT1NFU1Qg fAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBDTEtfRElWSURFUl9BTExP V19aRVJPOwo+PiArCj4+ICvCoMKgwqAgbmZjLT5uYW5kX2NsayA9IGRldm1fY2xrX3JlZ2lzdGVy KG5mYy0+ZGV2LCAmbmZjLT5uYW5kX2RpdmlkZXIuaHcpOwo+PiArwqDCoMKgIGlmIChJU19FUlIo bmZjLT5uYW5kX2NsaykpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gUFRSX0VSUihuZmMtPm5h bmRfY2xrKTsKPj4gwqDCoMKgwqDCoCAvKiBpbml0IFNEX0VNTUNfQ0xPQ0sgdG8gc2FuZSBkZWZh dWx0cyB3L21pbiBjbG9jayByYXRlICovCj4+IC3CoMKgwqAgcmVnbWFwX3VwZGF0ZV9iaXRzKG5m Yy0+cmVnX2NsaywKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMCwgQ0xLX1NFTEVD VF9OQU5ELCBDTEtfU0VMRUNUX05BTkQpOwo+PiArwqDCoMKgIHdyaXRlbChDTEtfU0VMRUNUX05B TkQgfCByZWFkbChuZmMtPnNkX2VtbWNfY2xvY2spLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAg bmZjLT5zZF9lbW1jX2Nsb2NrKTsKPj4gwqDCoMKgwqDCoCByZXQgPSBjbGtfcHJlcGFyZV9lbmFi bGUobmZjLT5jb3JlX2Nsayk7Cj4+IMKgwqDCoMKgwqAgaWYgKHJldCkgewo+PiBAQCAtMTAzMCwy OSArMTA0MSwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVzb25f bmZjIAo+PiAqbmZjKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJfZGV2aWNlX2NsazsK Pj4gwqDCoMKgwqDCoCB9Cj4+IC3CoMKgwqAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG5mYy0+ cGhhc2VfdHgpOwo+PiArwqDCoMKgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPm5hbmRf Y2xrKTsKPj4gwqDCoMKgwqDCoCBpZiAocmV0KSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBkZXZfZXJy KG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBUWCBjbG9ja1xuIik7Cj4+IC3CoMKgwqDCoMKg wqDCoCBnb3RvIGVycl9waGFzZV90eDsKPj4gK8KgwqDCoMKgwqDCoMKgIGRldl9lcnIobmZjLT5k ZXYsICJwcmUgZW5hYmxlIE5GQyBkaXZpZGVyIGZhaWxcbiIpOwo+PiArwqDCoMKgwqDCoMKgwqAg Z290byBlcnJfbmFuZF9jbGs7Cj4+IMKgwqDCoMKgwqAgfQo+PiAtwqDCoMKgIHJldCA9IGNsa19w cmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPj4gLcKgwqDCoCBpZiAocmV0KSB7Cj4+IC3C oMKgwqDCoMKgwqDCoCBkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBSWCBjbG9j a1xuIik7Cj4+IC3CoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9waGFzZV9yeDsKPj4gLcKgwqDCoCB9 Cj4+IC0KPj4gLcKgwqDCoCByZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5kZXZpY2VfY2xrLCAyNDAw MDAwMCk7Cj4+ICvCoMKgwqAgcmV0ID0gY2xrX3NldF9yYXRlKG5mYy0+bmFuZF9jbGssIDI0MDAw MDAwKTsKPj4gwqDCoMKgwqDCoCBpZiAocmV0KQo+PiAtwqDCoMKgwqDCoMKgwqAgZ290byBlcnJf ZGlzYWJsZV9yeDsKPj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gZXJyX2Rpc2FibGVfY2xrOwo+PiDC oMKgwqDCoMKgIHJldHVybiAwOwo+PiAtZXJyX2Rpc2FibGVfcng6Cj4+IC3CoMKgwqAgY2xrX2Rp c2FibGVfdW5wcmVwYXJlKG5mYy0+cGhhc2VfcngpOwo+PiAtZXJyX3BoYXNlX3J4Ogo+PiAtwqDC oMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3R4KTsKPj4gLWVycl9waGFzZV90 eDoKPj4gK2Vycl9kaXNhYmxlX2NsazoKPj4gK8KgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUo bmZjLT5uYW5kX2Nsayk7Cj4+ICtlcnJfbmFuZF9jbGs6Cj4+IMKgwqDCoMKgwqAgY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKG5mYy0+ZGV2aWNlX2Nsayk7Cj4+IMKgIGVycl9kZXZpY2VfY2xrOgo+PiDC oMKgwqDCoMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmNvcmVfY2xrKTsKPj4gQEAgLTEw NjEsOCArMTA2NCw3IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Nsa19pbml0KHN0cnVjdCBtZXNv bl9uZmMgCj4+ICpuZmMpCj4+IMKgIHN0YXRpYyB2b2lkIG1lc29uX25mY19kaXNhYmxlX2Nsayhz dHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4+IMKgIHsKPj4gLcKgwqDCoCBjbGtfZGlzYWJsZV91bnBy ZXBhcmUobmZjLT5waGFzZV9yeCk7Cj4+IC3CoMKgwqAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5m Yy0+cGhhc2VfdHgpOwo+PiArwqDCoMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPm5hbmRf Y2xrKTsKPj4gwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5kZXZpY2VfY2xr KTsKPj4gwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5jb3JlX2Nsayk7Cj4+ IMKgIH0KPj4gQEAgLTEzNzQsNyArMTM3Niw2IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3Byb2Jl KHN0cnVjdCAKPj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAg c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgbWVz b25fbmZjICpuZmM7Cj4+IC3CoMKgwqAgc3RydWN0IHJlc291cmNlICpyZXM7Cj4+IMKgwqDCoMKg wqAgaW50IHJldCwgaXJxOwo+PiDCoMKgwqDCoMKgIG5mYyA9IGRldm1fa3phbGxvYyhkZXYsIHNp emVvZigqbmZjKSwgR0ZQX0tFUk5FTCk7Cj4+IEBAIC0xMzg4LDIxICsxMzg5LDE1IEBAIHN0YXRp YyBpbnQgbWVzb25fbmZjX3Byb2JlKHN0cnVjdCAKPj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ PiDCoMKgwqDCoMKgIG5hbmRfY29udHJvbGxlcl9pbml0KCZuZmMtPmNvbnRyb2xsZXIpOwo+PiDC oMKgwqDCoMKgIElOSVRfTElTVF9IRUFEKCZuZmMtPmNoaXBzKTsKPj4gwqDCoMKgwqDCoCBpbml0 X2NvbXBsZXRpb24oJm5mYy0+Y29tcGxldGlvbik7Cj4+IC0KPj4gwqDCoMKgwqDCoCBuZmMtPmRl diA9IGRldjsKPj4gLcKgwqDCoCByZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9S RVNPVVJDRV9NRU0sIDApOwo+PiAtwqDCoMKgIG5mYy0+cmVnX2Jhc2UgPSBkZXZtX2lvcmVtYXBf cmVzb3VyY2UoZGV2LCByZXMpOwo+PiArwqDCoMKgIG5mYy0+cmVnX2Jhc2UgPSBkZXZtX3BsYXRm b3JtX2lvcmVtYXBfcmVzb3VyY2VfYnluYW1lKHBkZXYsICJuZmMiKTsKPj4gwqDCoMKgwqDCoCBp ZiAoSVNfRVJSKG5mYy0+cmVnX2Jhc2UpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIFBU Ul9FUlIobmZjLT5yZWdfYmFzZSk7Cj4+IC3CoMKgwqAgbmZjLT5yZWdfY2xrID0KPj4gLcKgwqDC oMKgwqDCoMKgIHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2LT5vZl9ub2RlLAo+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiYW1sb2dp YyxtbWMtc3lzY29uIik7Cj4+IC3CoMKgwqAgaWYgKElTX0VSUihuZmMtPnJlZ19jbGspKSB7Cj4+ IC3CoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBsb29rdXAgY2xvY2sgYmFz ZVxuIik7Cj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19jbGspOwo+ PiAtwqDCoMKgIH0KPj4gK8KgwqDCoCBuZmMtPnNkX2VtbWNfY2xvY2sgPSBkZXZtX3BsYXRmb3Jt X2lvcmVtYXBfcmVzb3VyY2VfYnluYW1lKHBkZXYsIAo+PiAiZW1tYyIpOwo+PiArwqDCoMKgIGlm IChJU19FUlIobmZjLT5zZF9lbW1jX2Nsb2NrKSkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBQ VFJfRVJSKG5mYy0+c2RfZW1tY19jbG9jayk7Cj4+IMKgwqDCoMKgwqAgaXJxID0gcGxhdGZvcm1f Z2V0X2lycShwZGV2LCAwKTsKPj4gwqDCoMKgwqDCoCBpZiAoaXJxIDwgMCkKPiAKPiBUaGFua3Ms Cj4gTmVpbAo+IAo+IC4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK