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 84149C25B48 for ; Thu, 26 Oct 2023 07:35:45 +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: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:In-Reply-To:References: List-Owner; bh=FEST4D+yarYha3Hrkot1nq6RrwpH6inht+r3vVoYRC8=; b=hzw8yqEjVzIjuK fmRn/0movxxWIJUbruEdq2TS/LWn67MmJiuYBsa6EPwU1AXqZTsxBde7Sex/D5r7ccbT9uHHDc1Xa ANFXjfbrTMoY4M4oBAnbjafO4zqxpPK6XtA7VqTDN2GEEVsvRbppgS+NoN69/hndwH6Y9BIRQnyMc b6JIeAsPTEgy4DPMQf6KRuw6d85g+B/fZKeQQnlFkMnr5a6ZwU5K6jmj69EFbVEwt9UBXGs8NlsLw uI3rO0c2Frp4jj6stEdQJs3SY61nSye2VYNIUEWMJ5hQ0Q1P16w8uaNGsjE+VeQ5s6RLeE25hW/Ey hi2cTUkVsvxaShP4wYjA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvutf-00DrTp-0F; Thu, 26 Oct 2023 07:35:15 +0000 Received: from mail-lf1-x130.google.com ([2a00:1450:4864:20::130]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qvutb-00DrSx-1s; Thu, 26 Oct 2023 07:35:13 +0000 Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-507e85ebf50so714047e87.1; Thu, 26 Oct 2023 00:35:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698305707; x=1698910507; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=hJZ6wfm0bTuqieUHXEKtRuJrDeks5L6l8rWKf4hHJEo=; b=WtxAka7MtV8LeJFCIRD1mH0GwBiSBeUm+VN8cFn1UQyzNcwfmMREXsGkSkc7e2H10Q BvJhILz3Gs8n0ymXfQ354i3GCDY2SUF7VXyPCIqTOV+9utc3TeuxIjtuOF7F93QtkBn6 9QMvZh73k2L9d1FXQjnPkBnVEAUVmSNLI+b6V0aZJAFy7e+FyeuBTDcLuy1wLipCTiZ8 ZO7iUIH74izm89BLuBS+/IFBsv/y2ivywoHKa82Be/i47E4gOUT4xsMsfmrg7YQgrG7u kyykH4VtvBku7ShgdGav5Pm8PCoegoHGkJLm1CE/7SEioQM9zxF/UiP2oc9CPy9CBkJo iLlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698305707; x=1698910507; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hJZ6wfm0bTuqieUHXEKtRuJrDeks5L6l8rWKf4hHJEo=; b=OFLyVemGBKmBu5ClStBEm7KZKgFrDEfT0jALBzapNylSAe1Qvs6jvuxqZCd0oQZjQi JhZlwuhipaC/YkS3ODyQHM5ce5zaaX7ghaCQ73tXvzTV3dFNtQDP8ZhjnA3UB0CNRp0i wdeHF6+GJ0oMi/5H6EMKRUIbCC6PPZn9WNCLTeM0SQLaGCSEmPCi9qOssxbXRb1eIuZk GBEW9Jy6sMvEQBopelFtuc/7GhBL1NFOoLi5S659E3Ov626iMjEJNHVBTgFY45fSETFj 9u1wMBkYZU4nhdLBbfUBO5WUnonnQLf4eMDCgyKjGEEaJ2BAFvC7BYnwNdBwFJ8hRYQM ohkg== X-Gm-Message-State: AOJu0YzI5PwwlfX3zml2O68p+er1MG+HlB6JkhMZnTKwsu7bN5l2lC+k 7SlcE9GrJlcXG4UQfrMl5SjOXBFWmpM= X-Google-Smtp-Source: AGHT+IF1kDUFN0AdnY4R0HavPdl604V/76H23E4wqzAPj8PJLLQTSSq1movSs/LWlTbRJ2bShRj4gg== X-Received: by 2002:a05:6512:3d29:b0:507:ba28:1bc5 with SMTP id d41-20020a0565123d2900b00507ba281bc5mr15172418lfv.3.1698305707045; Thu, 26 Oct 2023 00:35:07 -0700 (PDT) Received: from localhost.lan (031011218106.poznan.vectranet.pl. [31.11.218.106]) by smtp.gmail.com with ESMTPSA id x12-20020a056512078c00b00507a4661f76sm2895189lfr.145.2023.10.26.00.35.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Oct 2023 00:35:06 -0700 (PDT) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: Srinivas Kandagatla Cc: linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= , Florian Fainelli , Scott Branden Subject: [PATCH V2] nvmem: brcm_nvram: store a copy of NVRAM content Date: Thu, 26 Oct 2023 09:34:40 +0200 Message-Id: <20231026073440.6724-1-zajec5@gmail.com> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231026_003511_623692_03690A8B X-CRM114-Status: GOOD ( 22.06 ) 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 RnJvbTogUmFmYcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgoKVGhpcyBkcml2ZXIgdXNl cyBNTUlPIGFjY2VzcyBmb3IgcmVhZGluZyBOVlJBTSBmcm9tIGEgZmxhc2ggZGV2aWNlLgpVbmRl cm5lYXRoIHRoZXJlIGlzIGEgZmxhc2ggY29udHJvbGxlciB0aGF0IHJlYWRzIGRhdGEgYW5kIHBy b3ZpZGVzCm1hcHBpbmcgd2luZG93LgoKVXNpbmcgTU1JTyBpbnRlcmZhY2UgYWZmZWN0cyBjb250 cm9sbGVyIGNvbmZpZ3VyYXRpb24gYW5kIG1heSBicmVhayByZWFsCmNvbnRyb2xsZXIgZHJpdmVy LiBJdCB3YXMgcmVwb3J0ZWQgYnkgbXVsdGlwbGUgdXNlcnMgb2YgZGV2aWNlcyB3aXRoCk5WUkFN IHN0b3JlZCBvbiBOQU5ELgoKTW9kaWZ5IGRyaXZlciB0byByZWFkICYgY2FjaGUgTlZSQU0gY29u dGVudCBkdXJpbmcgaW5pdCBhbmQgdXNlIHRoYXQKY29weSB0byBwcm92aWRlIE5WTUVNIGRhdGEg d2hlbiByZXF1ZXN0ZWQuIE9uIE5BTkQgZmxhc2hlcyBkdWUgdG8gdGhlaXIKYWxpZ25tZW50IE5W UkFNIHBhcnRpdGlvbnMgY2FuIGJlIHF1aXRlIGJpZyAoMSBNaUIgYW5kIG1vcmUpIHdoaWxlCmFj dHVhbCBOVlJBTSBjb250ZW50IHN0YXlzIHF1aXRlIHNtYWxsICh1c3VhbGx5IDE2IHRvIDMyIEtp QikuIFRvIGF2b2lkCmFsbG9jYXRpbmcgc28gbXVjaCBtZW1vcnkgY2hlY2sgZm9yIGFjdHVhbCBk YXRhIGxlbmd0aC4KCkxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW10ZC9DQUNu YTZyd2YzXzlRVmpZY00rODQ3YmlUWD1LMEVvV1h1WGNTTWtKTzFWeV81dm1WcUFAbWFpbC5nbWFp bC5jb20vCkZpeGVzOiAzZmVmOWVkMDYyN2EgKCJudm1lbTogYnJjbV9udnJhbTogbmV3IGRyaXZl ciBleHBvc2luZyBCcm9hZGNvbSdzIE5WUkFNIikKQ2M6IEFyxLFuw6cgw5xOQUwgPGFyaW5jLnVu YWxAYXJpbmM5LmNvbT4KQ2M6IEZsb3JpYW4gRmFpbmVsbGkgPGZsb3JpYW4uZmFpbmVsbGlAYnJv YWRjb20uY29tPgpDYzogU2NvdHQgQnJhbmRlbiA8c2NvdHQuYnJhbmRlbkBicm9hZGNvbS5jb20+ ClNpZ25lZC1vZmYtYnk6IFJhZmHFgiBNacWCZWNraSA8cmFmYWxAbWlsZWNraS5wbD4KLS0tClYy OiBNaW5pYWxpemUgYW1vdW50IG9mIGFsbG9jYXRlZCBtZW1vcnkgKGNoZWNrIGZvciBhY3R1YWwg ZGF0YSBsZW5ndGgpCgogZHJpdmVycy9udm1lbS9icmNtX252cmFtLmMgfCAxMzEgKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkxIGluc2VydGlv bnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vYnJjbV9u dnJhbS5jIGIvZHJpdmVycy9udm1lbS9icmNtX252cmFtLmMKaW5kZXggOTczNzEwNGYzYjc2Li5m YmQxMzM3MzJiYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZtZW0vYnJjbV9udnJhbS5jCisrKyBi L2RyaXZlcnMvbnZtZW0vYnJjbV9udnJhbS5jCkBAIC0xNyw5ICsxNywyMCBAQAogCiAjZGVmaW5l IE5WUkFNX01BR0lDCQkJIkZMU0giCiAKKy8qKgorICogc3RydWN0IGJyY21fbnZyYW0gLSBkcml2 ZXIgc3RhdGUgaW50ZXJuYWwgc3RydWN0CisgKgorICogQG52bWVtX3NpemU6CQlTaXplIG9mIHRo ZSB3aG9sZSBzcGFjZSBhdmFpbGFibGUgZm9yIE5WUkFNCisgKiBAZGF0YToJCU5WUkFNIGRhdGEg Y29weSBzdG9yZWQgdG8gYXZvaWQgcG9raW5nIHVuZGVybGF5aW5nIGZsYXNoIGNvbnRyb2xsZXIK KyAqIEBkYXRhX2xlbjoJCU5WUkFNIGRhdGEgc2l6ZQorICogQHBhZGRpbmdfYnl0ZToJUGFkZGlu ZyB2YWx1ZSB1c2VkIHRvIGZpbGwgcmVtYWluaW5nIHNwYWNlCisgKi8KIHN0cnVjdCBicmNtX252 cmFtIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0Jdm9pZCBfX2lvbWVtICpiYXNlOworCXNpemVf dCBudm1lbV9zaXplOworCXVpbnQ4X3QgKmRhdGE7CisJc2l6ZV90IGRhdGFfbGVuOworCXVpbnQ4 X3QgcGFkZGluZ19ieXRlOwogCXN0cnVjdCBudm1lbV9jZWxsX2luZm8gKmNlbGxzOwogCWludCBu Y2VsbHM7CiB9OwpAQCAtMzYsMTAgKzQ3LDQ3IEBAIHN0YXRpYyBpbnQgYnJjbV9udnJhbV9yZWFk KHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBvZmZzZXQsIHZvaWQgKnZhbCwKIAkJCSAgIHNp emVfdCBieXRlcykKIHsKIAlzdHJ1Y3QgYnJjbV9udnJhbSAqcHJpdiA9IGNvbnRleHQ7Ci0JdTgg KmRzdCA9IHZhbDsKKwlzaXplX3QgdG9fY29weTsKKworCWlmIChvZmZzZXQgKyBieXRlcyA+IHBy aXYtPmRhdGFfbGVuKQorCQl0b19jb3B5ID0gbWF4X3Qoc3NpemVfdCwgKHNzaXplX3QpcHJpdi0+ ZGF0YV9sZW4gLSBvZmZzZXQsIDApOworCWVsc2UKKwkJdG9fY29weSA9IGJ5dGVzOworCisJbWVt Y3B5KHZhbCwgcHJpdi0+ZGF0YSArIG9mZnNldCwgdG9fY29weSk7CisKKwltZW1zZXQoKHVpbnQ4 X3QgKil2YWwgKyB0b19jb3B5LCBwcml2LT5wYWRkaW5nX2J5dGUsIGJ5dGVzIC0gdG9fY29weSk7 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBicmNtX252cmFtX2NvcHlfZGF0YShzdHJ1 Y3QgYnJjbV9udnJhbSAqcHJpdiwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlz dHJ1Y3QgcmVzb3VyY2UgKnJlczsKKwl2b2lkIF9faW9tZW0gKmJhc2U7CisKKwliYXNlID0gZGV2 bV9wbGF0Zm9ybV9nZXRfYW5kX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCwgJnJlcyk7CisJaWYg KElTX0VSUihiYXNlKSkKKwkJcmV0dXJuIFBUUl9FUlIoYmFzZSk7CisKKwlwcml2LT5udm1lbV9z aXplID0gcmVzb3VyY2Vfc2l6ZShyZXMpOworCisJcHJpdi0+cGFkZGluZ19ieXRlID0gcmVhZGIo YmFzZSArIHByaXYtPm52bWVtX3NpemUgLSAxKTsKKwlmb3IgKHByaXYtPmRhdGFfbGVuID0gcHJp di0+bnZtZW1fc2l6ZTsKKwkgICAgIHByaXYtPmRhdGFfbGVuOworCSAgICAgcHJpdi0+ZGF0YV9s ZW4tLSkgeworCQlpZiAocmVhZGIoYmFzZSArIHByaXYtPmRhdGFfbGVuIC0gMSkgIT0gcHJpdi0+ cGFkZGluZ19ieXRlKQorCQkJYnJlYWs7CisJfQorCVdBUk4ocHJpdi0+ZGF0YV9sZW4gPiBTWl8x MjhLLCAiVW5leHBlY3RlZCAoYmlnKSBOVlJBTSBzaXplOiAlenUgQlxuIiwgcHJpdi0+ZGF0YV9s ZW4pOworCisJcHJpdi0+ZGF0YSA9IGRldm1fa3phbGxvYyhwcml2LT5kZXYsIHByaXYtPmRhdGFf bGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYtPmRhdGEpCisJCXJldHVybiAtRU5PTUVNOwor CisJbWVtY3B5X2Zyb21pbyhwcml2LT5kYXRhLCBiYXNlLCBwcml2LT5kYXRhX2xlbik7CiAKLQl3 aGlsZSAoYnl0ZXMtLSkKLQkJKmRzdCsrID0gcmVhZGIocHJpdi0+YmFzZSArIG9mZnNldCsrKTsK KwliY200N3h4X252cmFtX2luaXRfZnJvbV9pb21lbShiYXNlLCBwcml2LT5kYXRhX2xlbik7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTY3LDggKzExNSwxMyBAQCBzdGF0aWMgaW50IGJyY21fbnZyYW1f YWRkX2NlbGxzKHN0cnVjdCBicmNtX252cmFtICpwcml2LCB1aW50OF90ICpkYXRhLAogCQkJCXNp emVfdCBsZW4pCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gcHJpdi0+ZGV2OwotCWNoYXIgKnZh ciwgKnZhbHVlLCAqZXE7CisJY2hhciAqdmFyLCAqdmFsdWU7CisJdWludDhfdCB0bXA7CiAJaW50 IGlkeDsKKwlpbnQgZXJyID0gMDsKKworCXRtcCA9IHByaXYtPmRhdGFbbGVuIC0gMV07CisJcHJp di0+ZGF0YVtsZW4gLSAxXSA9ICdcMCc7CiAKIAlwcml2LT5uY2VsbHMgPSAwOwogCWZvciAodmFy ID0gZGF0YSArIHNpemVvZihzdHJ1Y3QgYnJjbV9udnJhbV9oZWFkZXIpOwpAQCAtNzgsNjcgKzEz MSw2OCBAQCBzdGF0aWMgaW50IGJyY21fbnZyYW1fYWRkX2NlbGxzKHN0cnVjdCBicmNtX252cmFt ICpwcml2LCB1aW50OF90ICpkYXRhLAogCX0KIAogCXByaXYtPmNlbGxzID0gZGV2bV9rY2FsbG9j KGRldiwgcHJpdi0+bmNlbGxzLCBzaXplb2YoKnByaXYtPmNlbGxzKSwgR0ZQX0tFUk5FTCk7Ci0J aWYgKCFwcml2LT5jZWxscykKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCFwcml2LT5jZWxscykg eworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CiAKIAlmb3IgKHZhciA9IGRhdGEg KyBzaXplb2Yoc3RydWN0IGJyY21fbnZyYW1faGVhZGVyKSwgaWR4ID0gMDsKIAkgICAgIHZhciA8 IChjaGFyICopZGF0YSArIGxlbiAmJiAqdmFyOwogCSAgICAgdmFyID0gdmFsdWUgKyBzdHJsZW4o dmFsdWUpICsgMSwgaWR4KyspIHsKKwkJY2hhciAqZXEsICpuYW1lOworCiAJCWVxID0gc3RyY2hy KHZhciwgJz0nKTsKIAkJaWYgKCFlcSkKIAkJCWJyZWFrOwogCQkqZXEgPSAnXDAnOworCQluYW1l ID0gZGV2bV9rc3RyZHVwKGRldiwgdmFyLCBHRlBfS0VSTkVMKTsKKwkJKmVxID0gJz0nOworCQlp ZiAoIW5hbWUpIHsKKwkJCWVyciA9IC1FTk9NRU07CisJCQlnb3RvIG91dDsKKwkJfQogCQl2YWx1 ZSA9IGVxICsgMTsKIAotCQlwcml2LT5jZWxsc1tpZHhdLm5hbWUgPSBkZXZtX2tzdHJkdXAoZGV2 LCB2YXIsIEdGUF9LRVJORUwpOwotCQlpZiAoIXByaXYtPmNlbGxzW2lkeF0ubmFtZSkKLQkJCXJl dHVybiAtRU5PTUVNOworCQlwcml2LT5jZWxsc1tpZHhdLm5hbWUgPSBuYW1lOwogCQlwcml2LT5j ZWxsc1tpZHhdLm9mZnNldCA9IHZhbHVlIC0gKGNoYXIgKilkYXRhOwogCQlwcml2LT5jZWxsc1tp ZHhdLmJ5dGVzID0gc3RybGVuKHZhbHVlKTsKIAkJcHJpdi0+Y2VsbHNbaWR4XS5ucCA9IG9mX2dl dF9jaGlsZF9ieV9uYW1lKGRldi0+b2Zfbm9kZSwgcHJpdi0+Y2VsbHNbaWR4XS5uYW1lKTsKLQkJ aWYgKCFzdHJjbXAodmFyLCAiZXQwbWFjYWRkciIpIHx8Ci0JCSAgICAhc3RyY21wKHZhciwgImV0 MW1hY2FkZHIiKSB8fAotCQkgICAgIXN0cmNtcCh2YXIsICJldDJtYWNhZGRyIikpIHsKKwkJaWYg KCFzdHJjbXAobmFtZSwgImV0MG1hY2FkZHIiKSB8fAorCQkgICAgIXN0cmNtcChuYW1lLCAiZXQx bWFjYWRkciIpIHx8CisJCSAgICAhc3RyY21wKG5hbWUsICJldDJtYWNhZGRyIikpIHsKIAkJCXBy aXYtPmNlbGxzW2lkeF0ucmF3X2xlbiA9IHN0cmxlbih2YWx1ZSk7CiAJCQlwcml2LT5jZWxsc1tp ZHhdLmJ5dGVzID0gRVRIX0FMRU47CiAJCQlwcml2LT5jZWxsc1tpZHhdLnJlYWRfcG9zdF9wcm9j ZXNzID0gYnJjbV9udnJhbV9yZWFkX3Bvc3RfcHJvY2Vzc19tYWNhZGRyOwogCQl9CiAJfQogCi0J cmV0dXJuIDA7CitvdXQ6CisJcHJpdi0+ZGF0YVtsZW4gLSAxXSA9IHRtcDsKKwlyZXR1cm4gZXJy OwogfQogCiBzdGF0aWMgaW50IGJyY21fbnZyYW1fcGFyc2Uoc3RydWN0IGJyY21fbnZyYW0gKnBy aXYpCiB7CisJc3RydWN0IGJyY21fbnZyYW1faGVhZGVyICpoZWFkZXIgPSAoc3RydWN0IGJyY21f bnZyYW1faGVhZGVyICopcHJpdi0+ZGF0YTsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwcml2LT5k ZXY7Ci0Jc3RydWN0IGJyY21fbnZyYW1faGVhZGVyIGhlYWRlcjsKLQl1aW50OF90ICpkYXRhOwog CXNpemVfdCBsZW47CiAJaW50IGVycjsKIAotCW1lbWNweV9mcm9taW8oJmhlYWRlciwgcHJpdi0+ YmFzZSwgc2l6ZW9mKGhlYWRlcikpOwotCi0JaWYgKG1lbWNtcChoZWFkZXIubWFnaWMsIE5WUkFN X01BR0lDLCA0KSkgeworCWlmIChtZW1jbXAoaGVhZGVyLT5tYWdpYywgTlZSQU1fTUFHSUMsIDQp KSB7CiAJCWRldl9lcnIoZGV2LCAiSW52YWxpZCBOVlJBTSBtYWdpY1xuIik7CiAJCXJldHVybiAt RUlOVkFMOwogCX0KIAotCWxlbiA9IGxlMzJfdG9fY3B1KGhlYWRlci5sZW4pOwotCi0JZGF0YSA9 IGt6YWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWRhdGEpCi0JCXJldHVybiAtRU5PTUVN OwotCi0JbWVtY3B5X2Zyb21pbyhkYXRhLCBwcml2LT5iYXNlLCBsZW4pOwotCWRhdGFbbGVuIC0g MV0gPSAnXDAnOwotCi0JZXJyID0gYnJjbV9udnJhbV9hZGRfY2VsbHMocHJpdiwgZGF0YSwgbGVu KTsKLQlpZiAoZXJyKSB7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFkZCBjZWxsczogJWRc biIsIGVycik7Ci0JCXJldHVybiBlcnI7CisJbGVuID0gbGUzMl90b19jcHUoaGVhZGVyLT5sZW4p OworCWlmIChsZW4gPiBwcml2LT5udm1lbV9zaXplKSB7CisJCWRldl9lcnIoZGV2LCAiTlZSQU0g bGVuZ3RoICglemQpIGV4Y2VlZHMgbWFwcGVkIHNpemUgKCV6ZClcbiIsIGxlbiwKKwkJCXByaXYt Pm52bWVtX3NpemUpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlrZnJlZShkYXRhKTsKKwll cnIgPSBicmNtX252cmFtX2FkZF9jZWxscyhwcml2LCBwcml2LT5kYXRhLCBsZW4pOworCWlmIChl cnIpCisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFkZCBjZWxsczogJWRcbiIsIGVycik7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTE1MCw3ICsyMDQsNiBAQCBzdGF0aWMgaW50IGJyY21fbnZyYW1f cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJLnJlZ19yZWFkID0gYnJjbV9u dnJhbV9yZWFkLAogCX07CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKLQlzdHJ1 Y3QgcmVzb3VyY2UgKnJlczsKIAlzdHJ1Y3QgYnJjbV9udnJhbSAqcHJpdjsKIAlpbnQgZXJyOwog CkBAIC0xNTksMjEgKzIxMiwxOSBAQCBzdGF0aWMgaW50IGJyY21fbnZyYW1fcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAJcHJpdi0+ZGV2ID0g ZGV2OwogCi0JcHJpdi0+YmFzZSA9IGRldm1fcGxhdGZvcm1fZ2V0X2FuZF9pb3JlbWFwX3Jlc291 cmNlKHBkZXYsIDAsICZyZXMpOwotCWlmIChJU19FUlIocHJpdi0+YmFzZSkpCi0JCXJldHVybiBQ VFJfRVJSKHByaXYtPmJhc2UpOworCWVyciA9IGJyY21fbnZyYW1fY29weV9kYXRhKHByaXYsIHBk ZXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CiAKIAllcnIgPSBicmNtX252cmFtX3BhcnNl KHByaXYpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQliY200N3h4X252cmFtX2luaXRf ZnJvbV9pb21lbShwcml2LT5iYXNlLCByZXNvdXJjZV9zaXplKHJlcykpOwotCiAJY29uZmlnLmRl diA9IGRldjsKIAljb25maWcuY2VsbHMgPSBwcml2LT5jZWxsczsKIAljb25maWcubmNlbGxzID0g cHJpdi0+bmNlbGxzOwogCWNvbmZpZy5wcml2ID0gcHJpdjsKLQljb25maWcuc2l6ZSA9IHJlc291 cmNlX3NpemUocmVzKTsKKwljb25maWcuc2l6ZSA9IHByaXYtPm52bWVtX3NpemU7CiAKIAlyZXR1 cm4gUFRSX0VSUl9PUl9aRVJPKGRldm1fbnZtZW1fcmVnaXN0ZXIoZGV2LCAmY29uZmlnKSk7CiB9 Ci0tIAoyLjM1LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==