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 41697C46CA2 for ; Tue, 19 Dec 2023 17:41:34 +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:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=TLx6IrCdS8PP3TBIZzwW5C0aa5pkM8VZoW7KC0KBGSc=; b=Ef97tsdcDUIc8V +56MRo8d+y977tZDvptusk2R7AGdPs4e33Fwpax4EEVt04IUKVtgFWPlTPP7g1WbU889oT4X0ooOf NUB/62HPOiaYsDqEAh97Q3bX1rh2LPg23xg4fZeJm1akS+8vF3ljmmfuPBQjLgOaaXSncAPL7InU9 hhX2FQ/JkFh/OMoTS+qJfJgjKfLKvW430SaX2Arv5t0dXIiTREAvQllbHzygOgJTJaoj3whPbvfkR dDx3aqZEVaYjNikaMtjV5PoKqKsAed+vYew8Vh3kkPIHalZWB4H9M7cUECy9gtZaVmPmiKhVgInw3 KOfTqW50/jbbPyPgEREg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rFe5Z-00Ez4H-33; Tue, 19 Dec 2023 17:41:05 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rFe5J-00Eypk-1X; Tue, 19 Dec 2023 17:40:51 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a2370535060so293885966b.1; Tue, 19 Dec 2023 09:40:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703007646; x=1703612446; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h6I0LaF/FwsE9y8VwBtVa8qJgT7A2jlM6idtIufP+ic=; b=hNG6lfJ3ntOdrx+ZEyN82Dr2Okd8AuUsFTpGZeS9dxexq0cXK9ZflG9knb+rnVyk0V t56S0uGXuu6xf9Bvr6mJu+K5IvcuZj4qsz6DQA+4dSFl6y2IRkpOrFMST/huNmVunI7s nLVZ+/Z0Xn3XM4EakK6X2YMqPiwtdpjnqafHyo8W1X2Xs31IZb+JwGcMxsHNOq4zRCYV wD8eSjkc1hatq8UUQpJBCXrlCvyXF07ZQoiHMxf087gZ1M2VNbkKpt1FIe7++jpL+qEF LrsOv91Zh9vRgwQ9hXrzEzlBv9lUkGl1Q5d1Gy9l9/PMqFBu0SO+SLnaqiLjRmRJx1RF gaCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703007646; x=1703612446; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h6I0LaF/FwsE9y8VwBtVa8qJgT7A2jlM6idtIufP+ic=; b=UK8CkBE+KZpZPT4DLehztgWGkAXTQm+ZM2yGKUNGZKm8e2QTLcQi6KtP52z9gI0gaA KFj5JEx+stDQrihWCzJFrjZbQ+AsiraGCwL6gXtrNIyu2tj0sEeV3cgBV+Lf4KC/Gzq0 ypqqubBmey5JOsSoll9d081oe7q5qzQcMef8la7929rKhlqGGHXOahMDZcy+1kIzJKyW 6byeu/HkDa+Fcr96DfsXcVPbHixbywjnN2AsZpOVtB6yWEcllA9uGt6lqWJau5Reb3Kr QADpZJvSGnoI/OMbcJOr6+eheQzpfqttNwzLJiqZz7n6yc0bhBUoZAHb9CvcpHUK3N3s Qojw== X-Gm-Message-State: AOJu0Yw4CCVO7vNYdu9LC+C7RCV8KAdefsJa9vjTj8C/apJ8h3LqIfMY C9tKHI/dDjwbLNt5E9a+5xg= X-Google-Smtp-Source: AGHT+IGCHZB0pkUk5guI9W3f6GTqwJ9fX18+7+/nitUBFH1nMjXlYRSNfKd4QMktkto2oPUcnXh40A== X-Received: by 2002:a17:906:8459:b0:a23:62fd:e2f6 with SMTP id e25-20020a170906845900b00a2362fde2f6mr1278856ejy.30.1703007645592; Tue, 19 Dec 2023 09:40:45 -0800 (PST) Received: from localhost.lan (031011218106.poznan.vectranet.pl. [31.11.218.106]) by smtp.gmail.com with ESMTPSA id tx27-20020a1709078e9b00b00a1c85124b08sm15834840ejc.94.2023.12.19.09.40.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Dec 2023 09:40:45 -0800 (PST) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: Srinivas Kandagatla , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Greg Kroah-Hartman , Michael Walle , Miquel Raynal , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, u-boot@lists.denx.de, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH V2 5/5] nvmem: layouts: add U-Boot env layout Date: Tue, 19 Dec 2023 18:40:25 +0100 Message-Id: <20231219174025.15228-5-zajec5@gmail.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20231219174025.15228-1-zajec5@gmail.com> References: <20231219174025.15228-1-zajec5@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231219_094049_522648_F08585B1 X-CRM114-Status: GOOD ( 30.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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUmFmYcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgoKVGhpcyBwYXRjaCBtb3Zl cyBhbGwgZ2VuZXJpYyAoTlZNRU0gZGV2aWNlcyBpbmRlcGVuZGVudCkgY29kZSBmcm9tIE5WTUVN CmRldmljZSBkcml2ZXIgdG8gTlZNRU0gbGF5b3V0IGRyaXZlci4gVGhlbiBpdCBhZGRzIGEgc2lt cGxlIE5WTUVNIGxheW91dApjb2RlIG9uIHRvcCBvZiBpdC4KClRoYW5rcyB0byBwcm9wZXIgbGF5 b3V0IGl0J3MgcG9zc2libGUgdG8gc3VwcG9ydCBVLUJvb3QgZW52IGRhdGEgc3RvcmVkCm9uIGFu eSBraW5kIG9mIE5WTUVNIGRldmljZS4KCkZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGgg b2xkIERUIGJpbmRpbmdzIHdlIG5lZWQgdG8ga2VlcCBvbGQKTlZNRU0gZGV2aWNlIGRyaXZlciBm dW5jdGlvbmFsLiBUbyBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uIGEgcGFyc2luZwpmdW5jdGlvbiBp cyBleHBvcnRlZCBhbmQgcmV1c2VkIGluIGl0LgoKU2lnbmVkLW9mZi1ieTogUmFmYcWCIE1pxYJl Y2tpIDxyYWZhbEBtaWxlY2tpLnBsPgotLS0KVjI6IFN1cHBvcnQgbmV3IGNvbXBhdGlibGVzICYg dXNlIGRldmljZV9nZXRfbWF0Y2hfZGF0YSgpIGhlbHBlcgoKSU1QT1JUQU5UOgpUaGlzIGlzIGJh c2VkIG9uIHRvcCBvZiB0aGU6CltQQVRDSCB2Ni44IDEvMl0gbnZtZW06IGxheW91dHM6IHJlZmFj dG9yIC5hZGRfY2VsbHMoKSBjYWxsYmFjayBhcmd1bWVudHMKCiBNQUlOVEFJTkVSUyAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvbnZtZW0vS2NvbmZpZyAgICAgICAgICAg ICAgfCAgIDMgKy0KIGRyaXZlcnMvbnZtZW0vbGF5b3V0cy9LY29uZmlnICAgICAgfCAgMTEgKysK IGRyaXZlcnMvbnZtZW0vbGF5b3V0cy9NYWtlZmlsZSAgICAgfCAgIDEgKwogZHJpdmVycy9udm1l bS9sYXlvdXRzL3UtYm9vdC1lbnYuYyB8IDIwNCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogZHJpdmVycy9udm1lbS9sYXlvdXRzL3UtYm9vdC1lbnYuaCB8ICAxNSArKysKIGRyaXZlcnMv bnZtZW0vdS1ib290LWVudi5jICAgICAgICAgfCAxNTggKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQog NyBmaWxlcyBjaGFuZ2VkLCAyMzUgaW5zZXJ0aW9ucygrKSwgMTU4IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbnZtZW0vbGF5b3V0cy91LWJvb3QtZW52LmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL252bWVtL2xheW91dHMvdS1ib290LWVudi5oCgpkaWZmIC0t Z2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCBiNTg5MjE4NjA1YjQuLjFmN2U2 ZDc0Y2Q1MSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTIy MjgyLDYgKzIyMjgyLDcgQEAgVS1CT09UIEVOVklST05NRU5UIFZBUklBQkxFUwogTToJUmFmYcWC IE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL252bWVtL3UtYm9vdCxlbnYueWFtbAorRjoJZHJpdmVy cy9udm1lbS9sYXlvdXRzL3UtYm9vdC1lbnYuYwogRjoJZHJpdmVycy9udm1lbS91LWJvb3QtZW52 LmMKIAogVUFDQ0UgQUNDRUxFUkFUT1IgRlJBTUVXT1JLCmRpZmYgLS1naXQgYS9kcml2ZXJzL252 bWVtL0tjb25maWcgYi9kcml2ZXJzL252bWVtL0tjb25maWcKaW5kZXggMjgzMTM0NDk4ZmJjLi5k MmMzODRmNTgwMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZtZW0vS2NvbmZpZworKysgYi9kcml2 ZXJzL252bWVtL0tjb25maWcKQEAgLTM2Myw4ICszNjMsNyBAQCBjb25maWcgTlZNRU1fU1VOWElf U0lECiBjb25maWcgTlZNRU1fVV9CT09UX0VOVgogCXRyaXN0YXRlICJVLUJvb3QgZW52aXJvbm1l bnQgdmFyaWFibGVzIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBPRiAmJiBNVEQKLQlzZWxlY3QgQ1JD MzIKLQlzZWxlY3QgR0VORVJJQ19ORVRfVVRJTFMKKwlzZWxlY3QgTlZNRU1fTEFZT1VUX1VfQk9P VF9FTlYKIAloZWxwCiAJICBVLUJvb3Qgc3RvcmVzIGl0cyBzZXR1cCBhcyBlbnZpcm9ubWVudCB2 YXJpYWJsZXMuIFRoaXMgZHJpdmVyIGFkZHMKIAkgIHN1cHBvcnQgZm9yIHZlcmlmeWluZyAmIGV4 cG9ydGluZyBzdWNoIGRhdGEuIEl0IGFsc28gZXhwb3NlcyB2YXJpYWJsZXMKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbnZtZW0vbGF5b3V0cy9LY29uZmlnIGIvZHJpdmVycy9udm1lbS9sYXlvdXRzL0tj b25maWcKaW5kZXggOWM2ZTY3MmZjMzUwLi41ZTU4NmRmZWJlNDcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbnZtZW0vbGF5b3V0cy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbnZtZW0vbGF5b3V0cy9LY29u ZmlnCkBAIC0yNiw2ICsyNiwxNyBAQCBjb25maWcgTlZNRU1fTEFZT1VUX09OSUVfVExWCiAKIAkg IElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBOVk1FTV9MQVlPVVRfVV9CT09UX0VOVgorCXRy aXN0YXRlICJVLUJvb3QgZW52aXJvbm1lbnQgdmFyaWFibGVzIGxheW91dCIKKwlzZWxlY3QgQ1JD MzIKKwlzZWxlY3QgR0VORVJJQ19ORVRfVVRJTFMKKwloZWxwCisJICBVLUJvb3Qgc3RvcmVzIGl0 cyBzZXR1cCBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoaXMgZHJpdmVyIGFkZHMKKwkgIHN1 cHBvcnQgZm9yIHZlcmlmeWluZyAmIGV4cG9ydGluZyBzdWNoIGRhdGEuIEl0IGFsc28gZXhwb3Nl cyB2YXJpYWJsZXMKKwkgIGFzIE5WTUVNIGNlbGxzIHNvIHRoZXkgY2FuIGJlIHJlZmVyZW5jZWQg Ynkgb3RoZXIgZHJpdmVycy4KKworCSAgSWYgdW5zdXJlLCBzYXkgTi4KKwogZW5kbWVudQogCiBl bmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9sYXlvdXRzL01ha2VmaWxlIGIvZHJpdmVy cy9udm1lbS9sYXlvdXRzL01ha2VmaWxlCmluZGV4IDI5NzRiZDdkMzNlZC4uNDk0MGM5ZGIwNjY1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWVtL2xheW91dHMvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9udm1lbS9sYXlvdXRzL01ha2VmaWxlCkBAIC01LDMgKzUsNCBAQAogCiBvYmotJChDT05GSUdf TlZNRU1fTEFZT1VUX1NMMjhfVlBEKSArPSBzbDI4dnBkLm8KIG9iai0kKENPTkZJR19OVk1FTV9M QVlPVVRfT05JRV9UTFYpICs9IG9uaWUtdGx2Lm8KK29iai0kKENPTkZJR19OVk1FTV9MQVlPVVRf VV9CT09UX0VOVikgKz0gdS1ib290LWVudi5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL2xh eW91dHMvdS1ib290LWVudi5jIGIvZHJpdmVycy9udm1lbS9sYXlvdXRzL3UtYm9vdC1lbnYuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRjZDJmZmVkNTAzYwotLS0g L2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbnZtZW0vbGF5b3V0cy91LWJvb3QtZW52LmMKQEAgLTAs MCArMSwyMDQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8q CisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgLSAyMDIzIFJhZmHFgiBNacWCZWNraSA8cmFmYWxAbWls ZWNraS5wbD4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY3JjMzIuaD4KKyNpbmNsdWRlIDxsaW51 eC9ldGhlcmRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgorI2luY2x1ZGUgPGxp bnV4L2lmX2V0aGVyLmg+CisjaW5jbHVkZSA8bGludXgvbnZtZW0tY29uc3VtZXIuaD4KKyNpbmNs dWRlIDxsaW51eC9udm1lbS1wcm92aWRlci5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5j bHVkZSA8bGludXgvc2xhYi5oPgorCisjaW5jbHVkZSAidS1ib290LWVudi5oIgorCitzdHJ1Y3Qg dV9ib290X2Vudl9pbWFnZV9zaW5nbGUgeworCV9fbGUzMiBjcmMzMjsKKwl1aW50OF90IGRhdGFb XTsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCB1X2Jvb3RfZW52X2ltYWdlX3JlZHVuZGFudCB7CisJ X19sZTMyIGNyYzMyOworCXU4IG1hcms7CisJdWludDhfdCBkYXRhW107Cit9IF9fcGFja2VkOwor CitzdHJ1Y3QgdV9ib290X2Vudl9pbWFnZV9icm9hZGNvbSB7CisJX19sZTMyIG1hZ2ljOworCV9f bGUzMiBsZW47CisJX19sZTMyIGNyYzMyOworCURFQ0xBUkVfRkxFWF9BUlJBWSh1aW50OF90LCBk YXRhKTsKK30gX19wYWNrZWQ7CisKK3N0YXRpYyBpbnQgdV9ib290X2Vudl9yZWFkX3Bvc3RfcHJv Y2Vzc19ldGhhZGRyKHZvaWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmlkLCBpbnQgaW5kZXgsCisJ CQkJCQl1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2b2lkICpidWYsIHNpemVfdCBieXRlcykKK3sKKwl1 OCBtYWNbRVRIX0FMRU5dOworCisJaWYgKGJ5dGVzICE9IDMgKiBFVEhfQUxFTiAtIDEpCisJCXJl dHVybiAtRUlOVkFMOworCisJaWYgKCFtYWNfcHRvbihidWYsIG1hYykpCisJCXJldHVybiAtRUlO VkFMOworCisJaWYgKGluZGV4KQorCQlldGhfYWRkcl9hZGQobWFjLCBpbmRleCk7CisKKwlldGhl cl9hZGRyX2NvcHkoYnVmLCBtYWMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdV9i b290X2Vudl9wYXJzZV9jZWxscyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBudm1lbV9kZXZp Y2UgKm52bWVtLCB1aW50OF90ICpidWYsCisJCQkJICBzaXplX3QgZGF0YV9vZmZzZXQsIHNpemVf dCBkYXRhX2xlbikKK3sKKwljaGFyICpkYXRhID0gYnVmICsgZGF0YV9vZmZzZXQ7CisJY2hhciAq dmFyLCAqdmFsdWUsICplcTsKKworCWZvciAodmFyID0gZGF0YTsKKwkgICAgIHZhciA8IGRhdGEg KyBkYXRhX2xlbiAmJiAqdmFyOworCSAgICAgdmFyID0gdmFsdWUgKyBzdHJsZW4odmFsdWUpICsg MSkgeworCQlzdHJ1Y3QgbnZtZW1fY2VsbF9pbmZvIGluZm8gPSB7fTsKKworCQllcSA9IHN0cmNo cih2YXIsICc9Jyk7CisJCWlmICghZXEpCisJCQlicmVhazsKKwkJKmVxID0gJ1wwJzsKKwkJdmFs dWUgPSBlcSArIDE7CisKKwkJaW5mby5uYW1lID0gZGV2bV9rc3RyZHVwKGRldiwgdmFyLCBHRlBf S0VSTkVMKTsKKwkJaWYgKCFpbmZvLm5hbWUpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJaW5mby5v ZmZzZXQgPSBkYXRhX29mZnNldCArIHZhbHVlIC0gZGF0YTsKKwkJaW5mby5ieXRlcyA9IHN0cmxl bih2YWx1ZSk7CisJCWluZm8ubnAgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtPm9mX25vZGUs IGluZm8ubmFtZSk7CisJCWlmICghc3RyY21wKHZhciwgImV0aGFkZHIiKSkgeworCQkJaW5mby5y YXdfbGVuID0gc3RybGVuKHZhbHVlKTsKKwkJCWluZm8uYnl0ZXMgPSBFVEhfQUxFTjsKKwkJCWlu Zm8ucmVhZF9wb3N0X3Byb2Nlc3MgPSB1X2Jvb3RfZW52X3JlYWRfcG9zdF9wcm9jZXNzX2V0aGFk ZHI7CisJCX0KKworCQludm1lbV9hZGRfb25lX2NlbGwobnZtZW0sICZpbmZvKTsKKwl9CisKKwly ZXR1cm4gMDsKK30KKworaW50IHVfYm9vdF9lbnZfcGFyc2Uoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgbnZtZW1fZGV2aWNlICpudm1lbSwKKwkJICAgICBlbnVtIHVfYm9vdF9lbnZfZm9ybWF0 IGZvcm1hdCkKK3sKKwlzaXplX3QgY3JjMzJfZGF0YV9vZmZzZXQ7CisJc2l6ZV90IGNyYzMyX2Rh dGFfbGVuOworCXNpemVfdCBjcmMzMl9vZmZzZXQ7CisJX19sZTMyICpjcmMzMl9hZGRyOworCXNp emVfdCBkYXRhX29mZnNldDsKKwlzaXplX3QgZGF0YV9sZW47CisJc2l6ZV90IGRldl9zaXplOwor CXVpbnQzMl90IGNyYzMyOworCXVpbnQzMl90IGNhbGM7CisJdWludDhfdCAqYnVmOworCWludCBi eXRlczsKKwlpbnQgZXJyOworCisJZGV2X3NpemUgPSBudm1lbV9kZXZfc2l6ZShudm1lbSk7CisK KwlidWYgPSBremFsbG9jKGRldl9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWJ1ZikgeworCQll cnIgPSAtRU5PTUVNOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJYnl0ZXMgPSBudm1lbV9kZXZp Y2VfcmVhZChudm1lbSwgMCwgZGV2X3NpemUsIGJ1Zik7CisJaWYgKGJ5dGVzIDwgMCkgeworCQll cnIgPSBieXRlczsKKwkJZ290byBlcnJfa2ZyZWU7CisJfSBlbHNlIGlmIChieXRlcyAhPSBkZXZf c2l6ZSkgeworCQllcnIgPSAtRUlPOworCQlnb3RvIGVycl9rZnJlZTsKKwl9CisKKwlzd2l0Y2gg KGZvcm1hdCkgeworCWNhc2UgVV9CT09UX0ZPUk1BVF9TSU5HTEU6CisJCWNyYzMyX29mZnNldCA9 IG9mZnNldG9mKHN0cnVjdCB1X2Jvb3RfZW52X2ltYWdlX3NpbmdsZSwgY3JjMzIpOworCQljcmMz Ml9kYXRhX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCB1X2Jvb3RfZW52X2ltYWdlX3NpbmdsZSwg ZGF0YSk7CisJCWRhdGFfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZfaW1hZ2Vf c2luZ2xlLCBkYXRhKTsKKwkJYnJlYWs7CisJY2FzZSBVX0JPT1RfRk9STUFUX1JFRFVOREFOVDoK KwkJY3JjMzJfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZfaW1hZ2VfcmVkdW5k YW50LCBjcmMzMik7CisJCWNyYzMyX2RhdGFfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9v dF9lbnZfaW1hZ2VfcmVkdW5kYW50LCBkYXRhKTsKKwkJZGF0YV9vZmZzZXQgPSBvZmZzZXRvZihz dHJ1Y3QgdV9ib290X2Vudl9pbWFnZV9yZWR1bmRhbnQsIGRhdGEpOworCQlicmVhazsKKwljYXNl IFVfQk9PVF9GT1JNQVRfQlJPQURDT006CisJCWNyYzMyX29mZnNldCA9IG9mZnNldG9mKHN0cnVj dCB1X2Jvb3RfZW52X2ltYWdlX2Jyb2FkY29tLCBjcmMzMik7CisJCWNyYzMyX2RhdGFfb2Zmc2V0 ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZfaW1hZ2VfYnJvYWRjb20sIGRhdGEpOworCQlk YXRhX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCB1X2Jvb3RfZW52X2ltYWdlX2Jyb2FkY29tLCBk YXRhKTsKKwkJYnJlYWs7CisJfQorCWNyYzMyX2FkZHIgPSAoX19sZTMyICopKGJ1ZiArIGNyYzMy X29mZnNldCk7CisJY3JjMzIgPSBsZTMyX3RvX2NwdSgqY3JjMzJfYWRkcik7CisJY3JjMzJfZGF0 YV9sZW4gPSBkZXZfc2l6ZSAtIGNyYzMyX2RhdGFfb2Zmc2V0OworCWRhdGFfbGVuID0gZGV2X3Np emUgLSBkYXRhX29mZnNldDsKKworCWNhbGMgPSBjcmMzMih+MCwgYnVmICsgY3JjMzJfZGF0YV9v ZmZzZXQsIGNyYzMyX2RhdGFfbGVuKSBeIH4wTDsKKwlpZiAoY2FsYyAhPSBjcmMzMikgeworCQlk ZXZfZXJyKGRldiwgIkludmFsaWQgY2FsY3VsYXRlZCBDUkMzMjogMHglMDh4IChleHBlY3RlZDog MHglMDh4KVxuIiwgY2FsYywgY3JjMzIpOworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIGVycl9r ZnJlZTsKKwl9CisKKwlidWZbZGV2X3NpemUgLSAxXSA9ICdcMCc7CisJZXJyID0gdV9ib290X2Vu dl9wYXJzZV9jZWxscyhkZXYsIG52bWVtLCBidWYsIGRhdGFfb2Zmc2V0LCBkYXRhX2xlbik7CisK K2Vycl9rZnJlZToKKwlrZnJlZShidWYpOworZXJyX291dDoKKwlyZXR1cm4gZXJyOworfQorRVhQ T1JUX1NZTUJPTF9HUEwodV9ib290X2Vudl9wYXJzZSk7CisKK3N0YXRpYyBpbnQgdV9ib290X2Vu dl9hZGRfY2VsbHMoc3RydWN0IG52bWVtX2xheW91dCAqbGF5b3V0KQoreworCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZsYXlvdXQtPmRldjsKKwllbnVtIHVfYm9vdF9lbnZfZm9ybWF0IGZvcm1hdDsK KworCWZvcm1hdCA9ICh1aW50cHRyX3QpZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CisKKwly ZXR1cm4gdV9ib290X2Vudl9wYXJzZShkZXYsIGxheW91dC0+bnZtZW0sIGZvcm1hdCk7Cit9CisK K3N0YXRpYyBpbnQgdV9ib290X2Vudl9wcm9iZShzdHJ1Y3QgbnZtZW1fbGF5b3V0ICpsYXlvdXQp Cit7CisJbGF5b3V0LT5hZGRfY2VsbHMgPSB1X2Jvb3RfZW52X2FkZF9jZWxsczsKKworCXJldHVy biBudm1lbV9sYXlvdXRfcmVnaXN0ZXIobGF5b3V0KTsKK30KKworc3RhdGljIHZvaWQgdV9ib290 X2Vudl9yZW1vdmUoc3RydWN0IG52bWVtX2xheW91dCAqbGF5b3V0KQoreworCW52bWVtX2xheW91 dF91bnJlZ2lzdGVyKGxheW91dCk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkIHVfYm9vdF9lbnZfb2ZfbWF0Y2hfdGFibGVbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInUt Ym9vdCxlbnYtbGF5b3V0IiwgLmRhdGEgPSAodm9pZCAqKVVfQk9PVF9GT1JNQVRfU0lOR0xFLCB9 LAorCXsgLmNvbXBhdGlibGUgPSAidS1ib290LGVudi1yZWR1bmRhbnQtYm9vbC1sYXlvdXQiLCAu ZGF0YSA9ICh2b2lkICopVV9CT09UX0ZPUk1BVF9SRURVTkRBTlQsIH0sCisJeyAuY29tcGF0aWJs ZSA9ICJ1LWJvb3QsZW52LXJlZHVuZGFudC1jb3VudC1sYXlvdXQiLCAuZGF0YSA9ICh2b2lkICop VV9CT09UX0ZPUk1BVF9SRURVTkRBTlQsIH0sCisJeyAuY29tcGF0aWJsZSA9ICJicmNtLGVudi1s YXlvdXQiLCAuZGF0YSA9ICh2b2lkICopVV9CT09UX0ZPUk1BVF9CUk9BRENPTSwgfSwKKwl7fSwK K307CisKK3N0YXRpYyBzdHJ1Y3QgbnZtZW1fbGF5b3V0X2RyaXZlciB1X2Jvb3RfZW52X2xheW91 dCA9IHsKKwkuZHJpdmVyID0geworCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm5hbWUgPSAi dS1ib290LWVudi1sYXlvdXQiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSB1X2Jvb3RfZW52X29mX21h dGNoX3RhYmxlLAorCX0sCisJLnByb2JlID0gdV9ib290X2Vudl9wcm9iZSwKKwkucmVtb3ZlID0g dV9ib290X2Vudl9yZW1vdmUsCit9OworbW9kdWxlX252bWVtX2xheW91dF9kcml2ZXIodV9ib290 X2Vudl9sYXlvdXQpOworCitNT0RVTEVfQVVUSE9SKCJSYWZhxYIgTWnFgmVja2kiKTsKK01PRFVM RV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHVfYm9vdF9lbnZfb2Zf bWF0Y2hfdGFibGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9sYXlvdXRzL3UtYm9vdC1l bnYuaCBiL2RyaXZlcnMvbnZtZW0vbGF5b3V0cy91LWJvb3QtZW52LmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kZDVmMjgwYWMwNDcKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL252bWVtL2xheW91dHMvdS1ib290LWVudi5oCkBAIC0wLDAgKzEsMTUgQEAKKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KKworI2lmbmRlZiBfTElO VVhfTlZNRU1fTEFZT1VUU19VX0JPT1RfRU5WX0gKKyNkZWZpbmUgX0xJTlVYX05WTUVNX0xBWU9V VFNfVV9CT09UX0VOVl9ICisKK2VudW0gdV9ib290X2Vudl9mb3JtYXQgeworCVVfQk9PVF9GT1JN QVRfU0lOR0xFLAorCVVfQk9PVF9GT1JNQVRfUkVEVU5EQU5ULAorCVVfQk9PVF9GT1JNQVRfQlJP QURDT00sCit9OworCitpbnQgdV9ib290X2Vudl9wYXJzZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtLAorCQkgICAgIGVudW0gdV9ib290X2Vudl9mb3JtYXQg Zm9ybWF0KTsKKworI2VuZGlmICAvKiBpZm5kZWYgX0xJTlVYX05WTUVNX0xBWU9VVFNfVV9CT09U X0VOVl9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3UtYm9vdC1lbnYuYyBiL2RyaXZl cnMvbnZtZW0vdS1ib290LWVudi5jCmluZGV4IGJlZmJhYjE1NmNkYS4uMzg2YjJiMjU1YzMwIDEw MDY0NAotLS0gYS9kcml2ZXJzL252bWVtL3UtYm9vdC1lbnYuYworKysgYi9kcml2ZXJzL252bWVt L3UtYm9vdC1lbnYuYwpAQCAtMywyMyArMywxNSBAQAogICogQ29weXJpZ2h0IChDKSAyMDIyIFJh ZmHFgiBNacWCZWNraSA8cmFmYWxAbWlsZWNraS5wbD4KICAqLwogCi0jaW5jbHVkZSA8bGludXgv Y3JjMzIuaD4KLSNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4 L2lmX2V0aGVyLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CiAjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgotI2luY2x1ZGUg PGxpbnV4L252bWVtLWNvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgvbnZtZW0tcHJvdmlkZXIu aD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rldmlj ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIAotZW51bSB1X2Jvb3RfZW52X2Zvcm1hdCB7 Ci0JVV9CT09UX0ZPUk1BVF9TSU5HTEUsCi0JVV9CT09UX0ZPUk1BVF9SRURVTkRBTlQsCi0JVV9C T09UX0ZPUk1BVF9CUk9BRENPTSwKLX07CisjaW5jbHVkZSAibGF5b3V0cy91LWJvb3QtZW52Lmgi CiAKIHN0cnVjdCB1X2Jvb3RfZW52IHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CkBAIC0yOSwyNCAr MjEsNiBAQCBzdHJ1Y3QgdV9ib290X2VudiB7CiAJc3RydWN0IG10ZF9pbmZvICptdGQ7CiB9Owog Ci1zdHJ1Y3QgdV9ib290X2Vudl9pbWFnZV9zaW5nbGUgewotCV9fbGUzMiBjcmMzMjsKLQl1aW50 OF90IGRhdGFbXTsKLX0gX19wYWNrZWQ7Ci0KLXN0cnVjdCB1X2Jvb3RfZW52X2ltYWdlX3JlZHVu ZGFudCB7Ci0JX19sZTMyIGNyYzMyOwotCXU4IG1hcms7Ci0JdWludDhfdCBkYXRhW107Ci19IF9f cGFja2VkOwotCi1zdHJ1Y3QgdV9ib290X2Vudl9pbWFnZV9icm9hZGNvbSB7Ci0JX19sZTMyIG1h Z2ljOwotCV9fbGUzMiBsZW47Ci0JX19sZTMyIGNyYzMyOwotCURFQ0xBUkVfRkxFWF9BUlJBWSh1 aW50OF90LCBkYXRhKTsKLX0gX19wYWNrZWQ7Ci0KIHN0YXRpYyBpbnQgdV9ib290X2Vudl9yZWFk KHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBvZmZzZXQsIHZvaWQgKnZhbCwKIAkJCSAgIHNp emVfdCBieXRlcykKIHsKQEAgLTY5LDEzNCArNDMsNiBAQCBzdGF0aWMgaW50IHVfYm9vdF9lbnZf cmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2b2lkICp2YWwsCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdV9ib290X2Vudl9yZWFkX3Bvc3RfcHJvY2Vzc19ldGhh ZGRyKHZvaWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmlkLCBpbnQgaW5kZXgsCi0JCQkJCQl1bnNp Z25lZCBpbnQgb2Zmc2V0LCB2b2lkICpidWYsIHNpemVfdCBieXRlcykKLXsKLQl1OCBtYWNbRVRI X0FMRU5dOwotCi0JaWYgKGJ5dGVzICE9IDMgKiBFVEhfQUxFTiAtIDEpCi0JCXJldHVybiAtRUlO VkFMOwotCi0JaWYgKCFtYWNfcHRvbihidWYsIG1hYykpCi0JCXJldHVybiAtRUlOVkFMOwotCi0J aWYgKGluZGV4KQotCQlldGhfYWRkcl9hZGQobWFjLCBpbmRleCk7Ci0KLQlldGhlcl9hZGRyX2Nv cHkoYnVmLCBtYWMpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgdV9ib290X2Vudl9h ZGRfY2VsbHMoc3RydWN0IHVfYm9vdF9lbnYgKnByaXYsIHVpbnQ4X3QgKmJ1ZiwKLQkJCQlzaXpl X3QgZGF0YV9vZmZzZXQsIHNpemVfdCBkYXRhX2xlbikKLXsKLQlzdHJ1Y3QgbnZtZW1fZGV2aWNl ICpudm1lbSA9IHByaXYtPm52bWVtOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IHByaXYtPmRldjsK LQljaGFyICpkYXRhID0gYnVmICsgZGF0YV9vZmZzZXQ7Ci0JY2hhciAqdmFyLCAqdmFsdWUsICpl cTsKLQotCWZvciAodmFyID0gZGF0YTsKLQkgICAgIHZhciA8IGRhdGEgKyBkYXRhX2xlbiAmJiAq dmFyOwotCSAgICAgdmFyID0gdmFsdWUgKyBzdHJsZW4odmFsdWUpICsgMSkgewotCQlzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvIGluZm8gPSB7fTsKLQotCQllcSA9IHN0cmNocih2YXIsICc9Jyk7Ci0J CWlmICghZXEpCi0JCQlicmVhazsKLQkJKmVxID0gJ1wwJzsKLQkJdmFsdWUgPSBlcSArIDE7Ci0K LQkJaW5mby5uYW1lID0gZGV2bV9rc3RyZHVwKGRldiwgdmFyLCBHRlBfS0VSTkVMKTsKLQkJaWYg KCFpbmZvLm5hbWUpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQkJaW5mby5vZmZzZXQgPSBkYXRhX29m ZnNldCArIHZhbHVlIC0gZGF0YTsKLQkJaW5mby5ieXRlcyA9IHN0cmxlbih2YWx1ZSk7Ci0JCWlu Zm8ubnAgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtPm9mX25vZGUsIGluZm8ubmFtZSk7Ci0J CWlmICghc3RyY21wKHZhciwgImV0aGFkZHIiKSkgewotCQkJaW5mby5yYXdfbGVuID0gc3RybGVu KHZhbHVlKTsKLQkJCWluZm8uYnl0ZXMgPSBFVEhfQUxFTjsKLQkJCWluZm8ucmVhZF9wb3N0X3By b2Nlc3MgPSB1X2Jvb3RfZW52X3JlYWRfcG9zdF9wcm9jZXNzX2V0aGFkZHI7Ci0JCX0KLQotCQlu dm1lbV9hZGRfb25lX2NlbGwobnZtZW0sICZpbmZvKTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQot c3RhdGljIGludCB1X2Jvb3RfZW52X3BhcnNlKHN0cnVjdCB1X2Jvb3RfZW52ICpwcml2KQotewot CXN0cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtID0gcHJpdi0+bnZtZW07Ci0Jc3RydWN0IGRldmlj ZSAqZGV2ID0gcHJpdi0+ZGV2OwotCXNpemVfdCBjcmMzMl9kYXRhX29mZnNldDsKLQlzaXplX3Qg Y3JjMzJfZGF0YV9sZW47Ci0Jc2l6ZV90IGNyYzMyX29mZnNldDsKLQlfX2xlMzIgKmNyYzMyX2Fk ZHI7Ci0Jc2l6ZV90IGRhdGFfb2Zmc2V0OwotCXNpemVfdCBkYXRhX2xlbjsKLQlzaXplX3QgZGV2 X3NpemU7Ci0JdWludDMyX3QgY3JjMzI7Ci0JdWludDMyX3QgY2FsYzsKLQl1aW50OF90ICpidWY7 Ci0JaW50IGJ5dGVzOwotCWludCBlcnI7Ci0KLQlkZXZfc2l6ZSA9IG52bWVtX2Rldl9zaXplKG52 bWVtKTsKLQotCWJ1ZiA9IGt6YWxsb2MoZGV2X3NpemUsIEdGUF9LRVJORUwpOwotCWlmICghYnVm KSB7Ci0JCWVyciA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyX291dDsKLQl9Ci0KLQlieXRlcyA9IG52 bWVtX2RldmljZV9yZWFkKG52bWVtLCAwLCBkZXZfc2l6ZSwgYnVmKTsKLQlpZiAoYnl0ZXMgPCAw KSB7Ci0JCWVyciA9IGJ5dGVzOwotCQlnb3RvIGVycl9rZnJlZTsKLQl9IGVsc2UgaWYgKGJ5dGVz ICE9IGRldl9zaXplKSB7Ci0JCWVyciA9IC1FSU87Ci0JCWdvdG8gZXJyX2tmcmVlOwotCX0KLQot CXN3aXRjaCAocHJpdi0+Zm9ybWF0KSB7Ci0JY2FzZSBVX0JPT1RfRk9STUFUX1NJTkdMRToKLQkJ Y3JjMzJfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZfaW1hZ2Vfc2luZ2xlLCBj cmMzMik7Ci0JCWNyYzMyX2RhdGFfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZf aW1hZ2Vfc2luZ2xlLCBkYXRhKTsKLQkJZGF0YV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgdV9i b290X2Vudl9pbWFnZV9zaW5nbGUsIGRhdGEpOwotCQlicmVhazsKLQljYXNlIFVfQk9PVF9GT1JN QVRfUkVEVU5EQU5UOgotCQljcmMzMl9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgdV9ib290X2Vu dl9pbWFnZV9yZWR1bmRhbnQsIGNyYzMyKTsKLQkJY3JjMzJfZGF0YV9vZmZzZXQgPSBvZmZzZXRv ZihzdHJ1Y3QgdV9ib290X2Vudl9pbWFnZV9yZWR1bmRhbnQsIGRhdGEpOwotCQlkYXRhX29mZnNl dCA9IG9mZnNldG9mKHN0cnVjdCB1X2Jvb3RfZW52X2ltYWdlX3JlZHVuZGFudCwgZGF0YSk7Ci0J CWJyZWFrOwotCWNhc2UgVV9CT09UX0ZPUk1BVF9CUk9BRENPTToKLQkJY3JjMzJfb2Zmc2V0ID0g b2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZfaW1hZ2VfYnJvYWRjb20sIGNyYzMyKTsKLQkJY3Jj MzJfZGF0YV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgdV9ib290X2Vudl9pbWFnZV9icm9hZGNv bSwgZGF0YSk7Ci0JCWRhdGFfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHVfYm9vdF9lbnZfaW1h Z2VfYnJvYWRjb20sIGRhdGEpOwotCQlicmVhazsKLQl9Ci0JY3JjMzJfYWRkciA9IChfX2xlMzIg KikoYnVmICsgY3JjMzJfb2Zmc2V0KTsKLQljcmMzMiA9IGxlMzJfdG9fY3B1KCpjcmMzMl9hZGRy KTsKLQljcmMzMl9kYXRhX2xlbiA9IGRldl9zaXplIC0gY3JjMzJfZGF0YV9vZmZzZXQ7Ci0JZGF0 YV9sZW4gPSBkZXZfc2l6ZSAtIGRhdGFfb2Zmc2V0OwotCi0JY2FsYyA9IGNyYzMyKH4wLCBidWYg KyBjcmMzMl9kYXRhX29mZnNldCwgY3JjMzJfZGF0YV9sZW4pIF4gfjBMOwotCWlmIChjYWxjICE9 IGNyYzMyKSB7Ci0JCWRldl9lcnIoZGV2LCAiSW52YWxpZCBjYWxjdWxhdGVkIENSQzMyOiAweCUw OHggKGV4cGVjdGVkOiAweCUwOHgpXG4iLCBjYWxjLCBjcmMzMik7Ci0JCWVyciA9IC1FSU5WQUw7 Ci0JCWdvdG8gZXJyX2tmcmVlOwotCX0KLQotCWJ1ZltkZXZfc2l6ZSAtIDFdID0gJ1wwJzsKLQll cnIgPSB1X2Jvb3RfZW52X2FkZF9jZWxscyhwcml2LCBidWYsIGRhdGFfb2Zmc2V0LCBkYXRhX2xl bik7Ci0KLWVycl9rZnJlZToKLQlrZnJlZShidWYpOwotZXJyX291dDoKLQlyZXR1cm4gZXJyOwot fQotCiBzdGF0aWMgaW50IHVfYm9vdF9lbnZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIHsKIAlzdHJ1Y3QgbnZtZW1fY29uZmlnIGNvbmZpZyA9IHsKQEAgLTIyOCw3ICs3NCw3 IEBAIHN0YXRpYyBpbnQgdV9ib290X2Vudl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCWlmIChJU19FUlIocHJpdi0+bnZtZW0pKQogCQlyZXR1cm4gUFRSX0VSUihwcml2LT5u dm1lbSk7CiAKLQlyZXR1cm4gdV9ib290X2Vudl9wYXJzZShwcml2KTsKKwlyZXR1cm4gdV9ib290 X2Vudl9wYXJzZShkZXYsIHByaXYtPm52bWVtLCBwcml2LT5mb3JtYXQpOwogfQogCiBzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB1X2Jvb3RfZW52X29mX21hdGNoX3RhYmxlW10gPSB7 Ci0tIAoyLjM1LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==