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 1751CECAAD1 for ; Tue, 30 Aug 2022 14:44:19 +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=OYzwWc70ISz2hILHkicODkFwqmcMIkTLjrRZQ9v+LyU=; b=qSVa4izmKHoDwE EY+RSwDbjZahSZoi8Df0r5DFBXYTyo4A2Vjm+xzfzJCvNAPwG5q8Al/YktM50uM+KqTa2pvs7nEUc njRN/J2TdViP8qzMKee3ESkY5SgJAvTmZKb9JhetDj9+BoaEYyxbsPOj0pf1VUztZr9M0icq6tu5M X6Icw7rmvZTN6yutMKyLS421xbxGhFTo3KlZqLvyjErE5OPWgvBwarvGFvINrzekFlYOCDa4TKOxz jOXpsV0wWvTSoaMCg/HMaHkd4A+LFK2t8aaJmullkQduR0Y2K/dwN5k4NmZpECBPjeBZ/a5fFVUxA kxTF4AR8vpF+2PCFRX0A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT2SQ-00047H-DD; Tue, 30 Aug 2022 14:43:14 +0000 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT2SG-000438-KP for linux-arm-kernel@lists.infradead.org; Tue, 30 Aug 2022 14:43:08 +0000 Received: by mail-wm1-x32d.google.com with SMTP id n23-20020a7bc5d7000000b003a62f19b453so10081530wmk.3 for ; Tue, 30 Aug 2022 07:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc; bh=Zex3UDcuXi6on9TVwM9aa8TlelCGRWq6XcPdeEq0Btc=; b=AMX+w5tS+SI7L6d39SCRygk3KPxJxH6BBJXRVl/gqrEFC7ivS/r5KP1jpHPBvKjH7T 7ahUimipG2N+l16nzOe8oRFqMFHhrcnGTJ3WdX/dxvyzr88HZsJ/jXXfyGPWE2p8L3Je YJ91tE1bbbyICoy1qqWHuiJoYdxyncXmQdf7wCOWwGobh39l0/ySfaoWUY9Zn8D/aDjo ruRm0PR5E2uIKDWlwBu46BWP7kcbz+vqSKVJFLFRpGJEMRKXebT19ht9G4870f5lp4vI AAs7d0UyZB4XR7iRMI0dSJ9o5HhxcsB7WhzshdgBVCbAExwgvk1ySEy/7zeWDeZKf9Jl dPJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc; bh=Zex3UDcuXi6on9TVwM9aa8TlelCGRWq6XcPdeEq0Btc=; b=EQKctW3KDVXE0n3qScWQyRDOc5cUnJO7XLY4O9d/Ipv4t0vVWS+vxJuuupnicL/dNh M/czR1O/KfV1PZn9vezkCFKAJ/Plz6sadlpABxnZqDlhugR1l+aSaQG7EmPpyzUzoOWg tESoHOb2zup4l0MtsWUDLuNHLu76vCaZZCgnXEqrKN8IZtmseYwhwSTZdvhCS+ePTffY zl0AdK9+DV2Ka+hiwv1Qsh0rz2oJ9YLE2k4E7VUyhwgSesGunQKnAwvKrGlSpbRdzDaC 2Rvlg61KIFXxH9GuvO9Qwq76UtUTVhG+j4VueHBVhNEr3Ao8AjyjoDdVNWYcul3ofLQt JlYQ== X-Gm-Message-State: ACgBeo3ck8DdqC79nPmOZ18uXM4Q++VCSCiHYGJGkt/awBtBigP8Zxrn AHhIO+np3QmvnJlZ+lcwwFG26A== X-Google-Smtp-Source: AA6agR5Y5A1ghrND9UqxFtMV7ZK1rK+7C2ngQUMOERQtPwqV/s69rzzdclyo4heOVBJyhPFsqicIAg== X-Received: by 2002:a05:600c:3844:b0:3a6:19a:d980 with SMTP id s4-20020a05600c384400b003a6019ad980mr9964395wmr.65.1661870582325; Tue, 30 Aug 2022 07:43:02 -0700 (PDT) Received: from [192.168.86.238] (cpc90716-aztw32-2-0-cust825.18-1.cable.virginm.net. [86.26.103.58]) by smtp.googlemail.com with ESMTPSA id a22-20020a05600c225600b003a3442f1229sm12891999wmm.29.2022.08.30.07.43.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Aug 2022 07:43:01 -0700 (PDT) Message-ID: <815f8e22-3a23-ebdb-7476-14682d0b3287@linaro.org> Date: Tue, 30 Aug 2022 15:43:00 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v1 06/14] nvmem: core: introduce NVMEM layouts Content-Language: en-US To: Michael Walle Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Shawn Guo , Li Yang , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Frank Rowand , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, Ahmad Fatoum References: <20220825214423.903672-1-michael@walle.cc> <20220825214423.903672-7-michael@walle.cc> From: Srinivas Kandagatla In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220830_074304_685418_DC2B6AC9 X-CRM114-Status: GOOD ( 35.12 ) 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 CgpPbiAzMC8wOC8yMDIyIDE1OjI0LCBNaWNoYWVsIFdhbGxlIHdyb3RlOgo+IEFtIDIwMjItMDgt MzAgMTU6MzYsIHNjaHJpZWIgU3Jpbml2YXMgS2FuZGFnYXRsYToKPj4gT24gMjUvMDgvMjAyMiAy Mjo0NCwgTWljaGFlbCBXYWxsZSB3cm90ZToKPj4+IE5WTUVNIGxheW91dHMgYXJlIHVzZWQgdG8g Z2VuZXJhdGUgTlZNRU0gY2VsbHMgZHVyaW5nIHJ1bnRpbWUuIFRoaW5rIG9mCj4+PiBhbiBFRVBS T00gd2l0aCBhIHdlbGwtZGVmaW5lZCBjb25lbnQuIEZvciBub3csIHRoZSBjb250ZW50IGNhbiBi ZQo+Pj4gZGVzY3JpYmVkIGJ5IGEgZGV2aWNlIHRyZWUgb3IgYSBib2FyZCBmaWxlLiBCdXQgdGhp cyBvbmx5IHdvcmtzIGlmIHRoZQo+Pj4gb2Zmc2V0cyBhbmQgbGVuZ3RocyBhcmUgc3RhdGljIGFu ZCBkb24ndCBjaGFuZ2UuIE9uZSBjb3VsZCBhbHNvIGFyZ3VlCj4+PiB0aGF0IHB1dHRpbmcgdGhl IGxheW91dCBvZiB0aGUgRUVQUk9NIGluIHRoZSBkZXZpY2UgdHJlZSBpcyB0aGUgd3JvbmcKPj4+ IHBsYWNlLiBJbnN0ZWFkLCB0aGUgZGV2aWNlIHRyZWUgc2hvdWxkIGp1c3QgaGF2ZSBhIHNwZWNp ZmljIGNvbXBhdGlibGUKPj4+IHN0cmluZy4KPj4+Cj4+PiBSaWdodCBub3cgdGhlcmUgYXJlIHR3 byB1c2UgY2FzZXM6Cj4+PiDCoCAoMSkgVGhlIE5WTUVNIGNlbGwgbmVlZHMgc3BlY2lhbCBwcm9j ZXNzaW5nLiBFLmcuIGlmIGl0IG9ubHkgc3BlY2lmaWVzCj4+PiDCoMKgwqDCoMKgIGEgYmFzZSBN QUMgYWRkcmVzcyBvZmZzZXQgYW5kIHlvdSBuZWVkIHRvIGFkZCBhbiBvZmZzZXQsIG9yIGl0Cj4+ PiDCoMKgwqDCoMKgIG5lZWRzIHRvIHBhcnNlIGEgTUFDIGZyb20gQVNDSUkgZm9ybWF0IG9yIHNv bWUgcHJvcHJpZXRhcnkgZm9ybWF0Lgo+Pj4gwqDCoMKgwqDCoCAoUG9zdCBwcm9jZXNzaW5nIG9m IGNlbGxzIGlzIGFkZGVkIGluIGEgbGF0ZXIgY29tbWl0KS4KPj4+IMKgICgyKSB1LWJvb3QgZW52 aXJvbm1lbnQgcGFyc2luZy4gVGhlIGNlbGxzIGRvbid0IGhhdmUgYSBwYXJ0aWN1bGFyCj4+PiDC oMKgwqDCoMKgIG9mZnNldCBidXQgaXQgbmVlZHMgcGFyc2luZyB0aGUgY29udGVudCB0byBkZXRl cm1pbmUgdGhlIG9mZnNldHMKPj4+IMKgwqDCoMKgwqAgYW5kIGxlbmd0aC4KPj4+Cj4+PiBTaWdu ZWQtb2ZmLWJ5OiBNaWNoYWVsIFdhbGxlIDxtaWNoYWVsQHdhbGxlLmNjPgo+Pj4gLS0tCj4+PiDC oCBkcml2ZXJzL252bWVtL0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKysKPj4+IMKg IGRyaXZlcnMvbnZtZW0vTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgIHzCoCAxICsKPj4+IMKgIGRy aXZlcnMvbnZtZW0vY29yZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA1NyArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4+PiDCoCBkcml2ZXJzL252bWVtL2xheW91dHMvS2NvbmZp Z8KgIHzCoCA1ICsrKwo+Pj4gwqAgZHJpdmVycy9udm1lbS9sYXlvdXRzL01ha2VmaWxlIHzCoCA0 ICsrKwo+Pj4gwqAgaW5jbHVkZS9saW51eC9udm1lbS1wcm92aWRlci5oIHwgMzggKysrKysrKysr KysrKysrKysrKysrKysKPj4+IMKgIDYgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKykK Pj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL252bWVtL2xheW91dHMvS2NvbmZpZwo+ Pj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbnZtZW0vbGF5b3V0cy9NYWtlZmlsZQo+ Pgo+PiB1cGRhdGUgdG8gLi9Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvbnZtZW0ucnN0IHdvdWxk IGhlbHAgb3RoZXJzLgo+IAo+IFN1cmUuIERpZG4ndCBrbm93IGFib3V0IHRoYXQgb25lLgo+IAo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vS2NvbmZpZyBiL2RyaXZlcnMvbnZtZW0vS2Nv bmZpZwo+Pj4gaW5kZXggYmFiOGEyOWM5ODYxLi4xNDE2ODM3YjEwN2IgMTAwNjQ0Cj4+PiAtLS0g YS9kcml2ZXJzL252bWVtL0tjb25maWcKPj4+ICsrKyBiL2RyaXZlcnMvbnZtZW0vS2NvbmZpZwo+ Pj4gQEAgLTM1Nyw0ICszNTcsNiBAQCBjb25maWcgTlZNRU1fVV9CT09UX0VOVgo+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgIElmIGNvbXBpbGVkIGFzIG1vZHVsZSBpdCB3aWxsIGJlIGNhbGxlZCBudm1l bV91LWJvb3QtZW52Lgo+Pj4gwqAgK3NvdXJjZSAiZHJpdmVycy9udm1lbS9sYXlvdXRzL0tjb25m aWciCj4+PiArCj4+PiDCoCBlbmRpZgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vTWFr ZWZpbGUgYi9kcml2ZXJzL252bWVtL01ha2VmaWxlCj4+PiBpbmRleCAzOTlmOTk3MmQ0NWIuLmNk NWE1YmFhMmYzYSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvbnZtZW0vTWFrZWZpbGUKPj4+ICsr KyBiL2RyaXZlcnMvbnZtZW0vTWFrZWZpbGUKPj4+IEBAIC01LDYgKzUsNyBAQAo+Pj4gwqDCoMKg IG9iai0kKENPTkZJR19OVk1FTSnCoMKgwqDCoMKgwqDCoCArPSBudm1lbV9jb3JlLm8KPj4+IMKg IG52bWVtX2NvcmUtecKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOj0gY29yZS5vCj4+PiArb2JqLXnC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKz0gbGF5b3V0cy8KPj4+IMKgwqDCoCAjIERl dmljZXMKPj4+IMKgIG9iai0kKENPTkZJR19OVk1FTV9CQ01fT0NPVFApwqDCoMKgICs9IG52bWVt LWJjbS1vY290cC5vCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9jb3JlLmMgYi9kcml2 ZXJzL252bWVtL2NvcmUuYwo+Pj4gaW5kZXggM2RmZDE0OTM3NGE4Li41MzU3ZmMzNzg3MDAgMTAw NjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL252bWVtL2NvcmUuYwo+Pj4gKysrIGIvZHJpdmVycy9udm1l bS9jb3JlLmMKPj4+IEBAIC03NCw2ICs3NCw5IEBAIHN0YXRpYyBMSVNUX0hFQUQobnZtZW1fbG9v a3VwX2xpc3QpOwo+Pj4gwqDCoMKgIHN0YXRpYyBCTE9DS0lOR19OT1RJRklFUl9IRUFEKG52bWVt X25vdGlmaWVyKTsKPj4+IMKgICtzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG52bWVtX2xheW91dF9s b2NrKTsKPj4+ICtzdGF0aWMgTElTVF9IRUFEKG52bWVtX2xheW91dHMpOwo+Pj4gKwo+Pj4gwqAg c3RhdGljIGludCBfX252bWVtX3JlZ19yZWFkKHN0cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtLCB1 bnNpZ25lZCAKPj4+IGludCBvZmZzZXQsCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHZvaWQgKnZhbCwgc2l6ZV90IGJ5dGVzKQo+Pj4gwqAgewo+Pj4gQEAgLTc0NCw2ICs3 NDcsNTYgQEAgc3RhdGljIGludCBudm1lbV9hZGRfY2VsbHNfZnJvbV9vZihzdHJ1Y3QgCj4+PiBu dm1lbV9kZXZpY2UgKm52bWVtKQo+Pj4gwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+IMKgIH0KPj4+ IMKgICtpbnQgbnZtZW1fcmVnaXN0ZXJfbGF5b3V0KHN0cnVjdCBudm1lbV9sYXlvdXQgKmxheW91 dCkKPj4+ICt7Cj4+PiArwqDCoMKgIHNwaW5fbG9jaygmbnZtZW1fbGF5b3V0X2xvY2spOwo+Pj4g K8KgwqDCoCBsaXN0X2FkZCgmbGF5b3V0LT5ub2RlLCAmbnZtZW1fbGF5b3V0cyk7Cj4+PiArwqDC oMKgIHNwaW5fdW5sb2NrKCZudm1lbV9sYXlvdXRfbG9jayk7Cj4+PiArCj4+PiArwqDCoMKgIHJl dHVybiAwOwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MX0dQTChudm1lbV9yZWdpc3Rlcl9sYXlv dXQpOwo+Pgo+PiB3ZSBzaG91bGQgcHJvdmlkZSBudm1lbV91bnJlZ2lzdGVyX2xheW91dCB0b28s IHNvIHRoYXQgcHJvdmlkZXJzIGNhbgo+PiBhZGQgdGhlbSBpZiB0aGV5IGNhbiBpbiB0aGVyZSBy ZXNwZWN0aXZlIGRyaXZlcnMuCj4gCj4gQWN0dWFsbHksIHRoYXQgd2FzIHRoZSBpZGVhOyB0aGF0 IHlvdSBjYW4gaGF2ZSBsYXlvdXRzIG91dHNpZGUgb2YgbGF5b3V0cy8uCj4gSSBhbHNvIGhhZCBh IG52bWVtX3VucmVnaXN0ZXJfbGF5b3V0KCkgYnV0IHJlbW92ZWQgaXQgYmVjYXVzZSBpdCB3YXMg ZGVhZAo+IGNvZGUuIFdpbGwgcmUtYWRkIGl0IGFnYWluLgo+IAo+Pj4gKwo+Pj4gK3N0YXRpYyBz dHJ1Y3QgbnZtZW1fbGF5b3V0ICpudm1lbV9nZXRfY29tcGF0aWJsZV9sYXlvdXQoc3RydWN0IAo+ Pj4gZGV2aWNlX25vZGUgKm5wKQo+Pj4gK3sKPj4+ICvCoMKgwqAgc3RydWN0IG52bWVtX2xheW91 dCAqcCwgKnJldCA9IE5VTEw7Cj4+PiArCj4+PiArwqDCoMKgIHNwaW5fbG9jaygmbnZtZW1fbGF5 b3V0X2xvY2spOwo+Pj4gKwo+Pj4gK8KgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZudm1l bV9sYXlvdXRzLCBub2RlKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKG9mX21hdGNoX25vZGUo cC0+b2ZfbWF0Y2hfdGFibGUsIG5wKSkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 ID0gcDsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4gK8KgwqDCoMKgwqDC oMKgIH0KPj4+ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDCoCBzcGluX3VubG9jaygmbnZtZW1f bGF5b3V0X2xvY2spOwo+Pj4gKwo+Pj4gK8KgwqDCoCByZXR1cm4gcmV0Owo+Pj4gK30KPj4+ICsK Pj4+ICtzdGF0aWMgaW50IG52bWVtX2FkZF9jZWxsc19mcm9tX2xheW91dChzdHJ1Y3QgbnZtZW1f ZGV2aWNlICpudm1lbSkKPj4+ICt7Cj4+PiArwqDCoMKgIHN0cnVjdCBudm1lbV9sYXlvdXQgKmxh eW91dDsKPj4+ICsKPj4+ICvCoMKgwqAgbGF5b3V0ID0gbnZtZW1fZ2V0X2NvbXBhdGlibGVfbGF5 b3V0KG52bWVtLT5kZXYub2Zfbm9kZSk7Cj4+PiArwqDCoMKgIGlmIChsYXlvdXQpCj4+PiArwqDC oMKgwqDCoMKgwqAgbGF5b3V0LT5hZGRfY2VsbHMoJm52bWVtLT5kZXYsIG52bWVtLCBsYXlvdXQp Owo+Pgo+PiBhY2Nlc3MgdG8gYWRkX2NlbGxzIGNhbiBjcmFzaCBoZWFyIGFzIHdlIGRpZCBub3Qg Y2hlY2sgaXQgYmVmb3JlCj4+IGFkZGluZyBpbiB0byBsaXN0Lgo+PiBPcgo+PiB3ZSBjb3VsZCBy ZWxheCBhZGRfY2VsbHMgY2FsbGJhY2sgZm9yIHVzZWNhc2VzIGxpa2UgaW14LW9jdG9wLgo+IAo+ IGdvb2QgY2F0Y2gsIHdpbGwgdXNlIGxheW91dCAmJiBsYXlvdXQtPmFkZF9jZWxscy4KPiAKPj4+ ICsKPj4+ICvCoMKgwqAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK2NvbnN0IHZvaWQgKm52 bWVtX2xheW91dF9nZXRfbWF0Y2hfZGF0YShzdHJ1Y3QgbnZtZW1fZGV2aWNlICpudm1lbSwKPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbnZtZW1fbGF5 b3V0ICpsYXlvdXQpCj4+PiArewo+Pj4gK8KgwqDCoCBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk ICptYXRjaDsKPj4+ICsKPj4+ICvCoMKgwqAgbWF0Y2ggPSBvZl9tYXRjaF9ub2RlKGxheW91dC0+ b2ZfbWF0Y2hfdGFibGUsIG52bWVtLT5kZXYub2Zfbm9kZSk7Cj4+PiArCj4+PiArwqDCoMKgIHJl dHVybiBtYXRjaCA/IG1hdGNoLT5kYXRhIDogTlVMTDsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJP TF9HUEwobnZtZW1fbGF5b3V0X2dldF9tYXRjaF9kYXRhKTsKPj4+ICsKPj4+IMKgIC8qKgo+Pj4g wqDCoCAqIG52bWVtX3JlZ2lzdGVyKCkgLSBSZWdpc3RlciBhIG52bWVtIGRldmljZSBmb3IgZ2l2 ZW4gbnZtZW1fY29uZmlnLgo+Pj4gwqDCoCAqIEFsc28gY3JlYXRlcyBhIGJpbmFyeSBlbnRyeSBp biAKPj4+IC9zeXMvYnVzL252bWVtL2RldmljZXMvZGV2LW5hbWUvbnZtZW0KPj4+IEBAIC04NzIs NiArOTI1LDEwIEBAIHN0cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtX3JlZ2lzdGVyKGNvbnN0IHN0 cnVjdCAKPj4+IG52bWVtX2NvbmZpZyAqY29uZmlnKQo+Pj4gwqDCoMKgwqDCoCBpZiAocnZhbCkK Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9yZW1vdmVfY2VsbHM7Cj4+PiDCoCArwqDC oMKgIHJ2YWwgPSBudm1lbV9hZGRfY2VsbHNfZnJvbV9sYXlvdXQobnZtZW0pOwo+Pj4gK8KgwqDC oCBpZiAocnZhbCkKPj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9yZW1vdmVfY2VsbHM7Cj4+ PiArCj4+PiDCoMKgwqDCoMKgIGJsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oJm52bWVtX25v dGlmaWVyLCBOVk1FTV9BREQsIG52bWVtKTsKPj4+IMKgwqDCoMKgwqDCoMKgIHJldHVybiBudm1l bTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL2xheW91dHMvS2NvbmZpZyAKPj4+IGIv ZHJpdmVycy9udm1lbS9sYXlvdXRzL0tjb25maWcKPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ PiBpbmRleCAwMDAwMDAwMDAwMDAuLjlhZDM5MTFkMTYwNQo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4g KysrIGIvZHJpdmVycy9udm1lbS9sYXlvdXRzL0tjb25maWcKPj4+IEBAIC0wLDAgKzEsNSBAQAo+ Pj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPj4+ICsKPj4+ICttZW51ICJM YXlvdXQgVHlwZXMiCj4+PiArCj4+PiArZW5kbWVudQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bnZtZW0vbGF5b3V0cy9NYWtlZmlsZSAKPj4+IGIvZHJpdmVycy9udm1lbS9sYXlvdXRzL01ha2Vm aWxlCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi42ZmRi M2M2MGE0ZmEKPj4+IC0tLSAvZGV2L251bGwKPj4+ICsrKyBiL2RyaXZlcnMvbnZtZW0vbGF5b3V0 cy9NYWtlZmlsZQo+Pj4gQEAgLTAsMCArMSw0IEBACj4+PiArIyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAo+Pj4gKyMKPj4+ICsjIE1ha2VmaWxlIGZvciBudm1lbSBsYXlvdXRzLgo+ Pj4gKyMKPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmggCj4+ PiBiL2luY2x1ZGUvbGludXgvbnZtZW0tcHJvdmlkZXIuaAo+Pj4gaW5kZXggZTcxMDQwNDk1OWU3 Li4zMjM2ODU4NDFlOWYgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3Zp ZGVyLmgKPj4+ICsrKyBiL2luY2x1ZGUvbGludXgvbnZtZW0tcHJvdmlkZXIuaAo+Pj4gQEAgLTEy Nyw2ICsxMjcsMjggQEAgc3RydWN0IG52bWVtX2NlbGxfdGFibGUgewo+Pj4gwqDCoMKgwqDCoCBz dHJ1Y3QgbGlzdF9oZWFkwqDCoMKgIG5vZGU7Cj4+PiDCoCB9Owo+Pj4gwqAgKy8qKgo+Pj4gKyAq IHN0cnVjdCBudm1lbV9sYXlvdXQgLSBOVk1FTSBsYXlvdXQgZGVmaW5pdGlvbnMKPj4+ICsgKgo+ Pj4gKyAqIEBuYW1lOsKgwqDCoMKgwqDCoMKgIExheW91dCBuYW1lLgo+Pj4gKyAqIEBvZl9tYXRj aF90YWJsZTrCoMKgwqAgT3BlbiBmaXJtd2FyZSBtYXRjaCB0YWJsZS4KPj4+ICsgKiBAYWRkX2Nl bGxzOsKgwqDCoMKgwqDCoMKgIFdpbGwgYmUgY2FsbGVkIGlmIGEgbnZtZW0gZGV2aWNlIGlzIGZv dW5kIHdoaWNoCj4+PiArICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGhhcyB0aGlzIGxheW91dC4g VGhlIGZ1bmN0aW9uIHdpbGwgYWRkIGxheW91dAo+Pj4gKyAqwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzcGVjaWZpYyBjZWxscyB3aXRoIG52bWVtX2FkZF9vbmVfY2VsbCgpLgo+Pj4gKyAqIEBub2Rl OsKgwqDCoMKgwqDCoMKgIExpc3Qgbm9kZS4KPj4+ICsgKgo+Pj4gKyAqIEEgbnZtZW0gZGV2aWNl IGNhbiBob2xkIGEgd2VsbCBkZWZpbmVkIHN0cnVjdHVyZSB3aGljaCBjYW4ganVzdCBiZQo+Pj4g KyAqIGV2YWx1YXRlZCBkdXJpbmcgcnVudGltZS4gRm9yIGV4YW1wbGUgYSBUTFYgbGlzdCwgb3Ig YSBsaXN0IG9mIAo+Pj4gIm5hbWU9dmFsIgo+Pj4gKyAqIHBhaXJzLiBBIG52bWVtIGxheW91dCBj YW4gcGFyc2UgdGhlIG52bWVtIGRldmljZSBhbmQgYWRkIGFwcHJvcHJpYXRlCj4+PiArICogY2Vs bHMuCj4+PiArICovCj4+PiArc3RydWN0IG52bWVtX2xheW91dCB7Cj4+PiArwqDCoMKgIGNvbnN0 IGNoYXIgKm5hbWU7Cj4+PiArwqDCoMKgIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX21h dGNoX3RhYmxlOwo+Pgo+PiBsb29raW5nIGF0IHRoaXMsIEkgdGhpbmsgaXRzIGRvYWJsZSB0byBj b252ZXJ0IHRoZSBleGlzdGluZwo+PiBjZWxsX3Bvc3RfcHJvY2VzcyBjYWxsYmFjayB0byBsYXlv dXRzIGJ5IGFkZGluZyBhIGxheW91dCBzcGVjaWZpYwo+PiBjYWxsYmFjayBoZXJlLgo+IAo+IGNh biB5b3UgZWxhYm9yYXRlIG9uIHRoYXQ/CgpJZiB3ZSByZWxheCBhZGRfY2VsbHMgKyBhZGQgbnZt ZW1fdW5yZWdpc3Rlcl9sYXlvdXQoKSBhbmQgdXBkYXRlIHN0cnVjdCAKbnZtZW1fbGF5b3V0IHRv IGluY2x1ZGUgcG9zdF9wcm9jZXNzIGNhbGxiYWNrIGxpa2UKCnN0cnVjdCBudm1lbV9sYXlvdXQg ewoJY29uc3QgY2hhciAqbmFtZTsKCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX21hdGNo X3RhYmxlOwoJaW50ICgqYWRkX2NlbGxzKShzdHJ1Y3QgbnZtZW1fZGV2aWNlICpudm1lbSwgc3Ry dWN0IG52bWVtX2xheW91dCAqbGF5b3V0KTsKCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKCS8qIGRl ZmF1bHQgY2FsbGJhY2sgZm9yIGV2ZXJ5IGNlbGwgKi8KCW52bWVtX2NlbGxfcG9zdF9wcm9jZXNz X3QgcG9zdF9wcm9jZXNzOwp9OwoKdGhlbiB3ZSBjYW4gbW92ZSBpbXgtb2NvdHAgdG8gdGhpcyBs YXlvdXQgc3R5bGUgd2l0aG91dCBhZGRfY2VsbCAKY2FsbGJhY2ssIGFuZCBmaW5hbGx5IGdldCBy aWQgb2YgY2VsbF9wcm9jZXNzX2NhbGxiYWNrIGZyb20gYm90aCAKbnZtZW1fY29uZmlnIGFuZCBu dm1lbV9kZXZpY2UuCgpJZiBsYXlvdXQgc3BlY2lmaWMgcG9zdF9wcm9jZXNzIGNhbGxiYWNrIGlz IGF2YWlsYWJsZSBhbmQgY2VsbCBkb2VzIG5vdCAKaGF2ZSBhIGNhbGxiYWNrIHNldCB0aGVuIHdl IGNhbiBjYW4gYmUgZWl0aGVyIHVwZGF0ZWQgY2VsbCBwb3N0X3Byb2Nlc3MgCmNhbGxiYWNrIHdp dGggdGhpcyBvbmUgb3IgaW52b2tlIGxheW91dCBzcGVjaWZpYyBjYWxsYmFjayBkaXJlY3RseS4K CmRvZXMgdGhhdCBtYWtlIHNlbnNlPwoKCi0tc3JpbmkKCgo+IAo+IC1taWNoYWVsCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==