From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DB3B33ED for ; Thu, 9 Mar 2023 09:37:37 +0000 (UTC) Received: by mail-ed1-f53.google.com with SMTP id x3so4415476edb.10 for ; Thu, 09 Mar 2023 01:37:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678354655; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=t9Y/Oa7mx4j+h43gXLA031WTG/ytRgcE0HI9BVvs1sTIsXsBhM1bCfnYZ4cVr/STCz OS/AOL+kGDJ5PTj+Bh3cs1iijviAjScDyMdy977LvYDwqfTScO5Kk7xLX7v8ToEMtdrd FxSX8E8iFw7E2d5twzDQtN0WLI0jHffj5bPPj/v/qkVYjvW+XRTHUCVVsiqVjkPR9gCy VqK57hTtldZOVEJVV5oPeknv36jOijWWBJohu+XHgJBHZiCnZcgrDTasV7XOnHisELP1 AxL5iL8edzdsVAGlFxWdipBWPuTipQ1svB53tR4JY36m9jh2uw9wIyoL1MwrkpJhhEGJ v3Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678354655; 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:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=ZFcJVB2INsfnWxiKt25iVfabEzL/YBtdpx+5dUBwKAxU1o1MjODqy7qL0m7C55VuGp v246zQbXDUZAcU43HftoHwjBQqMMpf1lqnMvVExkibcOob4OOh57tzqzolRms9DufGDF rEDrIuaTDaO/ZDQO9pE+Ej2fdHnBm2IydVaqj4jLZ8uQc3j0AjUbjaLBrS396iHZSOKM V77K5ZksBI+iJc3bwPNfsGsy3JpMLUHe/qYa5A4cjkPnhZun0Swgr+oHZTTLfQ5b01yH QyLiHWWqRrhlz+lcMtb0Wbfnk7sznF6Noo/UTbkYryxEdhMFr61Z9CkYoelCBikULaL+ Sw1A== X-Gm-Message-State: AO0yUKUeRGmQZzRmuvRHRJ5kXPbjPrMG3HIonBP8Z0XwuaGNv616HK0M q3KSNOE9RVaT9BYhzAbbIShRtA== X-Google-Smtp-Source: AK7set8RaHglZb/tbGRd38GxDvcsu6FHEHtwnBUbEYArd4Ax9m25A8WDyYVjR6ifdgkC/7IF4tS8xQ== X-Received: by 2002:a17:906:546:b0:8b1:78bc:7508 with SMTP id k6-20020a170906054600b008b178bc7508mr18999307eja.20.1678354655512; Thu, 09 Mar 2023 01:37:35 -0800 (PST) Received: from [192.168.1.195] ([5.133.47.210]) by smtp.googlemail.com with ESMTPSA id qt2-20020a170906ece200b008e938e98046sm8557373ejb.223.2023.03.09.01.37.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Mar 2023 01:37:34 -0800 (PST) Message-ID: Date: Thu, 9 Mar 2023 09:37:32 +0000 Precedence: bulk X-Mailing-List: asahi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH V2] nvmem: add explicit config option to read OF fixed cells Content-Language: en-US To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Hector Martin , Sven Peter , Alyssa Rosenzweig , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Claudiu Beznea , Matthias Brugger , AngeloGioacchino Del Regno , Andy Gross , Bjorn Andersson , Konrad Dybcio , Heiko Stuebner , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vincent Shih , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Alessandro Zummo , Alexandre Belloni , Evgeniy Polyakov , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-rtc@vger.kernel.org, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= References: <20230224072903.20945-1-zajec5@gmail.com> From: Srinivas Kandagatla In-Reply-To: <20230224072903.20945-1-zajec5@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 24/02/2023 07:29, Rafał Miłecki wrote: > From: Rafał Miłecki > > NVMEM subsystem looks for fixed NVMEM cells (specified in DT) by > default. This behaviour made sense in early days before adding support > for dynamic cells. > > With every new supported NVMEM device with dynamic cells current > behaviour becomes non-optimal. It results in unneeded iterating over DT > nodes and may result in false discovery of cells (depending on used DT > properties). > > This behaviour has actually caused a problem already with the MTD > subsystem. MTD subpartitions were incorrectly treated as NVMEM cells. > > Also with upcoming support for NVMEM layouts no new binding or driver > should support fixed cells defined in device node. This is not very clear, are you saying that we should not support fixed cells? If that is the case then you are proabably taking this in wrong direction. nvmem was built based on the fact that drivers can read from a fixed offsets. Dynamic cells is something very new, that does not mean that we should ditch fixed cells support in dt. > > Solve this by modifying drivers for bindings that support specifying > fixed NVMEM cells in DT. Make them explicitly tell NVMEM subsystem to > read cells from DT. Shouldn't this be opposite, let the new providers tell that cells are created at runtime? or even better if there is a way to detect if we can set this flag dynamically based on layout/post-processing configuration. that should be much cleaner approch. note, I have not read all the review discussions emails, so please ignore any duplicate comments. --srini > > It wasn't clear (to me) if rtc and w1 code actually uses fixed cells. I > enabled them to don't risk any breakage. > > Signed-off-by: Rafał Miłecki > [for drivers/nvmem/meson-{efuse,mx-efuse}.c] > Acked-by: Martin Blumenstingl > --- > V2: Fix stm32-romem.c typo breaking its compilation > Pick Martin's Acked-by > Add paragraph about layouts deprecating use_fixed_of_cells > --- > drivers/mtd/mtdcore.c | 2 ++ > drivers/nvmem/apple-efuses.c | 1 + > drivers/nvmem/core.c | 8 +++++--- > drivers/nvmem/imx-ocotp-scu.c | 1 + > drivers/nvmem/imx-ocotp.c | 1 + > drivers/nvmem/meson-efuse.c | 1 + > drivers/nvmem/meson-mx-efuse.c | 1 + > drivers/nvmem/microchip-otpc.c | 1 + > drivers/nvmem/mtk-efuse.c | 1 + > drivers/nvmem/qcom-spmi-sdam.c | 1 + > drivers/nvmem/qfprom.c | 1 + > drivers/nvmem/rave-sp-eeprom.c | 1 + > drivers/nvmem/rockchip-efuse.c | 1 + > drivers/nvmem/sc27xx-efuse.c | 1 + > drivers/nvmem/sprd-efuse.c | 1 + > drivers/nvmem/stm32-romem.c | 1 + > drivers/nvmem/sunplus-ocotp.c | 1 + > drivers/nvmem/sunxi_sid.c | 1 + > drivers/nvmem/uniphier-efuse.c | 1 + > drivers/nvmem/zynqmp_nvmem.c | 1 + > drivers/rtc/nvmem.c | 1 + > drivers/w1/slaves/w1_ds250x.c | 1 + > include/linux/nvmem-provider.h | 2 ++ > 23 files changed, 29 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c > index 0feacb9fbdac..1bb479c0f758 100644 > --- a/drivers/mtd/mtdcore.c > +++ b/drivers/mtd/mtdcore.c > @@ -523,6 +523,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd) > config.dev = &mtd->dev; > config.name = dev_name(&mtd->dev); > config.owner = THIS_MODULE; > + config.use_fixed_of_cells = of_device_is_compatible(node, "nvmem-cells"); > config.reg_read = mtd_nvmem_reg_read; > config.size = mtd->size; > config.word_size = 1; > @@ -891,6 +892,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd, > config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible); > config.id = NVMEM_DEVID_NONE; > config.owner = THIS_MODULE; > + config.use_fixed_of_cells = true; > config.type = NVMEM_TYPE_OTP; > config.root_only = true; > config.ignore_wp = true; > diff --git a/drivers/nvmem/apple-efuses.c b/drivers/nvmem/apple-efuses.c > index 9b7c87102104..0119bac43b2c 100644 > --- a/drivers/nvmem/apple-efuses.c > +++ b/drivers/nvmem/apple-efuses.c > @@ -36,6 +36,7 @@ static int apple_efuses_probe(struct platform_device *pdev) > struct resource *res; > struct nvmem_config config = { > .dev = &pdev->dev, > + .use_fixed_of_cells = true, > .read_only = true, > .reg_read = apple_efuses_read, > .stride = sizeof(u32), > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c > index 174ef3574e07..6783cd8478d7 100644 > --- a/drivers/nvmem/core.c > +++ b/drivers/nvmem/core.c > @@ -844,9 +844,11 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) > if (rval) > goto err_remove_cells; > > - rval = nvmem_add_cells_from_of(nvmem); > - if (rval) > - goto err_remove_cells; > + if (config->use_fixed_of_cells) { > + rval = nvmem_add_cells_from_of(nvmem); > + if (rval) > + goto err_remove_cells; > + } > > dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name); > > diff --git a/drivers/nvmem/imx-ocotp-scu.c b/drivers/nvmem/imx-ocotp-scu.c > index 399e1eb8b4c1..ec5cce7c6697 100644 > --- a/drivers/nvmem/imx-ocotp-scu.c > +++ b/drivers/nvmem/imx-ocotp-scu.c > @@ -220,6 +220,7 @@ static int imx_scu_ocotp_write(void *context, unsigned int offset, > > static struct nvmem_config imx_scu_ocotp_nvmem_config = { > .name = "imx-scu-ocotp", > + .use_fixed_of_cells = true, > .read_only = false, > .word_size = 4, > .stride = 1, > diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c > index e9b52ecb3f72..e37a82f98ba6 100644 > --- a/drivers/nvmem/imx-ocotp.c > +++ b/drivers/nvmem/imx-ocotp.c > @@ -616,6 +616,7 @@ static int imx_ocotp_probe(struct platform_device *pdev) > return PTR_ERR(priv->clk); > > priv->params = of_device_get_match_data(&pdev->dev); > + imx_ocotp_nvmem_config.use_fixed_of_cells = true; > imx_ocotp_nvmem_config.size = 4 * priv->params->nregs; > imx_ocotp_nvmem_config.dev = dev; > imx_ocotp_nvmem_config.priv = priv; > diff --git a/drivers/nvmem/meson-efuse.c b/drivers/nvmem/meson-efuse.c > index d6b533497ce1..657e171d5af3 100644 > --- a/drivers/nvmem/meson-efuse.c > +++ b/drivers/nvmem/meson-efuse.c > @@ -93,6 +93,7 @@ static int meson_efuse_probe(struct platform_device *pdev) > > econfig->dev = dev; > econfig->name = dev_name(dev); > + econfig->use_fixed_of_cells = true; > econfig->stride = 1; > econfig->word_size = 1; > econfig->reg_read = meson_efuse_read; > diff --git a/drivers/nvmem/meson-mx-efuse.c b/drivers/nvmem/meson-mx-efuse.c > index 13eb14316f46..7cc51391ec9c 100644 > --- a/drivers/nvmem/meson-mx-efuse.c > +++ b/drivers/nvmem/meson-mx-efuse.c > @@ -213,6 +213,7 @@ static int meson_mx_efuse_probe(struct platform_device *pdev) > efuse->config.owner = THIS_MODULE; > efuse->config.dev = &pdev->dev; > efuse->config.priv = efuse; > + efuse->config.use_fixed_of_cells = true; > efuse->config.stride = drvdata->word_size; > efuse->config.word_size = drvdata->word_size; > efuse->config.size = SZ_512; > diff --git a/drivers/nvmem/microchip-otpc.c b/drivers/nvmem/microchip-otpc.c > index 436e0dc4f337..fb920fd7a8fc 100644 > --- a/drivers/nvmem/microchip-otpc.c > +++ b/drivers/nvmem/microchip-otpc.c > @@ -261,6 +261,7 @@ static int mchp_otpc_probe(struct platform_device *pdev) > return ret; > > mchp_nvmem_config.dev = otpc->dev; > + mchp_nvmem_config.use_fixed_of_cells = true; > mchp_nvmem_config.size = size; > mchp_nvmem_config.priv = otpc; > nvmem = devm_nvmem_register(&pdev->dev, &mchp_nvmem_config); > diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c > index a08e0aedd21c..1947337a121f 100644 > --- a/drivers/nvmem/mtk-efuse.c > +++ b/drivers/nvmem/mtk-efuse.c > @@ -45,6 +45,7 @@ static int mtk_efuse_probe(struct platform_device *pdev) > if (IS_ERR(priv->base)) > return PTR_ERR(priv->base); > > + econfig.use_fixed_of_cells = true; > econfig.stride = 1; > econfig.word_size = 1; > econfig.reg_read = mtk_reg_read; > diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c > index f822790db49e..b547def94b5b 100644 > --- a/drivers/nvmem/qcom-spmi-sdam.c > +++ b/drivers/nvmem/qcom-spmi-sdam.c > @@ -142,6 +142,7 @@ static int sdam_probe(struct platform_device *pdev) > sdam->sdam_config.name = "spmi_sdam"; > sdam->sdam_config.id = NVMEM_DEVID_AUTO; > sdam->sdam_config.owner = THIS_MODULE; > + sdam->sdam_config.use_fixed_of_cells = true; > sdam->sdam_config.stride = 1; > sdam->sdam_config.word_size = 1; > sdam->sdam_config.reg_read = sdam_read; > diff --git a/drivers/nvmem/qfprom.c b/drivers/nvmem/qfprom.c > index c1e893c8a247..eb126d507561 100644 > --- a/drivers/nvmem/qfprom.c > +++ b/drivers/nvmem/qfprom.c > @@ -357,6 +357,7 @@ static int qfprom_probe(struct platform_device *pdev) > { > struct nvmem_config econfig = { > .name = "qfprom", > + .use_fixed_of_cells = true, > .stride = 1, > .word_size = 1, > .id = NVMEM_DEVID_AUTO, > diff --git a/drivers/nvmem/rave-sp-eeprom.c b/drivers/nvmem/rave-sp-eeprom.c > index c456011b75e8..e9b4c7927e37 100644 > --- a/drivers/nvmem/rave-sp-eeprom.c > +++ b/drivers/nvmem/rave-sp-eeprom.c > @@ -328,6 +328,7 @@ static int rave_sp_eeprom_probe(struct platform_device *pdev) > of_property_read_string(np, "zii,eeprom-name", &config.name); > config.priv = eeprom; > config.dev = dev; > + config.use_fixed_of_cells = true; > config.size = size; > config.reg_read = rave_sp_eeprom_reg_read; > config.reg_write = rave_sp_eeprom_reg_write; > diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c > index e4579de5d014..211f6e7401a9 100644 > --- a/drivers/nvmem/rockchip-efuse.c > +++ b/drivers/nvmem/rockchip-efuse.c > @@ -205,6 +205,7 @@ static int rockchip_rk3399_efuse_read(void *context, unsigned int offset, > > static struct nvmem_config econfig = { > .name = "rockchip-efuse", > + .use_fixed_of_cells = true, > .stride = 1, > .word_size = 1, > .read_only = true, > diff --git a/drivers/nvmem/sc27xx-efuse.c b/drivers/nvmem/sc27xx-efuse.c > index c825fc902d10..ed5cc4f3e2bc 100644 > --- a/drivers/nvmem/sc27xx-efuse.c > +++ b/drivers/nvmem/sc27xx-efuse.c > @@ -248,6 +248,7 @@ static int sc27xx_efuse_probe(struct platform_device *pdev) > econfig.reg_read = sc27xx_efuse_read; > econfig.priv = efuse; > econfig.dev = &pdev->dev; > + econfig.use_fixed_of_cells = true; > nvmem = devm_nvmem_register(&pdev->dev, &econfig); > if (IS_ERR(nvmem)) { > dev_err(&pdev->dev, "failed to register nvmem config\n"); > diff --git a/drivers/nvmem/sprd-efuse.c b/drivers/nvmem/sprd-efuse.c > index 4f1fcbfec394..ef3161645f60 100644 > --- a/drivers/nvmem/sprd-efuse.c > +++ b/drivers/nvmem/sprd-efuse.c > @@ -408,6 +408,7 @@ static int sprd_efuse_probe(struct platform_device *pdev) > econfig.read_only = false; > econfig.name = "sprd-efuse"; > econfig.size = efuse->data->blk_nums * SPRD_EFUSE_BLOCK_WIDTH; > + econfig.use_fixed_of_cells = true; > econfig.reg_read = sprd_efuse_read; > econfig.reg_write = sprd_efuse_write; > econfig.priv = efuse; > diff --git a/drivers/nvmem/stm32-romem.c b/drivers/nvmem/stm32-romem.c > index ba779e26937a..a6fc43acb797 100644 > --- a/drivers/nvmem/stm32-romem.c > +++ b/drivers/nvmem/stm32-romem.c > @@ -208,6 +208,7 @@ static int stm32_romem_probe(struct platform_device *pdev) > priv->cfg.priv = priv; > priv->cfg.owner = THIS_MODULE; > priv->cfg.type = NVMEM_TYPE_OTP; > + priv->cfg.use_fixed_of_cells = true; > > priv->lower = 0; > > diff --git a/drivers/nvmem/sunplus-ocotp.c b/drivers/nvmem/sunplus-ocotp.c > index 52b928a7a6d5..57e3e0833b85 100644 > --- a/drivers/nvmem/sunplus-ocotp.c > +++ b/drivers/nvmem/sunplus-ocotp.c > @@ -145,6 +145,7 @@ static int sp_ocotp_read(void *priv, unsigned int offset, void *value, size_t by > > static struct nvmem_config sp_ocotp_nvmem_config = { > .name = "sp-ocotp", > + .use_fixed_of_cells = true, > .read_only = true, > .word_size = 1, > .size = QAC628_OTP_SIZE, > diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c > index a970f1741cc6..6ab7aa3724a0 100644 > --- a/drivers/nvmem/sunxi_sid.c > +++ b/drivers/nvmem/sunxi_sid.c > @@ -156,6 +156,7 @@ static int sunxi_sid_probe(struct platform_device *pdev) > nvmem_cfg->dev = dev; > nvmem_cfg->name = "sunxi-sid"; > nvmem_cfg->type = NVMEM_TYPE_OTP; > + nvmem_cfg->use_fixed_of_cells = true; > nvmem_cfg->read_only = true; > nvmem_cfg->size = cfg->size; > nvmem_cfg->word_size = 1; > diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c > index aca910b3b6f8..69b9dfe6ab6e 100644 > --- a/drivers/nvmem/uniphier-efuse.c > +++ b/drivers/nvmem/uniphier-efuse.c > @@ -53,6 +53,7 @@ static int uniphier_efuse_probe(struct platform_device *pdev) > econfig.size = resource_size(res); > econfig.priv = priv; > econfig.dev = dev; > + econfig.use_fixed_of_cells = true; > nvmem = devm_nvmem_register(dev, &econfig); > > return PTR_ERR_OR_ZERO(nvmem); > diff --git a/drivers/nvmem/zynqmp_nvmem.c b/drivers/nvmem/zynqmp_nvmem.c > index e28d7b133e11..d13750a4c112 100644 > --- a/drivers/nvmem/zynqmp_nvmem.c > +++ b/drivers/nvmem/zynqmp_nvmem.c > @@ -58,6 +58,7 @@ static int zynqmp_nvmem_probe(struct platform_device *pdev) > > priv->dev = dev; > econfig.dev = dev; > + econfig.use_fixed_of_cells = true; > econfig.reg_read = zynqmp_nvmem_read; > econfig.priv = priv; > > diff --git a/drivers/rtc/nvmem.c b/drivers/rtc/nvmem.c > index 07ede21cee34..5cc039d92257 100644 > --- a/drivers/rtc/nvmem.c > +++ b/drivers/rtc/nvmem.c > @@ -21,6 +21,7 @@ int devm_rtc_nvmem_register(struct rtc_device *rtc, > > nvmem_config->dev = dev; > nvmem_config->owner = rtc->owner; > + nvmem_config->use_fixed_of_cells = true; > nvmem = devm_nvmem_register(dev, nvmem_config); > if (IS_ERR(nvmem)) > dev_err(dev, "failed to register nvmem device for RTC\n"); > diff --git a/drivers/w1/slaves/w1_ds250x.c b/drivers/w1/slaves/w1_ds250x.c > index 7592c7050d1d..538722b41f87 100644 > --- a/drivers/w1/slaves/w1_ds250x.c > +++ b/drivers/w1/slaves/w1_ds250x.c > @@ -168,6 +168,7 @@ static int w1_eprom_add_slave(struct w1_slave *sl) > struct nvmem_device *nvmem; > struct nvmem_config nvmem_cfg = { > .dev = &sl->dev, > + .use_fixed_of_cells = true, > .reg_read = w1_nvmem_read, > .type = NVMEM_TYPE_OTP, > .read_only = true, > diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h > index 0262b86194eb..b3c14ce87a65 100644 > --- a/include/linux/nvmem-provider.h > +++ b/include/linux/nvmem-provider.h > @@ -73,6 +73,7 @@ struct nvmem_cell_info { > * @owner: Pointer to exporter module. Used for refcounting. > * @cells: Optional array of pre-defined NVMEM cells. > * @ncells: Number of elements in cells. > + * @use_fixed_of_cells: Read fixed NVMEM cells from OF. > * @keepout: Optional array of keepout ranges (sorted ascending by start). > * @nkeepout: Number of elements in the keepout array. > * @type: Type of the nvmem storage > @@ -103,6 +104,7 @@ struct nvmem_config { > struct module *owner; > const struct nvmem_cell_info *cells; > int ncells; > + bool use_fixed_of_cells; > const struct nvmem_keepout *keepout; > unsigned int nkeepout; > enum nvmem_type type; 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 14978C61DA4 for ; Thu, 9 Mar 2023 09:38:00 +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=ED3MjO/8mdszgBj4CWpmx8deW8O1FA+C7SatkjoHW3k=; b=ajTaq3rpyxD66G 03ejJuhedfEPmzXnbCyR9Qr/hSUTlTBCVWt3tC7HnImwa9uMbm8+VMuA2lCBIcPJc6+jDB44/mORW 00HwlHly+5z4HzLRoxhjp7xNRDi+urKL2JaRvcBE5UFs1Szhiqz9XUmTTTkPYZzJVHndbsirl7pax WXxNPSaUKZmCVAiD9VAVpgqWBTohbzbFxxTPcasu8kByC3M1dd746S21ZWdPNsvvGhp7HhYmmvh2/ rSz+Mjx71fI23C2EiiIGAlKvwaBS+Bd3vfPk0zYpAsW0N50CpN6sV74dYmH337nP4rjQ5KcncF2QT a/J8wkFicfJ1MczYjgmQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1paCiZ-008qG3-Kb; Thu, 09 Mar 2023 09:37:47 +0000 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1paCiQ-008qBG-Dx for linux-amlogic@lists.infradead.org; Thu, 09 Mar 2023 09:37:43 +0000 Received: by mail-ed1-x533.google.com with SMTP id j11so4493220edq.4 for ; Thu, 09 Mar 2023 01:37:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678354655; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=t9Y/Oa7mx4j+h43gXLA031WTG/ytRgcE0HI9BVvs1sTIsXsBhM1bCfnYZ4cVr/STCz OS/AOL+kGDJ5PTj+Bh3cs1iijviAjScDyMdy977LvYDwqfTScO5Kk7xLX7v8ToEMtdrd FxSX8E8iFw7E2d5twzDQtN0WLI0jHffj5bPPj/v/qkVYjvW+XRTHUCVVsiqVjkPR9gCy VqK57hTtldZOVEJVV5oPeknv36jOijWWBJohu+XHgJBHZiCnZcgrDTasV7XOnHisELP1 AxL5iL8edzdsVAGlFxWdipBWPuTipQ1svB53tR4JY36m9jh2uw9wIyoL1MwrkpJhhEGJ v3Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678354655; 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:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=1sFJxC3pcSqRkpFLxJOsjNg6kCFSwLOnhQdtKDAHczRTwUt9Gy4GyZdwkuIQ4Crti6 M9IahT48WIVlLwnjwNYoqRpPcTgWp25FfDcUr/R/o2JLsRdYN34GJ6U+QShO0vghO/VQ LGDScmfUuTJcrfgzFDnjXT/NPW0JxChvcvM2bBouicGCuZRUaREcMsM2nxMlXWFNY3kJ M+ieoUf7tys+aEpUpvwTkbqlMJsXiiUo1kikR8qR+RWjdrzp3ys8KWrC6Ms76/wMgOi7 HFSCXaAgjAshbN5043B9CbeGQv6kgdrPWa9VkcfELnxiTwuUwZXYR36Q/wrg+01F2eN7 ZlLA== X-Gm-Message-State: AO0yUKVq4JrbjCKeplpxlMncalt7CYH9H+wWbkgZvTZh+nxueY278lNW yw0PVzknoOloU3t4Jg4sc2/pPA== X-Google-Smtp-Source: AK7set8RaHglZb/tbGRd38GxDvcsu6FHEHtwnBUbEYArd4Ax9m25A8WDyYVjR6ifdgkC/7IF4tS8xQ== X-Received: by 2002:a17:906:546:b0:8b1:78bc:7508 with SMTP id k6-20020a170906054600b008b178bc7508mr18999307eja.20.1678354655512; Thu, 09 Mar 2023 01:37:35 -0800 (PST) Received: from [192.168.1.195] ([5.133.47.210]) by smtp.googlemail.com with ESMTPSA id qt2-20020a170906ece200b008e938e98046sm8557373ejb.223.2023.03.09.01.37.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Mar 2023 01:37:34 -0800 (PST) Message-ID: Date: Thu, 9 Mar 2023 09:37:32 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH V2] nvmem: add explicit config option to read OF fixed cells Content-Language: en-US To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Hector Martin , Sven Peter , Alyssa Rosenzweig , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Claudiu Beznea , Matthias Brugger , AngeloGioacchino Del Regno , Andy Gross , Bjorn Andersson , Konrad Dybcio , Heiko Stuebner , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vincent Shih , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Alessandro Zummo , Alexandre Belloni , Evgeniy Polyakov , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-rtc@vger.kernel.org, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= References: <20230224072903.20945-1-zajec5@gmail.com> From: Srinivas Kandagatla In-Reply-To: <20230224072903.20945-1-zajec5@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230309_013738_488493_4E8EEBF4 X-CRM114-Status: GOOD ( 34.66 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org CgpPbiAyNC8wMi8yMDIzIDA3OjI5LCBSYWZhxYIgTWnFgmVja2kgd3JvdGU6Cj4gRnJvbTogUmFm YcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgo+IAo+IE5WTUVNIHN1YnN5c3RlbSBsb29r cyBmb3IgZml4ZWQgTlZNRU0gY2VsbHMgKHNwZWNpZmllZCBpbiBEVCkgYnkKPiBkZWZhdWx0LiBU aGlzIGJlaGF2aW91ciBtYWRlIHNlbnNlIGluIGVhcmx5IGRheXMgYmVmb3JlIGFkZGluZyBzdXBw b3J0Cj4gZm9yIGR5bmFtaWMgY2VsbHMuCj4gCj4gV2l0aCBldmVyeSBuZXcgc3VwcG9ydGVkIE5W TUVNIGRldmljZSB3aXRoIGR5bmFtaWMgY2VsbHMgY3VycmVudAo+IGJlaGF2aW91ciBiZWNvbWVz IG5vbi1vcHRpbWFsLiBJdCByZXN1bHRzIGluIHVubmVlZGVkIGl0ZXJhdGluZyBvdmVyIERUCj4g bm9kZXMgYW5kIG1heSByZXN1bHQgaW4gZmFsc2UgZGlzY292ZXJ5IG9mIGNlbGxzIChkZXBlbmRp bmcgb24gdXNlZCBEVAo+IHByb3BlcnRpZXMpLgoKPiAKPiBUaGlzIGJlaGF2aW91ciBoYXMgYWN0 dWFsbHkgY2F1c2VkIGEgcHJvYmxlbSBhbHJlYWR5IHdpdGggdGhlIE1URAo+IHN1YnN5c3RlbS4g TVREIHN1YnBhcnRpdGlvbnMgd2VyZSBpbmNvcnJlY3RseSB0cmVhdGVkIGFzIE5WTUVNIGNlbGxz Lgo+IAo+IEFsc28gd2l0aCB1cGNvbWluZyBzdXBwb3J0IGZvciBOVk1FTSBsYXlvdXRzIG5vIG5l dyBiaW5kaW5nIG9yIGRyaXZlcgo+IHNob3VsZCBzdXBwb3J0IGZpeGVkIGNlbGxzIGRlZmluZWQg aW4gZGV2aWNlIG5vZGUuCgpUaGlzIGlzIG5vdCB2ZXJ5IGNsZWFyLCBhcmUgeW91IHNheWluZyB0 aGF0IHdlIHNob3VsZCBub3Qgc3VwcG9ydCBmaXhlZCAKY2VsbHM/IElmIHRoYXQgaXMgdGhlIGNh c2UgdGhlbiB5b3UgYXJlIHByb2FiYWJseSB0YWtpbmcgdGhpcyBpbiB3cm9uZyAKZGlyZWN0aW9u LiBudm1lbSB3YXMgYnVpbHQgYmFzZWQgb24gdGhlIGZhY3QgdGhhdCBkcml2ZXJzIGNhbiByZWFk IGZyb20gCmEgZml4ZWQgb2Zmc2V0cy4gRHluYW1pYyBjZWxscyBpcyBzb21ldGhpbmcgdmVyeSBu ZXcsIHRoYXQgZG9lcyBub3QgbWVhbiAKdGhhdCB3ZSBzaG91bGQgZGl0Y2ggZml4ZWQgY2VsbHMg c3VwcG9ydCBpbiBkdC4KCj4gCj4gU29sdmUgdGhpcyBieSBtb2RpZnlpbmcgZHJpdmVycyBmb3Ig YmluZGluZ3MgdGhhdCBzdXBwb3J0IHNwZWNpZnlpbmcKPiBmaXhlZCBOVk1FTSBjZWxscyBpbiBE VC4gTWFrZSB0aGVtIGV4cGxpY2l0bHkgdGVsbCBOVk1FTSBzdWJzeXN0ZW0gdG8KPiByZWFkIGNl bGxzIGZyb20gRFQuCgpTaG91bGRuJ3QgdGhpcyBiZSBvcHBvc2l0ZSwgbGV0IHRoZSBuZXcgcHJv dmlkZXJzIHRlbGwgdGhhdCBjZWxscyBhcmUgCmNyZWF0ZWQgYXQgcnVudGltZT8KCm9yIGV2ZW4g YmV0dGVyIGlmIHRoZXJlIGlzIGEgd2F5IHRvIGRldGVjdCBpZiB3ZSBjYW4gc2V0IHRoaXMgZmxh ZyAKZHluYW1pY2FsbHkgYmFzZWQgb24gbGF5b3V0L3Bvc3QtcHJvY2Vzc2luZyBjb25maWd1cmF0 aW9uLgoKdGhhdCBzaG91bGQgYmUgbXVjaCBjbGVhbmVyIGFwcHJvY2guCgpub3RlLCBJIGhhdmUg bm90IHJlYWQgYWxsIHRoZSByZXZpZXcgZGlzY3Vzc2lvbnMgZW1haWxzLCBzbyBwbGVhc2UgCmln bm9yZSBhbnkgZHVwbGljYXRlIGNvbW1lbnRzLgoKLS1zcmluaQoKPiAKPiBJdCB3YXNuJ3QgY2xl YXIgKHRvIG1lKSBpZiBydGMgYW5kIHcxIGNvZGUgYWN0dWFsbHkgdXNlcyBmaXhlZCBjZWxscy4g SQo+IGVuYWJsZWQgdGhlbSB0byBkb24ndCByaXNrIGFueSBicmVha2FnZS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBSYWZhxYIgTWnFgmVja2kgPHJhZmFsQG1pbGVja2kucGw+Cj4gW2ZvciBkcml2ZXJz L252bWVtL21lc29uLXtlZnVzZSxteC1lZnVzZX0uY10KPiBBY2tlZC1ieTogTWFydGluIEJsdW1l bnN0aW5nbCA8bWFydGluLmJsdW1lbnN0aW5nbEBnb29nbGVtYWlsLmNvbT4KPiAtLS0KPiBWMjog Rml4IHN0bTMyLXJvbWVtLmMgdHlwbyBicmVha2luZyBpdHMgY29tcGlsYXRpb24KPiAgICAgIFBp Y2sgTWFydGluJ3MgQWNrZWQtYnkKPiAgICAgIEFkZCBwYXJhZ3JhcGggYWJvdXQgbGF5b3V0cyBk ZXByZWNhdGluZyB1c2VfZml4ZWRfb2ZfY2VsbHMKPiAtLS0KPiAgIGRyaXZlcnMvbXRkL210ZGNv cmUuYyAgICAgICAgICB8IDIgKysKPiAgIGRyaXZlcnMvbnZtZW0vYXBwbGUtZWZ1c2VzLmMgICB8 IDEgKwo+ICAgZHJpdmVycy9udm1lbS9jb3JlLmMgICAgICAgICAgIHwgOCArKysrKy0tLQo+ICAg ZHJpdmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMgIHwgMSArCj4gICBkcml2ZXJzL252bWVtL2lt eC1vY290cC5jICAgICAgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0vbWVzb24tZWZ1c2UuYyAgICB8 IDEgKwo+ICAgZHJpdmVycy9udm1lbS9tZXNvbi1teC1lZnVzZS5jIHwgMSArCj4gICBkcml2ZXJz L252bWVtL21pY3JvY2hpcC1vdHBjLmMgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0vbXRrLWVmdXNl LmMgICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5jIHwgMSArCj4g ICBkcml2ZXJzL252bWVtL3FmcHJvbS5jICAgICAgICAgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0v cmF2ZS1zcC1lZXByb20uYyB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9yb2NrY2hpcC1lZnVzZS5j IHwgMSArCj4gICBkcml2ZXJzL252bWVtL3NjMjd4eC1lZnVzZS5jICAgfCAxICsKPiAgIGRyaXZl cnMvbnZtZW0vc3ByZC1lZnVzZS5jICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9zdG0zMi1y b21lbS5jICAgIHwgMSArCj4gICBkcml2ZXJzL252bWVtL3N1bnBsdXMtb2NvdHAuYyAgfCAxICsK PiAgIGRyaXZlcnMvbnZtZW0vc3VueGlfc2lkLmMgICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1l bS91bmlwaGllci1lZnVzZS5jIHwgMSArCj4gICBkcml2ZXJzL252bWVtL3p5bnFtcF9udm1lbS5j ICAgfCAxICsKPiAgIGRyaXZlcnMvcnRjL252bWVtLmMgICAgICAgICAgICB8IDEgKwo+ICAgZHJp dmVycy93MS9zbGF2ZXMvdzFfZHMyNTB4LmMgIHwgMSArCj4gICBpbmNsdWRlL2xpbnV4L252bWVt LXByb3ZpZGVyLmggfCAyICsrCj4gICAyMyBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tdGRjb3JlLmMg Yi9kcml2ZXJzL210ZC9tdGRjb3JlLmMKPiBpbmRleCAwZmVhY2I5ZmJkYWMuLjFiYjQ3OWMwZjc1 OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL210ZC9tdGRjb3JlLmMKPiArKysgYi9kcml2ZXJzL210 ZC9tdGRjb3JlLmMKPiBAQCAtNTIzLDYgKzUyMyw3IEBAIHN0YXRpYyBpbnQgbXRkX252bWVtX2Fk ZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKPiAgIAljb25maWcuZGV2ID0gJm10ZC0+ZGV2Owo+ICAg CWNvbmZpZy5uYW1lID0gZGV2X25hbWUoJm10ZC0+ZGV2KTsKPiAgIAljb25maWcub3duZXIgPSBU SElTX01PRFVMRTsKPiArCWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSBvZl9kZXZpY2VfaXNf Y29tcGF0aWJsZShub2RlLCAibnZtZW0tY2VsbHMiKTsKPiAgIAljb25maWcucmVnX3JlYWQgPSBt dGRfbnZtZW1fcmVnX3JlYWQ7Cj4gICAJY29uZmlnLnNpemUgPSBtdGQtPnNpemU7Cj4gICAJY29u ZmlnLndvcmRfc2l6ZSA9IDE7Cj4gQEAgLTg5MSw2ICs4OTIsNyBAQCBzdGF0aWMgc3RydWN0IG52 bWVtX2RldmljZSAqbXRkX290cF9udm1lbV9yZWdpc3RlcihzdHJ1Y3QgbXRkX2luZm8gKm10ZCwK PiAgIAljb25maWcubmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXMtJXMiLCBkZXZfbmFt ZSgmbXRkLT5kZXYpLCBjb21wYXRpYmxlKTsKPiAgIAljb25maWcuaWQgPSBOVk1FTV9ERVZJRF9O T05FOwo+ICAgCWNvbmZpZy5vd25lciA9IFRISVNfTU9EVUxFOwo+ICsJY29uZmlnLnVzZV9maXhl ZF9vZl9jZWxscyA9IHRydWU7Cj4gICAJY29uZmlnLnR5cGUgPSBOVk1FTV9UWVBFX09UUDsKPiAg IAljb25maWcucm9vdF9vbmx5ID0gdHJ1ZTsKPiAgIAljb25maWcuaWdub3JlX3dwID0gdHJ1ZTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9hcHBsZS1lZnVzZXMuYyBiL2RyaXZlcnMvbnZt ZW0vYXBwbGUtZWZ1c2VzLmMKPiBpbmRleCA5YjdjODcxMDIxMDQuLjAxMTliYWM0M2IyYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL2FwcGxlLWVmdXNlcy5jCj4gKysrIGIvZHJpdmVycy9u dm1lbS9hcHBsZS1lZnVzZXMuYwo+IEBAIC0zNiw2ICszNiw3IEBAIHN0YXRpYyBpbnQgYXBwbGVf ZWZ1c2VzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJc3RydWN0IHJl c291cmNlICpyZXM7Cj4gICAJc3RydWN0IG52bWVtX2NvbmZpZyBjb25maWcgPSB7Cj4gICAJCS5k ZXYgPSAmcGRldi0+ZGV2LAo+ICsJCS51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlLAo+ICAgCQku cmVhZF9vbmx5ID0gdHJ1ZSwKPiAgIAkJLnJlZ19yZWFkID0gYXBwbGVfZWZ1c2VzX3JlYWQsCj4g ICAJCS5zdHJpZGUgPSBzaXplb2YodTMyKSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9j b3JlLmMgYi9kcml2ZXJzL252bWVtL2NvcmUuYwo+IGluZGV4IDE3NGVmMzU3NGUwNy4uNjc4M2Nk ODQ3OGQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vY29yZS5jCj4gKysrIGIvZHJpdmVy cy9udm1lbS9jb3JlLmMKPiBAQCAtODQ0LDkgKzg0NCwxMSBAQCBzdHJ1Y3QgbnZtZW1fZGV2aWNl ICpudm1lbV9yZWdpc3Rlcihjb25zdCBzdHJ1Y3QgbnZtZW1fY29uZmlnICpjb25maWcpCj4gICAJ aWYgKHJ2YWwpCj4gICAJCWdvdG8gZXJyX3JlbW92ZV9jZWxsczsKPiAgIAo+IC0JcnZhbCA9IG52 bWVtX2FkZF9jZWxsc19mcm9tX29mKG52bWVtKTsKPiAtCWlmIChydmFsKQo+IC0JCWdvdG8gZXJy X3JlbW92ZV9jZWxsczsKPiArCWlmIChjb25maWctPnVzZV9maXhlZF9vZl9jZWxscykgewo+ICsJ CXJ2YWwgPSBudm1lbV9hZGRfY2VsbHNfZnJvbV9vZihudm1lbSk7Cj4gKwkJaWYgKHJ2YWwpCj4g KwkJCWdvdG8gZXJyX3JlbW92ZV9jZWxsczsKPiArCX0KPiAgIAo+ICAgCWRldl9kYmcoJm52bWVt LT5kZXYsICJSZWdpc3RlcmluZyBudm1lbSBkZXZpY2UgJXNcbiIsIGNvbmZpZy0+bmFtZSk7Cj4g ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMgYi9kcml2ZXJz L252bWVtL2lteC1vY290cC1zY3UuYwo+IGluZGV4IDM5OWUxZWI4YjRjMS4uZWM1Y2NlN2M2Njk3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vaW14LW9jb3RwLXNjdS5jCj4gKysrIGIvZHJp dmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMKPiBAQCAtMjIwLDYgKzIyMCw3IEBAIHN0YXRpYyBp bnQgaW14X3NjdV9vY290cF93cml0ZSh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAo+ICAgCj4gICBzdGF0aWMgc3RydWN0IG52bWVtX2NvbmZpZyBpbXhfc2N1X29jb3RwX252bWVt X2NvbmZpZyA9IHsKPiAgIAkubmFtZSA9ICJpbXgtc2N1LW9jb3RwIiwKPiArCS51c2VfZml4ZWRf b2ZfY2VsbHMgPSB0cnVlLAo+ICAgCS5yZWFkX29ubHkgPSBmYWxzZSwKPiAgIAkud29yZF9zaXpl ID0gNCwKPiAgIAkuc3RyaWRlID0gMSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9pbXgt b2NvdHAuYyBiL2RyaXZlcnMvbnZtZW0vaW14LW9jb3RwLmMKPiBpbmRleCBlOWI1MmVjYjNmNzIu LmUzN2E4MmY5OGJhNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL2lteC1vY290cC5jCj4g KysrIGIvZHJpdmVycy9udm1lbS9pbXgtb2NvdHAuYwo+IEBAIC02MTYsNiArNjE2LDcgQEAgc3Rh dGljIGludCBpbXhfb2NvdHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAg IAkJcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiAgIAo+ICAgCXByaXYtPnBhcmFtcyA9IG9m X2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKPiArCWlteF9vY290cF9udm1lbV9j b25maWcudXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAlpbXhfb2NvdHBfbnZtZW1fY29u ZmlnLnNpemUgPSA0ICogcHJpdi0+cGFyYW1zLT5ucmVnczsKPiAgIAlpbXhfb2NvdHBfbnZtZW1f Y29uZmlnLmRldiA9IGRldjsKPiAgIAlpbXhfb2NvdHBfbnZtZW1fY29uZmlnLnByaXYgPSBwcml2 Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL21lc29uLWVmdXNlLmMgYi9kcml2ZXJzL252 bWVtL21lc29uLWVmdXNlLmMKPiBpbmRleCBkNmI1MzM0OTdjZTEuLjY1N2UxNzFkNWFmMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL21lc29uLWVmdXNlLmMKPiArKysgYi9kcml2ZXJzL252 bWVtL21lc29uLWVmdXNlLmMKPiBAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgaW50IG1lc29uX2Vm dXNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAKPiAgIAllY29uZmln LT5kZXYgPSBkZXY7Cj4gICAJZWNvbmZpZy0+bmFtZSA9IGRldl9uYW1lKGRldik7Cj4gKwllY29u ZmlnLT51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCWVjb25maWctPnN0cmlkZSA9IDE7 Cj4gICAJZWNvbmZpZy0+d29yZF9zaXplID0gMTsKPiAgIAllY29uZmlnLT5yZWdfcmVhZCA9IG1l c29uX2VmdXNlX3JlYWQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1 c2UuYyBiL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1c2UuYwo+IGluZGV4IDEzZWIxNDMxNmY0 Ni4uN2NjNTEzOTFlYzljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1 c2UuYwo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1c2UuYwo+IEBAIC0yMTMsNiAr MjEzLDcgQEAgc3RhdGljIGludCBtZXNvbl9teF9lZnVzZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ICAgCWVmdXNlLT5jb25maWcub3duZXIgPSBUSElTX01PRFVMRTsKPiAg IAllZnVzZS0+Y29uZmlnLmRldiA9ICZwZGV2LT5kZXY7Cj4gICAJZWZ1c2UtPmNvbmZpZy5wcml2 ID0gZWZ1c2U7Cj4gKwllZnVzZS0+Y29uZmlnLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4g ICAJZWZ1c2UtPmNvbmZpZy5zdHJpZGUgPSBkcnZkYXRhLT53b3JkX3NpemU7Cj4gICAJZWZ1c2Ut PmNvbmZpZy53b3JkX3NpemUgPSBkcnZkYXRhLT53b3JkX3NpemU7Cj4gICAJZWZ1c2UtPmNvbmZp Zy5zaXplID0gU1pfNTEyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1v dHBjLmMgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMKPiBpbmRleCA0MzZlMGRjNGYz MzcuLmZiOTIwZmQ3YThmYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1v dHBjLmMKPiArKysgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMKPiBAQCAtMjYxLDYg KzI2MSw3IEBAIHN0YXRpYyBpbnQgbWNocF9vdHBjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiAgIAltY2hwX252bWVtX2NvbmZpZy5k ZXYgPSBvdHBjLT5kZXY7Cj4gKwltY2hwX252bWVtX2NvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMg PSB0cnVlOwo+ICAgCW1jaHBfbnZtZW1fY29uZmlnLnNpemUgPSBzaXplOwo+ICAgCW1jaHBfbnZt ZW1fY29uZmlnLnByaXYgPSBvdHBjOwo+ICAgCW52bWVtID0gZGV2bV9udm1lbV9yZWdpc3Rlcigm cGRldi0+ZGV2LCAmbWNocF9udm1lbV9jb25maWcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252 bWVtL210ay1lZnVzZS5jIGIvZHJpdmVycy9udm1lbS9tdGstZWZ1c2UuYwo+IGluZGV4IGEwOGUw YWVkZDIxYy4uMTk0NzMzN2ExMjFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vbXRrLWVm dXNlLmMKPiArKysgYi9kcml2ZXJzL252bWVtL210ay1lZnVzZS5jCj4gQEAgLTQ1LDYgKzQ1LDcg QEAgc3RhdGljIGludCBtdGtfZWZ1c2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgIAlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQo+ICAgCQlyZXR1cm4gUFRSX0VSUihwcml2 LT5iYXNlKTsKPiAgIAo+ICsJZWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAg CWVjb25maWcuc3RyaWRlID0gMTsKPiAgIAllY29uZmlnLndvcmRfc2l6ZSA9IDE7Cj4gICAJZWNv bmZpZy5yZWdfcmVhZCA9IG10a19yZWdfcmVhZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1l bS9xY29tLXNwbWktc2RhbS5jIGIvZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5jCj4gaW5k ZXggZjgyMjc5MGRiNDllLi5iNTQ3ZGVmOTRiNWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9udm1l bS9xY29tLXNwbWktc2RhbS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5j Cj4gQEAgLTE0Miw2ICsxNDIsNyBAQCBzdGF0aWMgaW50IHNkYW1fcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAlzZGFtLT5zZGFtX2NvbmZpZy5uYW1lID0gInNwbWlfc2Rh bSI7Cj4gICAJc2RhbS0+c2RhbV9jb25maWcuaWQgPSBOVk1FTV9ERVZJRF9BVVRPOwo+ICAgCXNk YW0tPnNkYW1fY29uZmlnLm93bmVyID0gVEhJU19NT0RVTEU7Cj4gKwlzZGFtLT5zZGFtX2NvbmZp Zy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCXNkYW0tPnNkYW1fY29uZmlnLnN0cmlk ZSA9IDE7Cj4gICAJc2RhbS0+c2RhbV9jb25maWcud29yZF9zaXplID0gMTsKPiAgIAlzZGFtLT5z ZGFtX2NvbmZpZy5yZWdfcmVhZCA9IHNkYW1fcmVhZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u dm1lbS9xZnByb20uYyBiL2RyaXZlcnMvbnZtZW0vcWZwcm9tLmMKPiBpbmRleCBjMWU4OTNjOGEy NDcuLmViMTI2ZDUwNzU2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL3FmcHJvbS5jCj4g KysrIGIvZHJpdmVycy9udm1lbS9xZnByb20uYwo+IEBAIC0zNTcsNiArMzU3LDcgQEAgc3RhdGlj IGludCBxZnByb21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAg IAlzdHJ1Y3QgbnZtZW1fY29uZmlnIGVjb25maWcgPSB7Cj4gICAJCS5uYW1lID0gInFmcHJvbSIs Cj4gKwkJLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWUsCj4gICAJCS5zdHJpZGUgPSAxLAo+ICAg CQkud29yZF9zaXplID0gMSwKPiAgIAkJLmlkID0gTlZNRU1fREVWSURfQVVUTywKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9udm1lbS9yYXZlLXNwLWVlcHJvbS5jIGIvZHJpdmVycy9udm1lbS9yYXZl LXNwLWVlcHJvbS5jCj4gaW5kZXggYzQ1NjAxMWI3NWU4Li5lOWI0Yzc5MjdlMzcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9udm1lbS9yYXZlLXNwLWVlcHJvbS5jCj4gKysrIGIvZHJpdmVycy9udm1l bS9yYXZlLXNwLWVlcHJvbS5jCj4gQEAgLTMyOCw2ICszMjgsNyBAQCBzdGF0aWMgaW50IHJhdmVf c3BfZWVwcm9tX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJb2ZfcHJv cGVydHlfcmVhZF9zdHJpbmcobnAsICJ6aWksZWVwcm9tLW5hbWUiLCAmY29uZmlnLm5hbWUpOwo+ ICAgCWNvbmZpZy5wcml2CQk9IGVlcHJvbTsKPiAgIAljb25maWcuZGV2CQk9IGRldjsKPiArCWNv bmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMJPSB0cnVlOwo+ICAgCWNvbmZpZy5zaXplCQk9IHNpemU7 Cj4gICAJY29uZmlnLnJlZ19yZWFkCQk9IHJhdmVfc3BfZWVwcm9tX3JlZ19yZWFkOwo+ICAgCWNv bmZpZy5yZWdfd3JpdGUJPSByYXZlX3NwX2VlcHJvbV9yZWdfd3JpdGU7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAtZWZ1c2UuYyBiL2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAt ZWZ1c2UuYwo+IGluZGV4IGU0NTc5ZGU1ZDAxNC4uMjExZjZlNzQwMWE5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAtZWZ1c2UuYwo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vcm9j a2NoaXAtZWZ1c2UuYwo+IEBAIC0yMDUsNiArMjA1LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9y azMzOTlfZWZ1c2VfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+ICAg Cj4gICBzdGF0aWMgc3RydWN0IG52bWVtX2NvbmZpZyBlY29uZmlnID0gewo+ICAgCS5uYW1lID0g InJvY2tjaGlwLWVmdXNlIiwKPiArCS51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlLAo+ICAgCS5z dHJpZGUgPSAxLAo+ICAgCS53b3JkX3NpemUgPSAxLAo+ICAgCS5yZWFkX29ubHkgPSB0cnVlLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3NjMjd4eC1lZnVzZS5jIGIvZHJpdmVycy9udm1l bS9zYzI3eHgtZWZ1c2UuYwo+IGluZGV4IGM4MjVmYzkwMmQxMC4uZWQ1Y2M0ZjNlMmJjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc2MyN3h4LWVmdXNlLmMKPiArKysgYi9kcml2ZXJzL252 bWVtL3NjMjd4eC1lZnVzZS5jCj4gQEAgLTI0OCw2ICsyNDgsNyBAQCBzdGF0aWMgaW50IHNjMjd4 eF9lZnVzZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcu cmVnX3JlYWQgPSBzYzI3eHhfZWZ1c2VfcmVhZDsKPiAgIAllY29uZmlnLnByaXYgPSBlZnVzZTsK PiAgIAllY29uZmlnLmRldiA9ICZwZGV2LT5kZXY7Cj4gKwllY29uZmlnLnVzZV9maXhlZF9vZl9j ZWxscyA9IHRydWU7Cj4gICAJbnZtZW0gPSBkZXZtX252bWVtX3JlZ2lzdGVyKCZwZGV2LT5kZXYs ICZlY29uZmlnKTsKPiAgIAlpZiAoSVNfRVJSKG52bWVtKSkgewo+ICAgCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgbnZtZW0gY29uZmlnXG4iKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udm1lbS9zcHJkLWVmdXNlLmMgYi9kcml2ZXJzL252bWVtL3NwcmQtZWZ1c2Uu Ywo+IGluZGV4IDRmMWZjYmZlYzM5NC4uZWYzMTYxNjQ1ZjYwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvbnZtZW0vc3ByZC1lZnVzZS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9zcHJkLWVmdXNlLmMK PiBAQCAtNDA4LDYgKzQwOCw3IEBAIHN0YXRpYyBpbnQgc3ByZF9lZnVzZV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcucmVhZF9vbmx5ID0gZmFsc2U7Cj4g ICAJZWNvbmZpZy5uYW1lID0gInNwcmQtZWZ1c2UiOwo+ICAgCWVjb25maWcuc2l6ZSA9IGVmdXNl LT5kYXRhLT5ibGtfbnVtcyAqIFNQUkRfRUZVU0VfQkxPQ0tfV0lEVEg7Cj4gKwllY29uZmlnLnVz ZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4gICAJZWNvbmZpZy5yZWdfcmVhZCA9IHNwcmRfZWZ1 c2VfcmVhZDsKPiAgIAllY29uZmlnLnJlZ193cml0ZSA9IHNwcmRfZWZ1c2Vfd3JpdGU7Cj4gICAJ ZWNvbmZpZy5wcml2ID0gZWZ1c2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vc3RtMzIt cm9tZW0uYyBiL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0uYwo+IGluZGV4IGJhNzc5ZTI2OTM3 YS4uYTZmYzQzYWNiNzk3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0u Ywo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0uYwo+IEBAIC0yMDgsNiArMjA4LDcg QEAgc3RhdGljIGludCBzdG0zMl9yb21lbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICAgCXByaXYtPmNmZy5wcml2ID0gcHJpdjsKPiAgIAlwcml2LT5jZmcub3duZXIgPSBU SElTX01PRFVMRTsKPiAgIAlwcml2LT5jZmcudHlwZSA9IE5WTUVNX1RZUEVfT1RQOwo+ICsJcHJp di0+Y2ZnLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4gICAKPiAgIAlwcml2LT5sb3dlciA9 IDA7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9zdW5wbHVzLW9jb3RwLmMgYi9k cml2ZXJzL252bWVtL3N1bnBsdXMtb2NvdHAuYwo+IGluZGV4IDUyYjkyOGE3YTZkNS4uNTdlM2Uw ODMzYjg1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc3VucGx1cy1vY290cC5jCj4gKysr IGIvZHJpdmVycy9udm1lbS9zdW5wbHVzLW9jb3RwLmMKPiBAQCAtMTQ1LDYgKzE0NSw3IEBAIHN0 YXRpYyBpbnQgc3Bfb2NvdHBfcmVhZCh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2 b2lkICp2YWx1ZSwgc2l6ZV90IGJ5Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgbnZtZW1fY29uZmln IHNwX29jb3RwX252bWVtX2NvbmZpZyA9IHsKPiAgIAkubmFtZSA9ICJzcC1vY290cCIsCj4gKwku dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZSwKPiAgIAkucmVhZF9vbmx5ID0gdHJ1ZSwKPiAgIAku d29yZF9zaXplID0gMSwKPiAgIAkuc2l6ZSA9IFFBQzYyOF9PVFBfU0laRSwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udm1lbS9zdW54aV9zaWQuYyBiL2RyaXZlcnMvbnZtZW0vc3VueGlfc2lkLmMK PiBpbmRleCBhOTcwZjE3NDFjYzYuLjZhYjdhYTM3MjRhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L252bWVtL3N1bnhpX3NpZC5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9zdW54aV9zaWQuYwo+IEBA IC0xNTYsNiArMTU2LDcgQEAgc3RhdGljIGludCBzdW54aV9zaWRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAludm1lbV9jZmctPmRldiA9IGRldjsKPiAgIAludm1lbV9j ZmctPm5hbWUgPSAic3VueGktc2lkIjsKPiAgIAludm1lbV9jZmctPnR5cGUgPSBOVk1FTV9UWVBF X09UUDsKPiArCW52bWVtX2NmZy0+dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAludm1l bV9jZmctPnJlYWRfb25seSA9IHRydWU7Cj4gICAJbnZtZW1fY2ZnLT5zaXplID0gY2ZnLT5zaXpl Owo+ICAgCW52bWVtX2NmZy0+d29yZF9zaXplID0gMTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u dm1lbS91bmlwaGllci1lZnVzZS5jIGIvZHJpdmVycy9udm1lbS91bmlwaGllci1lZnVzZS5jCj4g aW5kZXggYWNhOTEwYjNiNmY4Li42OWI5ZGZlNmFiNmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9u dm1lbS91bmlwaGllci1lZnVzZS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS91bmlwaGllci1lZnVz ZS5jCj4gQEAgLTUzLDYgKzUzLDcgQEAgc3RhdGljIGludCB1bmlwaGllcl9lZnVzZV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcuc2l6ZSA9IHJlc291cmNl X3NpemUocmVzKTsKPiAgIAllY29uZmlnLnByaXYgPSBwcml2Owo+ICAgCWVjb25maWcuZGV2ID0g ZGV2Owo+ICsJZWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCW52bWVtID0g ZGV2bV9udm1lbV9yZWdpc3RlcihkZXYsICZlY29uZmlnKTsKPiAgIAo+ICAgCXJldHVybiBQVFJf RVJSX09SX1pFUk8obnZtZW0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3p5bnFtcF9u dm1lbS5jIGIvZHJpdmVycy9udm1lbS96eW5xbXBfbnZtZW0uYwo+IGluZGV4IGUyOGQ3YjEzM2Ux MS4uZDEzNzUwYTRjMTEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0venlucW1wX252bWVt LmMKPiArKysgYi9kcml2ZXJzL252bWVtL3p5bnFtcF9udm1lbS5jCj4gQEAgLTU4LDYgKzU4LDcg QEAgc3RhdGljIGludCB6eW5xbXBfbnZtZW1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiAgIAo+ICAgCXByaXYtPmRldiA9IGRldjsKPiAgIAllY29uZmlnLmRldiA9IGRldjsK PiArCWVjb25maWcudXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAllY29uZmlnLnJlZ19y ZWFkID0genlucW1wX252bWVtX3JlYWQ7Cj4gICAJZWNvbmZpZy5wcml2ID0gcHJpdjsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9udm1lbS5jIGIvZHJpdmVycy9ydGMvbnZtZW0uYwo+ IGluZGV4IDA3ZWRlMjFjZWUzNC4uNWNjMDM5ZDkyMjU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv cnRjL252bWVtLmMKPiArKysgYi9kcml2ZXJzL3J0Yy9udm1lbS5jCj4gQEAgLTIxLDYgKzIxLDcg QEAgaW50IGRldm1fcnRjX252bWVtX3JlZ2lzdGVyKHN0cnVjdCBydGNfZGV2aWNlICpydGMsCj4g ICAKPiAgIAludm1lbV9jb25maWctPmRldiA9IGRldjsKPiAgIAludm1lbV9jb25maWctPm93bmVy ID0gcnRjLT5vd25lcjsKPiArCW52bWVtX2NvbmZpZy0+dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1 ZTsKPiAgIAludm1lbSA9IGRldm1fbnZtZW1fcmVnaXN0ZXIoZGV2LCBudm1lbV9jb25maWcpOwo+ ICAgCWlmIChJU19FUlIobnZtZW0pKQo+ICAgCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdp c3RlciBudm1lbSBkZXZpY2UgZm9yIFJUQ1xuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdzEv c2xhdmVzL3cxX2RzMjUweC5jIGIvZHJpdmVycy93MS9zbGF2ZXMvdzFfZHMyNTB4LmMKPiBpbmRl eCA3NTkyYzcwNTBkMWQuLjUzODcyMmI0MWY4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3cxL3Ns YXZlcy93MV9kczI1MHguYwo+ICsrKyBiL2RyaXZlcnMvdzEvc2xhdmVzL3cxX2RzMjUweC5jCj4g QEAgLTE2OCw2ICsxNjgsNyBAQCBzdGF0aWMgaW50IHcxX2Vwcm9tX2FkZF9zbGF2ZShzdHJ1Y3Qg dzFfc2xhdmUgKnNsKQo+ICAgCXN0cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtOwo+ICAgCXN0cnVj dCBudm1lbV9jb25maWcgbnZtZW1fY2ZnID0gewo+ICAgCQkuZGV2ID0gJnNsLT5kZXYsCj4gKwkJ LnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWUsCj4gICAJCS5yZWdfcmVhZCA9IHcxX252bWVtX3Jl YWQsCj4gICAJCS50eXBlID0gTlZNRU1fVFlQRV9PVFAsCj4gICAJCS5yZWFkX29ubHkgPSB0cnVl LAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmggYi9pbmNsdWRl L2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiBpbmRleCAwMjYyYjg2MTk0ZWIuLmIzYzE0Y2U4N2E2 NSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiArKysgYi9p bmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiBAQCAtNzMsNiArNzMsNyBAQCBzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvIHsKPiAgICAqIEBvd25lcjoJUG9pbnRlciB0byBleHBvcnRlciBtb2R1 bGUuIFVzZWQgZm9yIHJlZmNvdW50aW5nLgo+ICAgICogQGNlbGxzOglPcHRpb25hbCBhcnJheSBv ZiBwcmUtZGVmaW5lZCBOVk1FTSBjZWxscy4KPiAgICAqIEBuY2VsbHM6CU51bWJlciBvZiBlbGVt ZW50cyBpbiBjZWxscy4KPiArICogQHVzZV9maXhlZF9vZl9jZWxsczoJUmVhZCBmaXhlZCBOVk1F TSBjZWxscyBmcm9tIE9GLgo+ICAgICogQGtlZXBvdXQ6CU9wdGlvbmFsIGFycmF5IG9mIGtlZXBv dXQgcmFuZ2VzIChzb3J0ZWQgYXNjZW5kaW5nIGJ5IHN0YXJ0KS4KPiAgICAqIEBua2VlcG91dDoJ TnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBrZWVwb3V0IGFycmF5Lgo+ICAgICogQHR5cGU6CVR5 cGUgb2YgdGhlIG52bWVtIHN0b3JhZ2UKPiBAQCAtMTAzLDYgKzEwNCw3IEBAIHN0cnVjdCBudm1l bV9jb25maWcgewo+ICAgCXN0cnVjdCBtb2R1bGUJCSpvd25lcjsKPiAgIAljb25zdCBzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvCSpjZWxsczsKPiAgIAlpbnQJCQluY2VsbHM7Cj4gKwlib29sCQkJdXNl X2ZpeGVkX29mX2NlbGxzOwo+ICAgCWNvbnN0IHN0cnVjdCBudm1lbV9rZWVwb3V0ICprZWVwb3V0 Owo+ICAgCXVuc2lnbmVkIGludAkJbmtlZXBvdXQ7Cj4gICAJZW51bSBudm1lbV90eXBlCQl0eXBl OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YW1sb2dpYyBtYWlsaW5nIGxpc3QKbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo= 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 E0F7DC64EC4 for ; Thu, 9 Mar 2023 09:38:25 +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=8+LxwCdMioMqWUWEKNUgGOUhluwq/GXdovejk3A9Els=; b=LSRF9pNGtmrfDw rR825mcG4oYgzDrKeFF0j+qPqDmz+caZB573lXbMscKZOZDIcanKX46tslvGRs55shY6VfBe36KQO PRVmpDLSIEKGiedK4YI2MGA4Qx8oOgyWNlxXM5Mim6jig4wEaks0SsePGMrAdMMRcsKGnp0UymO5d 3IFDUjseechKg6lgPiAv7cWRHotxZYldcULPZdr1MpD1t6S40Bz7+ZVk58Uzxw1LDTTxm2JH4oeMk +qrPh1WDEZshlMVEx5f9+ugd0NflBlx6bFednT3evG5xbbuHWibGLqI9J3FYznx9ZQ0tiOHxWI9za 1C9/UBrHSUUcagX+684g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1paCia-008qGO-9C; Thu, 09 Mar 2023 09:37:48 +0000 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1paCiQ-008qBJ-Dw for linux-mtd@lists.infradead.org; Thu, 09 Mar 2023 09:37:43 +0000 Received: by mail-ed1-x533.google.com with SMTP id g3so4548698eda.1 for ; Thu, 09 Mar 2023 01:37:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678354655; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=t9Y/Oa7mx4j+h43gXLA031WTG/ytRgcE0HI9BVvs1sTIsXsBhM1bCfnYZ4cVr/STCz OS/AOL+kGDJ5PTj+Bh3cs1iijviAjScDyMdy977LvYDwqfTScO5Kk7xLX7v8ToEMtdrd FxSX8E8iFw7E2d5twzDQtN0WLI0jHffj5bPPj/v/qkVYjvW+XRTHUCVVsiqVjkPR9gCy VqK57hTtldZOVEJVV5oPeknv36jOijWWBJohu+XHgJBHZiCnZcgrDTasV7XOnHisELP1 AxL5iL8edzdsVAGlFxWdipBWPuTipQ1svB53tR4JY36m9jh2uw9wIyoL1MwrkpJhhEGJ v3Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678354655; 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:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=FcBCF7MCCqtIxM+vsX1sYiPopu0uY2EmY4wcBwn2+gOi/HB21CyzVQx6xn2xp1fC1i 51lUFjSW+j3IK/WJPzJsxSBFJxKtx2GuH6EID6CCFjimGcDSNf/GW1+zsTKWp3m4zU2L Rc4Med8mxpD8PCJbOGi7wnwa4d3NC2S3Jtm4UUkrDLhd7Yz3z4ESyTCP4GIu3HLw6+qA RL6lN68OIv7onE9hi3eYoE4JefyPxQOQWoRvoirTrsjVHkHSegvlipTYhg43NEaFZ47D 4+3iLA12u5SuaIqrv+0O3DkzDDzKieCkS5NPTeq3fAnAudW03wqgDiKpyV4aUa4aHfaN 0boA== X-Gm-Message-State: AO0yUKXNLPPfFiTQ02QFM2D0+gHmJFEcRj9kFdfNkzAPyVGq64LFCHQl T5zJAIO1v5wOAEg6myAqvah2xw== X-Google-Smtp-Source: AK7set8RaHglZb/tbGRd38GxDvcsu6FHEHtwnBUbEYArd4Ax9m25A8WDyYVjR6ifdgkC/7IF4tS8xQ== X-Received: by 2002:a17:906:546:b0:8b1:78bc:7508 with SMTP id k6-20020a170906054600b008b178bc7508mr18999307eja.20.1678354655512; Thu, 09 Mar 2023 01:37:35 -0800 (PST) Received: from [192.168.1.195] ([5.133.47.210]) by smtp.googlemail.com with ESMTPSA id qt2-20020a170906ece200b008e938e98046sm8557373ejb.223.2023.03.09.01.37.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Mar 2023 01:37:34 -0800 (PST) Message-ID: Date: Thu, 9 Mar 2023 09:37:32 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH V2] nvmem: add explicit config option to read OF fixed cells Content-Language: en-US To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Hector Martin , Sven Peter , Alyssa Rosenzweig , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Claudiu Beznea , Matthias Brugger , AngeloGioacchino Del Regno , Andy Gross , Bjorn Andersson , Konrad Dybcio , Heiko Stuebner , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vincent Shih , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Alessandro Zummo , Alexandre Belloni , Evgeniy Polyakov , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-rtc@vger.kernel.org, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= References: <20230224072903.20945-1-zajec5@gmail.com> From: Srinivas Kandagatla In-Reply-To: <20230224072903.20945-1-zajec5@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230309_013738_488766_ED7F6772 X-CRM114-Status: GOOD ( 35.44 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list 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-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org CgpPbiAyNC8wMi8yMDIzIDA3OjI5LCBSYWZhxYIgTWnFgmVja2kgd3JvdGU6Cj4gRnJvbTogUmFm YcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgo+IAo+IE5WTUVNIHN1YnN5c3RlbSBsb29r cyBmb3IgZml4ZWQgTlZNRU0gY2VsbHMgKHNwZWNpZmllZCBpbiBEVCkgYnkKPiBkZWZhdWx0LiBU aGlzIGJlaGF2aW91ciBtYWRlIHNlbnNlIGluIGVhcmx5IGRheXMgYmVmb3JlIGFkZGluZyBzdXBw b3J0Cj4gZm9yIGR5bmFtaWMgY2VsbHMuCj4gCj4gV2l0aCBldmVyeSBuZXcgc3VwcG9ydGVkIE5W TUVNIGRldmljZSB3aXRoIGR5bmFtaWMgY2VsbHMgY3VycmVudAo+IGJlaGF2aW91ciBiZWNvbWVz IG5vbi1vcHRpbWFsLiBJdCByZXN1bHRzIGluIHVubmVlZGVkIGl0ZXJhdGluZyBvdmVyIERUCj4g bm9kZXMgYW5kIG1heSByZXN1bHQgaW4gZmFsc2UgZGlzY292ZXJ5IG9mIGNlbGxzIChkZXBlbmRp bmcgb24gdXNlZCBEVAo+IHByb3BlcnRpZXMpLgoKPiAKPiBUaGlzIGJlaGF2aW91ciBoYXMgYWN0 dWFsbHkgY2F1c2VkIGEgcHJvYmxlbSBhbHJlYWR5IHdpdGggdGhlIE1URAo+IHN1YnN5c3RlbS4g TVREIHN1YnBhcnRpdGlvbnMgd2VyZSBpbmNvcnJlY3RseSB0cmVhdGVkIGFzIE5WTUVNIGNlbGxz Lgo+IAo+IEFsc28gd2l0aCB1cGNvbWluZyBzdXBwb3J0IGZvciBOVk1FTSBsYXlvdXRzIG5vIG5l dyBiaW5kaW5nIG9yIGRyaXZlcgo+IHNob3VsZCBzdXBwb3J0IGZpeGVkIGNlbGxzIGRlZmluZWQg aW4gZGV2aWNlIG5vZGUuCgpUaGlzIGlzIG5vdCB2ZXJ5IGNsZWFyLCBhcmUgeW91IHNheWluZyB0 aGF0IHdlIHNob3VsZCBub3Qgc3VwcG9ydCBmaXhlZCAKY2VsbHM/IElmIHRoYXQgaXMgdGhlIGNh c2UgdGhlbiB5b3UgYXJlIHByb2FiYWJseSB0YWtpbmcgdGhpcyBpbiB3cm9uZyAKZGlyZWN0aW9u LiBudm1lbSB3YXMgYnVpbHQgYmFzZWQgb24gdGhlIGZhY3QgdGhhdCBkcml2ZXJzIGNhbiByZWFk IGZyb20gCmEgZml4ZWQgb2Zmc2V0cy4gRHluYW1pYyBjZWxscyBpcyBzb21ldGhpbmcgdmVyeSBu ZXcsIHRoYXQgZG9lcyBub3QgbWVhbiAKdGhhdCB3ZSBzaG91bGQgZGl0Y2ggZml4ZWQgY2VsbHMg c3VwcG9ydCBpbiBkdC4KCj4gCj4gU29sdmUgdGhpcyBieSBtb2RpZnlpbmcgZHJpdmVycyBmb3Ig YmluZGluZ3MgdGhhdCBzdXBwb3J0IHNwZWNpZnlpbmcKPiBmaXhlZCBOVk1FTSBjZWxscyBpbiBE VC4gTWFrZSB0aGVtIGV4cGxpY2l0bHkgdGVsbCBOVk1FTSBzdWJzeXN0ZW0gdG8KPiByZWFkIGNl bGxzIGZyb20gRFQuCgpTaG91bGRuJ3QgdGhpcyBiZSBvcHBvc2l0ZSwgbGV0IHRoZSBuZXcgcHJv dmlkZXJzIHRlbGwgdGhhdCBjZWxscyBhcmUgCmNyZWF0ZWQgYXQgcnVudGltZT8KCm9yIGV2ZW4g YmV0dGVyIGlmIHRoZXJlIGlzIGEgd2F5IHRvIGRldGVjdCBpZiB3ZSBjYW4gc2V0IHRoaXMgZmxh ZyAKZHluYW1pY2FsbHkgYmFzZWQgb24gbGF5b3V0L3Bvc3QtcHJvY2Vzc2luZyBjb25maWd1cmF0 aW9uLgoKdGhhdCBzaG91bGQgYmUgbXVjaCBjbGVhbmVyIGFwcHJvY2guCgpub3RlLCBJIGhhdmUg bm90IHJlYWQgYWxsIHRoZSByZXZpZXcgZGlzY3Vzc2lvbnMgZW1haWxzLCBzbyBwbGVhc2UgCmln bm9yZSBhbnkgZHVwbGljYXRlIGNvbW1lbnRzLgoKLS1zcmluaQoKPiAKPiBJdCB3YXNuJ3QgY2xl YXIgKHRvIG1lKSBpZiBydGMgYW5kIHcxIGNvZGUgYWN0dWFsbHkgdXNlcyBmaXhlZCBjZWxscy4g SQo+IGVuYWJsZWQgdGhlbSB0byBkb24ndCByaXNrIGFueSBicmVha2FnZS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBSYWZhxYIgTWnFgmVja2kgPHJhZmFsQG1pbGVja2kucGw+Cj4gW2ZvciBkcml2ZXJz L252bWVtL21lc29uLXtlZnVzZSxteC1lZnVzZX0uY10KPiBBY2tlZC1ieTogTWFydGluIEJsdW1l bnN0aW5nbCA8bWFydGluLmJsdW1lbnN0aW5nbEBnb29nbGVtYWlsLmNvbT4KPiAtLS0KPiBWMjog Rml4IHN0bTMyLXJvbWVtLmMgdHlwbyBicmVha2luZyBpdHMgY29tcGlsYXRpb24KPiAgICAgIFBp Y2sgTWFydGluJ3MgQWNrZWQtYnkKPiAgICAgIEFkZCBwYXJhZ3JhcGggYWJvdXQgbGF5b3V0cyBk ZXByZWNhdGluZyB1c2VfZml4ZWRfb2ZfY2VsbHMKPiAtLS0KPiAgIGRyaXZlcnMvbXRkL210ZGNv cmUuYyAgICAgICAgICB8IDIgKysKPiAgIGRyaXZlcnMvbnZtZW0vYXBwbGUtZWZ1c2VzLmMgICB8 IDEgKwo+ICAgZHJpdmVycy9udm1lbS9jb3JlLmMgICAgICAgICAgIHwgOCArKysrKy0tLQo+ICAg ZHJpdmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMgIHwgMSArCj4gICBkcml2ZXJzL252bWVtL2lt eC1vY290cC5jICAgICAgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0vbWVzb24tZWZ1c2UuYyAgICB8 IDEgKwo+ICAgZHJpdmVycy9udm1lbS9tZXNvbi1teC1lZnVzZS5jIHwgMSArCj4gICBkcml2ZXJz L252bWVtL21pY3JvY2hpcC1vdHBjLmMgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0vbXRrLWVmdXNl LmMgICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5jIHwgMSArCj4g ICBkcml2ZXJzL252bWVtL3FmcHJvbS5jICAgICAgICAgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0v cmF2ZS1zcC1lZXByb20uYyB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9yb2NrY2hpcC1lZnVzZS5j IHwgMSArCj4gICBkcml2ZXJzL252bWVtL3NjMjd4eC1lZnVzZS5jICAgfCAxICsKPiAgIGRyaXZl cnMvbnZtZW0vc3ByZC1lZnVzZS5jICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9zdG0zMi1y b21lbS5jICAgIHwgMSArCj4gICBkcml2ZXJzL252bWVtL3N1bnBsdXMtb2NvdHAuYyAgfCAxICsK PiAgIGRyaXZlcnMvbnZtZW0vc3VueGlfc2lkLmMgICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1l bS91bmlwaGllci1lZnVzZS5jIHwgMSArCj4gICBkcml2ZXJzL252bWVtL3p5bnFtcF9udm1lbS5j ICAgfCAxICsKPiAgIGRyaXZlcnMvcnRjL252bWVtLmMgICAgICAgICAgICB8IDEgKwo+ICAgZHJp dmVycy93MS9zbGF2ZXMvdzFfZHMyNTB4LmMgIHwgMSArCj4gICBpbmNsdWRlL2xpbnV4L252bWVt LXByb3ZpZGVyLmggfCAyICsrCj4gICAyMyBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tdGRjb3JlLmMg Yi9kcml2ZXJzL210ZC9tdGRjb3JlLmMKPiBpbmRleCAwZmVhY2I5ZmJkYWMuLjFiYjQ3OWMwZjc1 OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL210ZC9tdGRjb3JlLmMKPiArKysgYi9kcml2ZXJzL210 ZC9tdGRjb3JlLmMKPiBAQCAtNTIzLDYgKzUyMyw3IEBAIHN0YXRpYyBpbnQgbXRkX252bWVtX2Fk ZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKPiAgIAljb25maWcuZGV2ID0gJm10ZC0+ZGV2Owo+ICAg CWNvbmZpZy5uYW1lID0gZGV2X25hbWUoJm10ZC0+ZGV2KTsKPiAgIAljb25maWcub3duZXIgPSBU SElTX01PRFVMRTsKPiArCWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSBvZl9kZXZpY2VfaXNf Y29tcGF0aWJsZShub2RlLCAibnZtZW0tY2VsbHMiKTsKPiAgIAljb25maWcucmVnX3JlYWQgPSBt dGRfbnZtZW1fcmVnX3JlYWQ7Cj4gICAJY29uZmlnLnNpemUgPSBtdGQtPnNpemU7Cj4gICAJY29u ZmlnLndvcmRfc2l6ZSA9IDE7Cj4gQEAgLTg5MSw2ICs4OTIsNyBAQCBzdGF0aWMgc3RydWN0IG52 bWVtX2RldmljZSAqbXRkX290cF9udm1lbV9yZWdpc3RlcihzdHJ1Y3QgbXRkX2luZm8gKm10ZCwK PiAgIAljb25maWcubmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXMtJXMiLCBkZXZfbmFt ZSgmbXRkLT5kZXYpLCBjb21wYXRpYmxlKTsKPiAgIAljb25maWcuaWQgPSBOVk1FTV9ERVZJRF9O T05FOwo+ICAgCWNvbmZpZy5vd25lciA9IFRISVNfTU9EVUxFOwo+ICsJY29uZmlnLnVzZV9maXhl ZF9vZl9jZWxscyA9IHRydWU7Cj4gICAJY29uZmlnLnR5cGUgPSBOVk1FTV9UWVBFX09UUDsKPiAg IAljb25maWcucm9vdF9vbmx5ID0gdHJ1ZTsKPiAgIAljb25maWcuaWdub3JlX3dwID0gdHJ1ZTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9hcHBsZS1lZnVzZXMuYyBiL2RyaXZlcnMvbnZt ZW0vYXBwbGUtZWZ1c2VzLmMKPiBpbmRleCA5YjdjODcxMDIxMDQuLjAxMTliYWM0M2IyYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL2FwcGxlLWVmdXNlcy5jCj4gKysrIGIvZHJpdmVycy9u dm1lbS9hcHBsZS1lZnVzZXMuYwo+IEBAIC0zNiw2ICszNiw3IEBAIHN0YXRpYyBpbnQgYXBwbGVf ZWZ1c2VzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJc3RydWN0IHJl c291cmNlICpyZXM7Cj4gICAJc3RydWN0IG52bWVtX2NvbmZpZyBjb25maWcgPSB7Cj4gICAJCS5k ZXYgPSAmcGRldi0+ZGV2LAo+ICsJCS51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlLAo+ICAgCQku cmVhZF9vbmx5ID0gdHJ1ZSwKPiAgIAkJLnJlZ19yZWFkID0gYXBwbGVfZWZ1c2VzX3JlYWQsCj4g ICAJCS5zdHJpZGUgPSBzaXplb2YodTMyKSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9j b3JlLmMgYi9kcml2ZXJzL252bWVtL2NvcmUuYwo+IGluZGV4IDE3NGVmMzU3NGUwNy4uNjc4M2Nk ODQ3OGQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vY29yZS5jCj4gKysrIGIvZHJpdmVy cy9udm1lbS9jb3JlLmMKPiBAQCAtODQ0LDkgKzg0NCwxMSBAQCBzdHJ1Y3QgbnZtZW1fZGV2aWNl ICpudm1lbV9yZWdpc3Rlcihjb25zdCBzdHJ1Y3QgbnZtZW1fY29uZmlnICpjb25maWcpCj4gICAJ aWYgKHJ2YWwpCj4gICAJCWdvdG8gZXJyX3JlbW92ZV9jZWxsczsKPiAgIAo+IC0JcnZhbCA9IG52 bWVtX2FkZF9jZWxsc19mcm9tX29mKG52bWVtKTsKPiAtCWlmIChydmFsKQo+IC0JCWdvdG8gZXJy X3JlbW92ZV9jZWxsczsKPiArCWlmIChjb25maWctPnVzZV9maXhlZF9vZl9jZWxscykgewo+ICsJ CXJ2YWwgPSBudm1lbV9hZGRfY2VsbHNfZnJvbV9vZihudm1lbSk7Cj4gKwkJaWYgKHJ2YWwpCj4g KwkJCWdvdG8gZXJyX3JlbW92ZV9jZWxsczsKPiArCX0KPiAgIAo+ICAgCWRldl9kYmcoJm52bWVt LT5kZXYsICJSZWdpc3RlcmluZyBudm1lbSBkZXZpY2UgJXNcbiIsIGNvbmZpZy0+bmFtZSk7Cj4g ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMgYi9kcml2ZXJz L252bWVtL2lteC1vY290cC1zY3UuYwo+IGluZGV4IDM5OWUxZWI4YjRjMS4uZWM1Y2NlN2M2Njk3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vaW14LW9jb3RwLXNjdS5jCj4gKysrIGIvZHJp dmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMKPiBAQCAtMjIwLDYgKzIyMCw3IEBAIHN0YXRpYyBp bnQgaW14X3NjdV9vY290cF93cml0ZSh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAo+ICAgCj4gICBzdGF0aWMgc3RydWN0IG52bWVtX2NvbmZpZyBpbXhfc2N1X29jb3RwX252bWVt X2NvbmZpZyA9IHsKPiAgIAkubmFtZSA9ICJpbXgtc2N1LW9jb3RwIiwKPiArCS51c2VfZml4ZWRf b2ZfY2VsbHMgPSB0cnVlLAo+ICAgCS5yZWFkX29ubHkgPSBmYWxzZSwKPiAgIAkud29yZF9zaXpl ID0gNCwKPiAgIAkuc3RyaWRlID0gMSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9pbXgt b2NvdHAuYyBiL2RyaXZlcnMvbnZtZW0vaW14LW9jb3RwLmMKPiBpbmRleCBlOWI1MmVjYjNmNzIu LmUzN2E4MmY5OGJhNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL2lteC1vY290cC5jCj4g KysrIGIvZHJpdmVycy9udm1lbS9pbXgtb2NvdHAuYwo+IEBAIC02MTYsNiArNjE2LDcgQEAgc3Rh dGljIGludCBpbXhfb2NvdHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAg IAkJcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiAgIAo+ICAgCXByaXYtPnBhcmFtcyA9IG9m X2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKPiArCWlteF9vY290cF9udm1lbV9j b25maWcudXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAlpbXhfb2NvdHBfbnZtZW1fY29u ZmlnLnNpemUgPSA0ICogcHJpdi0+cGFyYW1zLT5ucmVnczsKPiAgIAlpbXhfb2NvdHBfbnZtZW1f Y29uZmlnLmRldiA9IGRldjsKPiAgIAlpbXhfb2NvdHBfbnZtZW1fY29uZmlnLnByaXYgPSBwcml2 Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL21lc29uLWVmdXNlLmMgYi9kcml2ZXJzL252 bWVtL21lc29uLWVmdXNlLmMKPiBpbmRleCBkNmI1MzM0OTdjZTEuLjY1N2UxNzFkNWFmMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL21lc29uLWVmdXNlLmMKPiArKysgYi9kcml2ZXJzL252 bWVtL21lc29uLWVmdXNlLmMKPiBAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgaW50IG1lc29uX2Vm dXNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAKPiAgIAllY29uZmln LT5kZXYgPSBkZXY7Cj4gICAJZWNvbmZpZy0+bmFtZSA9IGRldl9uYW1lKGRldik7Cj4gKwllY29u ZmlnLT51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCWVjb25maWctPnN0cmlkZSA9IDE7 Cj4gICAJZWNvbmZpZy0+d29yZF9zaXplID0gMTsKPiAgIAllY29uZmlnLT5yZWdfcmVhZCA9IG1l c29uX2VmdXNlX3JlYWQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1 c2UuYyBiL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1c2UuYwo+IGluZGV4IDEzZWIxNDMxNmY0 Ni4uN2NjNTEzOTFlYzljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1 c2UuYwo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1c2UuYwo+IEBAIC0yMTMsNiAr MjEzLDcgQEAgc3RhdGljIGludCBtZXNvbl9teF9lZnVzZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ICAgCWVmdXNlLT5jb25maWcub3duZXIgPSBUSElTX01PRFVMRTsKPiAg IAllZnVzZS0+Y29uZmlnLmRldiA9ICZwZGV2LT5kZXY7Cj4gICAJZWZ1c2UtPmNvbmZpZy5wcml2 ID0gZWZ1c2U7Cj4gKwllZnVzZS0+Y29uZmlnLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4g ICAJZWZ1c2UtPmNvbmZpZy5zdHJpZGUgPSBkcnZkYXRhLT53b3JkX3NpemU7Cj4gICAJZWZ1c2Ut PmNvbmZpZy53b3JkX3NpemUgPSBkcnZkYXRhLT53b3JkX3NpemU7Cj4gICAJZWZ1c2UtPmNvbmZp Zy5zaXplID0gU1pfNTEyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1v dHBjLmMgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMKPiBpbmRleCA0MzZlMGRjNGYz MzcuLmZiOTIwZmQ3YThmYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1v dHBjLmMKPiArKysgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMKPiBAQCAtMjYxLDYg KzI2MSw3IEBAIHN0YXRpYyBpbnQgbWNocF9vdHBjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiAgIAltY2hwX252bWVtX2NvbmZpZy5k ZXYgPSBvdHBjLT5kZXY7Cj4gKwltY2hwX252bWVtX2NvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMg PSB0cnVlOwo+ICAgCW1jaHBfbnZtZW1fY29uZmlnLnNpemUgPSBzaXplOwo+ICAgCW1jaHBfbnZt ZW1fY29uZmlnLnByaXYgPSBvdHBjOwo+ICAgCW52bWVtID0gZGV2bV9udm1lbV9yZWdpc3Rlcigm cGRldi0+ZGV2LCAmbWNocF9udm1lbV9jb25maWcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252 bWVtL210ay1lZnVzZS5jIGIvZHJpdmVycy9udm1lbS9tdGstZWZ1c2UuYwo+IGluZGV4IGEwOGUw YWVkZDIxYy4uMTk0NzMzN2ExMjFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vbXRrLWVm dXNlLmMKPiArKysgYi9kcml2ZXJzL252bWVtL210ay1lZnVzZS5jCj4gQEAgLTQ1LDYgKzQ1LDcg QEAgc3RhdGljIGludCBtdGtfZWZ1c2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgIAlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQo+ICAgCQlyZXR1cm4gUFRSX0VSUihwcml2 LT5iYXNlKTsKPiAgIAo+ICsJZWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAg CWVjb25maWcuc3RyaWRlID0gMTsKPiAgIAllY29uZmlnLndvcmRfc2l6ZSA9IDE7Cj4gICAJZWNv bmZpZy5yZWdfcmVhZCA9IG10a19yZWdfcmVhZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1l bS9xY29tLXNwbWktc2RhbS5jIGIvZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5jCj4gaW5k ZXggZjgyMjc5MGRiNDllLi5iNTQ3ZGVmOTRiNWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9udm1l bS9xY29tLXNwbWktc2RhbS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5j Cj4gQEAgLTE0Miw2ICsxNDIsNyBAQCBzdGF0aWMgaW50IHNkYW1fcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAlzZGFtLT5zZGFtX2NvbmZpZy5uYW1lID0gInNwbWlfc2Rh bSI7Cj4gICAJc2RhbS0+c2RhbV9jb25maWcuaWQgPSBOVk1FTV9ERVZJRF9BVVRPOwo+ICAgCXNk YW0tPnNkYW1fY29uZmlnLm93bmVyID0gVEhJU19NT0RVTEU7Cj4gKwlzZGFtLT5zZGFtX2NvbmZp Zy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCXNkYW0tPnNkYW1fY29uZmlnLnN0cmlk ZSA9IDE7Cj4gICAJc2RhbS0+c2RhbV9jb25maWcud29yZF9zaXplID0gMTsKPiAgIAlzZGFtLT5z ZGFtX2NvbmZpZy5yZWdfcmVhZCA9IHNkYW1fcmVhZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u dm1lbS9xZnByb20uYyBiL2RyaXZlcnMvbnZtZW0vcWZwcm9tLmMKPiBpbmRleCBjMWU4OTNjOGEy NDcuLmViMTI2ZDUwNzU2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL3FmcHJvbS5jCj4g KysrIGIvZHJpdmVycy9udm1lbS9xZnByb20uYwo+IEBAIC0zNTcsNiArMzU3LDcgQEAgc3RhdGlj IGludCBxZnByb21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAg IAlzdHJ1Y3QgbnZtZW1fY29uZmlnIGVjb25maWcgPSB7Cj4gICAJCS5uYW1lID0gInFmcHJvbSIs Cj4gKwkJLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWUsCj4gICAJCS5zdHJpZGUgPSAxLAo+ICAg CQkud29yZF9zaXplID0gMSwKPiAgIAkJLmlkID0gTlZNRU1fREVWSURfQVVUTywKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9udm1lbS9yYXZlLXNwLWVlcHJvbS5jIGIvZHJpdmVycy9udm1lbS9yYXZl LXNwLWVlcHJvbS5jCj4gaW5kZXggYzQ1NjAxMWI3NWU4Li5lOWI0Yzc5MjdlMzcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9udm1lbS9yYXZlLXNwLWVlcHJvbS5jCj4gKysrIGIvZHJpdmVycy9udm1l bS9yYXZlLXNwLWVlcHJvbS5jCj4gQEAgLTMyOCw2ICszMjgsNyBAQCBzdGF0aWMgaW50IHJhdmVf c3BfZWVwcm9tX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJb2ZfcHJv cGVydHlfcmVhZF9zdHJpbmcobnAsICJ6aWksZWVwcm9tLW5hbWUiLCAmY29uZmlnLm5hbWUpOwo+ ICAgCWNvbmZpZy5wcml2CQk9IGVlcHJvbTsKPiAgIAljb25maWcuZGV2CQk9IGRldjsKPiArCWNv bmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMJPSB0cnVlOwo+ICAgCWNvbmZpZy5zaXplCQk9IHNpemU7 Cj4gICAJY29uZmlnLnJlZ19yZWFkCQk9IHJhdmVfc3BfZWVwcm9tX3JlZ19yZWFkOwo+ICAgCWNv bmZpZy5yZWdfd3JpdGUJPSByYXZlX3NwX2VlcHJvbV9yZWdfd3JpdGU7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAtZWZ1c2UuYyBiL2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAt ZWZ1c2UuYwo+IGluZGV4IGU0NTc5ZGU1ZDAxNC4uMjExZjZlNzQwMWE5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAtZWZ1c2UuYwo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vcm9j a2NoaXAtZWZ1c2UuYwo+IEBAIC0yMDUsNiArMjA1LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9y azMzOTlfZWZ1c2VfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+ICAg Cj4gICBzdGF0aWMgc3RydWN0IG52bWVtX2NvbmZpZyBlY29uZmlnID0gewo+ICAgCS5uYW1lID0g InJvY2tjaGlwLWVmdXNlIiwKPiArCS51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlLAo+ICAgCS5z dHJpZGUgPSAxLAo+ICAgCS53b3JkX3NpemUgPSAxLAo+ICAgCS5yZWFkX29ubHkgPSB0cnVlLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3NjMjd4eC1lZnVzZS5jIGIvZHJpdmVycy9udm1l bS9zYzI3eHgtZWZ1c2UuYwo+IGluZGV4IGM4MjVmYzkwMmQxMC4uZWQ1Y2M0ZjNlMmJjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc2MyN3h4LWVmdXNlLmMKPiArKysgYi9kcml2ZXJzL252 bWVtL3NjMjd4eC1lZnVzZS5jCj4gQEAgLTI0OCw2ICsyNDgsNyBAQCBzdGF0aWMgaW50IHNjMjd4 eF9lZnVzZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcu cmVnX3JlYWQgPSBzYzI3eHhfZWZ1c2VfcmVhZDsKPiAgIAllY29uZmlnLnByaXYgPSBlZnVzZTsK PiAgIAllY29uZmlnLmRldiA9ICZwZGV2LT5kZXY7Cj4gKwllY29uZmlnLnVzZV9maXhlZF9vZl9j ZWxscyA9IHRydWU7Cj4gICAJbnZtZW0gPSBkZXZtX252bWVtX3JlZ2lzdGVyKCZwZGV2LT5kZXYs ICZlY29uZmlnKTsKPiAgIAlpZiAoSVNfRVJSKG52bWVtKSkgewo+ICAgCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgbnZtZW0gY29uZmlnXG4iKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udm1lbS9zcHJkLWVmdXNlLmMgYi9kcml2ZXJzL252bWVtL3NwcmQtZWZ1c2Uu Ywo+IGluZGV4IDRmMWZjYmZlYzM5NC4uZWYzMTYxNjQ1ZjYwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvbnZtZW0vc3ByZC1lZnVzZS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9zcHJkLWVmdXNlLmMK PiBAQCAtNDA4LDYgKzQwOCw3IEBAIHN0YXRpYyBpbnQgc3ByZF9lZnVzZV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcucmVhZF9vbmx5ID0gZmFsc2U7Cj4g ICAJZWNvbmZpZy5uYW1lID0gInNwcmQtZWZ1c2UiOwo+ICAgCWVjb25maWcuc2l6ZSA9IGVmdXNl LT5kYXRhLT5ibGtfbnVtcyAqIFNQUkRfRUZVU0VfQkxPQ0tfV0lEVEg7Cj4gKwllY29uZmlnLnVz ZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4gICAJZWNvbmZpZy5yZWdfcmVhZCA9IHNwcmRfZWZ1 c2VfcmVhZDsKPiAgIAllY29uZmlnLnJlZ193cml0ZSA9IHNwcmRfZWZ1c2Vfd3JpdGU7Cj4gICAJ ZWNvbmZpZy5wcml2ID0gZWZ1c2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vc3RtMzIt cm9tZW0uYyBiL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0uYwo+IGluZGV4IGJhNzc5ZTI2OTM3 YS4uYTZmYzQzYWNiNzk3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0u Ywo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0uYwo+IEBAIC0yMDgsNiArMjA4LDcg QEAgc3RhdGljIGludCBzdG0zMl9yb21lbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICAgCXByaXYtPmNmZy5wcml2ID0gcHJpdjsKPiAgIAlwcml2LT5jZmcub3duZXIgPSBU SElTX01PRFVMRTsKPiAgIAlwcml2LT5jZmcudHlwZSA9IE5WTUVNX1RZUEVfT1RQOwo+ICsJcHJp di0+Y2ZnLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4gICAKPiAgIAlwcml2LT5sb3dlciA9 IDA7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9zdW5wbHVzLW9jb3RwLmMgYi9k cml2ZXJzL252bWVtL3N1bnBsdXMtb2NvdHAuYwo+IGluZGV4IDUyYjkyOGE3YTZkNS4uNTdlM2Uw ODMzYjg1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc3VucGx1cy1vY290cC5jCj4gKysr IGIvZHJpdmVycy9udm1lbS9zdW5wbHVzLW9jb3RwLmMKPiBAQCAtMTQ1LDYgKzE0NSw3IEBAIHN0 YXRpYyBpbnQgc3Bfb2NvdHBfcmVhZCh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2 b2lkICp2YWx1ZSwgc2l6ZV90IGJ5Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgbnZtZW1fY29uZmln IHNwX29jb3RwX252bWVtX2NvbmZpZyA9IHsKPiAgIAkubmFtZSA9ICJzcC1vY290cCIsCj4gKwku dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZSwKPiAgIAkucmVhZF9vbmx5ID0gdHJ1ZSwKPiAgIAku d29yZF9zaXplID0gMSwKPiAgIAkuc2l6ZSA9IFFBQzYyOF9PVFBfU0laRSwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udm1lbS9zdW54aV9zaWQuYyBiL2RyaXZlcnMvbnZtZW0vc3VueGlfc2lkLmMK PiBpbmRleCBhOTcwZjE3NDFjYzYuLjZhYjdhYTM3MjRhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L252bWVtL3N1bnhpX3NpZC5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9zdW54aV9zaWQuYwo+IEBA IC0xNTYsNiArMTU2LDcgQEAgc3RhdGljIGludCBzdW54aV9zaWRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAludm1lbV9jZmctPmRldiA9IGRldjsKPiAgIAludm1lbV9j ZmctPm5hbWUgPSAic3VueGktc2lkIjsKPiAgIAludm1lbV9jZmctPnR5cGUgPSBOVk1FTV9UWVBF X09UUDsKPiArCW52bWVtX2NmZy0+dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAludm1l bV9jZmctPnJlYWRfb25seSA9IHRydWU7Cj4gICAJbnZtZW1fY2ZnLT5zaXplID0gY2ZnLT5zaXpl Owo+ICAgCW52bWVtX2NmZy0+d29yZF9zaXplID0gMTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u dm1lbS91bmlwaGllci1lZnVzZS5jIGIvZHJpdmVycy9udm1lbS91bmlwaGllci1lZnVzZS5jCj4g aW5kZXggYWNhOTEwYjNiNmY4Li42OWI5ZGZlNmFiNmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9u dm1lbS91bmlwaGllci1lZnVzZS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS91bmlwaGllci1lZnVz ZS5jCj4gQEAgLTUzLDYgKzUzLDcgQEAgc3RhdGljIGludCB1bmlwaGllcl9lZnVzZV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcuc2l6ZSA9IHJlc291cmNl X3NpemUocmVzKTsKPiAgIAllY29uZmlnLnByaXYgPSBwcml2Owo+ICAgCWVjb25maWcuZGV2ID0g ZGV2Owo+ICsJZWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCW52bWVtID0g ZGV2bV9udm1lbV9yZWdpc3RlcihkZXYsICZlY29uZmlnKTsKPiAgIAo+ICAgCXJldHVybiBQVFJf RVJSX09SX1pFUk8obnZtZW0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3p5bnFtcF9u dm1lbS5jIGIvZHJpdmVycy9udm1lbS96eW5xbXBfbnZtZW0uYwo+IGluZGV4IGUyOGQ3YjEzM2Ux MS4uZDEzNzUwYTRjMTEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0venlucW1wX252bWVt LmMKPiArKysgYi9kcml2ZXJzL252bWVtL3p5bnFtcF9udm1lbS5jCj4gQEAgLTU4LDYgKzU4LDcg QEAgc3RhdGljIGludCB6eW5xbXBfbnZtZW1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiAgIAo+ICAgCXByaXYtPmRldiA9IGRldjsKPiAgIAllY29uZmlnLmRldiA9IGRldjsK PiArCWVjb25maWcudXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAllY29uZmlnLnJlZ19y ZWFkID0genlucW1wX252bWVtX3JlYWQ7Cj4gICAJZWNvbmZpZy5wcml2ID0gcHJpdjsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9udm1lbS5jIGIvZHJpdmVycy9ydGMvbnZtZW0uYwo+ IGluZGV4IDA3ZWRlMjFjZWUzNC4uNWNjMDM5ZDkyMjU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv cnRjL252bWVtLmMKPiArKysgYi9kcml2ZXJzL3J0Yy9udm1lbS5jCj4gQEAgLTIxLDYgKzIxLDcg QEAgaW50IGRldm1fcnRjX252bWVtX3JlZ2lzdGVyKHN0cnVjdCBydGNfZGV2aWNlICpydGMsCj4g ICAKPiAgIAludm1lbV9jb25maWctPmRldiA9IGRldjsKPiAgIAludm1lbV9jb25maWctPm93bmVy ID0gcnRjLT5vd25lcjsKPiArCW52bWVtX2NvbmZpZy0+dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1 ZTsKPiAgIAludm1lbSA9IGRldm1fbnZtZW1fcmVnaXN0ZXIoZGV2LCBudm1lbV9jb25maWcpOwo+ ICAgCWlmIChJU19FUlIobnZtZW0pKQo+ICAgCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdp c3RlciBudm1lbSBkZXZpY2UgZm9yIFJUQ1xuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdzEv c2xhdmVzL3cxX2RzMjUweC5jIGIvZHJpdmVycy93MS9zbGF2ZXMvdzFfZHMyNTB4LmMKPiBpbmRl eCA3NTkyYzcwNTBkMWQuLjUzODcyMmI0MWY4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3cxL3Ns YXZlcy93MV9kczI1MHguYwo+ICsrKyBiL2RyaXZlcnMvdzEvc2xhdmVzL3cxX2RzMjUweC5jCj4g QEAgLTE2OCw2ICsxNjgsNyBAQCBzdGF0aWMgaW50IHcxX2Vwcm9tX2FkZF9zbGF2ZShzdHJ1Y3Qg dzFfc2xhdmUgKnNsKQo+ICAgCXN0cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtOwo+ICAgCXN0cnVj dCBudm1lbV9jb25maWcgbnZtZW1fY2ZnID0gewo+ICAgCQkuZGV2ID0gJnNsLT5kZXYsCj4gKwkJ LnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWUsCj4gICAJCS5yZWdfcmVhZCA9IHcxX252bWVtX3Jl YWQsCj4gICAJCS50eXBlID0gTlZNRU1fVFlQRV9PVFAsCj4gICAJCS5yZWFkX29ubHkgPSB0cnVl LAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmggYi9pbmNsdWRl L2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiBpbmRleCAwMjYyYjg2MTk0ZWIuLmIzYzE0Y2U4N2E2 NSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiArKysgYi9p bmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiBAQCAtNzMsNiArNzMsNyBAQCBzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvIHsKPiAgICAqIEBvd25lcjoJUG9pbnRlciB0byBleHBvcnRlciBtb2R1 bGUuIFVzZWQgZm9yIHJlZmNvdW50aW5nLgo+ICAgICogQGNlbGxzOglPcHRpb25hbCBhcnJheSBv ZiBwcmUtZGVmaW5lZCBOVk1FTSBjZWxscy4KPiAgICAqIEBuY2VsbHM6CU51bWJlciBvZiBlbGVt ZW50cyBpbiBjZWxscy4KPiArICogQHVzZV9maXhlZF9vZl9jZWxsczoJUmVhZCBmaXhlZCBOVk1F TSBjZWxscyBmcm9tIE9GLgo+ICAgICogQGtlZXBvdXQ6CU9wdGlvbmFsIGFycmF5IG9mIGtlZXBv dXQgcmFuZ2VzIChzb3J0ZWQgYXNjZW5kaW5nIGJ5IHN0YXJ0KS4KPiAgICAqIEBua2VlcG91dDoJ TnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBrZWVwb3V0IGFycmF5Lgo+ICAgICogQHR5cGU6CVR5 cGUgb2YgdGhlIG52bWVtIHN0b3JhZ2UKPiBAQCAtMTAzLDYgKzEwNCw3IEBAIHN0cnVjdCBudm1l bV9jb25maWcgewo+ICAgCXN0cnVjdCBtb2R1bGUJCSpvd25lcjsKPiAgIAljb25zdCBzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvCSpjZWxsczsKPiAgIAlpbnQJCQluY2VsbHM7Cj4gKwlib29sCQkJdXNl X2ZpeGVkX29mX2NlbGxzOwo+ICAgCWNvbnN0IHN0cnVjdCBudm1lbV9rZWVwb3V0ICprZWVwb3V0 Owo+ICAgCXVuc2lnbmVkIGludAkJbmtlZXBvdXQ7Cj4gICAJZW51bSBudm1lbV90eXBlCQl0eXBl OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K 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 2D6F8C64EC4 for ; Thu, 9 Mar 2023 09:37:53 +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=5zGTfmVirtQ/1pqbgH/7hIvUbQwMLMQq5NXPrtCMkiw=; b=12pbztj75F+1id DuxB1WmfOn5fkVOi7MMSnpYpWNWTnZbJnefMFbFehpt1dOMD4hJ+691XnLDlI0XyCAjlQaBzEU8Jg /XGKlRS2w6Yr1mhEy1RiozwDFHSJiu/PBTd3ZckYgo8SkJ7UyAa3ZCxoiWg37agrt9BMJ0ZXplZa6 8AG9+O2/sLZ+vZufSESOtuwi7z9gfcOlmpacsBOd2xWmgkdsZb5ABT1iV6eXHE0EEkEMdkW2Zit/9 pjjPtRBlBuoZAWnlPPvOTmDnEBbwxvNP6JTG4bMMcH1zBWaxIQctndmw7J1YJqSmS3HHShZ1ga1f2 yqx4D5x9+j4VEKrYfSJA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1paCiT-008qDj-0r; Thu, 09 Mar 2023 09:37:41 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1paCiP-008qBI-2T for linux-rockchip@lists.infradead.org; Thu, 09 Mar 2023 09:37:39 +0000 Received: by mail-ed1-x534.google.com with SMTP id k10so4364418edk.13 for ; Thu, 09 Mar 2023 01:37:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678354655; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=t9Y/Oa7mx4j+h43gXLA031WTG/ytRgcE0HI9BVvs1sTIsXsBhM1bCfnYZ4cVr/STCz OS/AOL+kGDJ5PTj+Bh3cs1iijviAjScDyMdy977LvYDwqfTScO5Kk7xLX7v8ToEMtdrd FxSX8E8iFw7E2d5twzDQtN0WLI0jHffj5bPPj/v/qkVYjvW+XRTHUCVVsiqVjkPR9gCy VqK57hTtldZOVEJVV5oPeknv36jOijWWBJohu+XHgJBHZiCnZcgrDTasV7XOnHisELP1 AxL5iL8edzdsVAGlFxWdipBWPuTipQ1svB53tR4JY36m9jh2uw9wIyoL1MwrkpJhhEGJ v3Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678354655; 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:subject:date:message-id:reply-to; bh=9XwfYOArDPMtl64pxfHU+iaSTS0ZOFrVEcLl1grbXos=; b=RYMn38pT1yWxR1lqVJoNUTMMKh8SEUUBamMjWHQGPNsZX4rAZwv+l+5KY9mXVfjHz/ Y0gA6v4cGGrMz781DiFGlKFN7wB4OiAdW97zpIOVGIitBhuMiiXVsRPaCeXnWQMYMCR2 YIwm60fQdPr+1wtqZRYJXRGcebN8zXacDH9BOEvCYbbU7mzrlyr8iQsjWYvXkz+iGJMh KkQlC/q+72LuMoBDJdqSA7r/ogH/EXgnAO9PDFQp8fm22plInuYR/KlfFN9euoE6x9tm OxydBUh35ZbJ6BlFV+D5BcFnRukuLu1aKa0mynJ0G6akfL6t9dD4AriqKUn9P7bPETKs aUiw== X-Gm-Message-State: AO0yUKU7wmcUn6bQvm8j00WgyHyOZJO1XcNro3l0Xv+Euz5u9/rwcNpI VAnj9D2yiy32LaWTq1fSO+HBeQ== X-Google-Smtp-Source: AK7set8RaHglZb/tbGRd38GxDvcsu6FHEHtwnBUbEYArd4Ax9m25A8WDyYVjR6ifdgkC/7IF4tS8xQ== X-Received: by 2002:a17:906:546:b0:8b1:78bc:7508 with SMTP id k6-20020a170906054600b008b178bc7508mr18999307eja.20.1678354655512; Thu, 09 Mar 2023 01:37:35 -0800 (PST) Received: from [192.168.1.195] ([5.133.47.210]) by smtp.googlemail.com with ESMTPSA id qt2-20020a170906ece200b008e938e98046sm8557373ejb.223.2023.03.09.01.37.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Mar 2023 01:37:34 -0800 (PST) Message-ID: Date: Thu, 9 Mar 2023 09:37:32 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH V2] nvmem: add explicit config option to read OF fixed cells Content-Language: en-US To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Hector Martin , Sven Peter , Alyssa Rosenzweig , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Claudiu Beznea , Matthias Brugger , AngeloGioacchino Del Regno , Andy Gross , Bjorn Andersson , Konrad Dybcio , Heiko Stuebner , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Vincent Shih , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Alessandro Zummo , Alexandre Belloni , Evgeniy Polyakov , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-rtc@vger.kernel.org, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= References: <20230224072903.20945-1-zajec5@gmail.com> From: Srinivas Kandagatla In-Reply-To: <20230224072903.20945-1-zajec5@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230309_013737_161348_46FB6DC8 X-CRM114-Status: GOOD ( 34.87 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms 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-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CgpPbiAyNC8wMi8yMDIzIDA3OjI5LCBSYWZhxYIgTWnFgmVja2kgd3JvdGU6Cj4gRnJvbTogUmFm YcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgo+IAo+IE5WTUVNIHN1YnN5c3RlbSBsb29r cyBmb3IgZml4ZWQgTlZNRU0gY2VsbHMgKHNwZWNpZmllZCBpbiBEVCkgYnkKPiBkZWZhdWx0LiBU aGlzIGJlaGF2aW91ciBtYWRlIHNlbnNlIGluIGVhcmx5IGRheXMgYmVmb3JlIGFkZGluZyBzdXBw b3J0Cj4gZm9yIGR5bmFtaWMgY2VsbHMuCj4gCj4gV2l0aCBldmVyeSBuZXcgc3VwcG9ydGVkIE5W TUVNIGRldmljZSB3aXRoIGR5bmFtaWMgY2VsbHMgY3VycmVudAo+IGJlaGF2aW91ciBiZWNvbWVz IG5vbi1vcHRpbWFsLiBJdCByZXN1bHRzIGluIHVubmVlZGVkIGl0ZXJhdGluZyBvdmVyIERUCj4g bm9kZXMgYW5kIG1heSByZXN1bHQgaW4gZmFsc2UgZGlzY292ZXJ5IG9mIGNlbGxzIChkZXBlbmRp bmcgb24gdXNlZCBEVAo+IHByb3BlcnRpZXMpLgoKPiAKPiBUaGlzIGJlaGF2aW91ciBoYXMgYWN0 dWFsbHkgY2F1c2VkIGEgcHJvYmxlbSBhbHJlYWR5IHdpdGggdGhlIE1URAo+IHN1YnN5c3RlbS4g TVREIHN1YnBhcnRpdGlvbnMgd2VyZSBpbmNvcnJlY3RseSB0cmVhdGVkIGFzIE5WTUVNIGNlbGxz Lgo+IAo+IEFsc28gd2l0aCB1cGNvbWluZyBzdXBwb3J0IGZvciBOVk1FTSBsYXlvdXRzIG5vIG5l dyBiaW5kaW5nIG9yIGRyaXZlcgo+IHNob3VsZCBzdXBwb3J0IGZpeGVkIGNlbGxzIGRlZmluZWQg aW4gZGV2aWNlIG5vZGUuCgpUaGlzIGlzIG5vdCB2ZXJ5IGNsZWFyLCBhcmUgeW91IHNheWluZyB0 aGF0IHdlIHNob3VsZCBub3Qgc3VwcG9ydCBmaXhlZCAKY2VsbHM/IElmIHRoYXQgaXMgdGhlIGNh c2UgdGhlbiB5b3UgYXJlIHByb2FiYWJseSB0YWtpbmcgdGhpcyBpbiB3cm9uZyAKZGlyZWN0aW9u LiBudm1lbSB3YXMgYnVpbHQgYmFzZWQgb24gdGhlIGZhY3QgdGhhdCBkcml2ZXJzIGNhbiByZWFk IGZyb20gCmEgZml4ZWQgb2Zmc2V0cy4gRHluYW1pYyBjZWxscyBpcyBzb21ldGhpbmcgdmVyeSBu ZXcsIHRoYXQgZG9lcyBub3QgbWVhbiAKdGhhdCB3ZSBzaG91bGQgZGl0Y2ggZml4ZWQgY2VsbHMg c3VwcG9ydCBpbiBkdC4KCj4gCj4gU29sdmUgdGhpcyBieSBtb2RpZnlpbmcgZHJpdmVycyBmb3Ig YmluZGluZ3MgdGhhdCBzdXBwb3J0IHNwZWNpZnlpbmcKPiBmaXhlZCBOVk1FTSBjZWxscyBpbiBE VC4gTWFrZSB0aGVtIGV4cGxpY2l0bHkgdGVsbCBOVk1FTSBzdWJzeXN0ZW0gdG8KPiByZWFkIGNl bGxzIGZyb20gRFQuCgpTaG91bGRuJ3QgdGhpcyBiZSBvcHBvc2l0ZSwgbGV0IHRoZSBuZXcgcHJv dmlkZXJzIHRlbGwgdGhhdCBjZWxscyBhcmUgCmNyZWF0ZWQgYXQgcnVudGltZT8KCm9yIGV2ZW4g YmV0dGVyIGlmIHRoZXJlIGlzIGEgd2F5IHRvIGRldGVjdCBpZiB3ZSBjYW4gc2V0IHRoaXMgZmxh ZyAKZHluYW1pY2FsbHkgYmFzZWQgb24gbGF5b3V0L3Bvc3QtcHJvY2Vzc2luZyBjb25maWd1cmF0 aW9uLgoKdGhhdCBzaG91bGQgYmUgbXVjaCBjbGVhbmVyIGFwcHJvY2guCgpub3RlLCBJIGhhdmUg bm90IHJlYWQgYWxsIHRoZSByZXZpZXcgZGlzY3Vzc2lvbnMgZW1haWxzLCBzbyBwbGVhc2UgCmln bm9yZSBhbnkgZHVwbGljYXRlIGNvbW1lbnRzLgoKLS1zcmluaQoKPiAKPiBJdCB3YXNuJ3QgY2xl YXIgKHRvIG1lKSBpZiBydGMgYW5kIHcxIGNvZGUgYWN0dWFsbHkgdXNlcyBmaXhlZCBjZWxscy4g SQo+IGVuYWJsZWQgdGhlbSB0byBkb24ndCByaXNrIGFueSBicmVha2FnZS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBSYWZhxYIgTWnFgmVja2kgPHJhZmFsQG1pbGVja2kucGw+Cj4gW2ZvciBkcml2ZXJz L252bWVtL21lc29uLXtlZnVzZSxteC1lZnVzZX0uY10KPiBBY2tlZC1ieTogTWFydGluIEJsdW1l bnN0aW5nbCA8bWFydGluLmJsdW1lbnN0aW5nbEBnb29nbGVtYWlsLmNvbT4KPiAtLS0KPiBWMjog Rml4IHN0bTMyLXJvbWVtLmMgdHlwbyBicmVha2luZyBpdHMgY29tcGlsYXRpb24KPiAgICAgIFBp Y2sgTWFydGluJ3MgQWNrZWQtYnkKPiAgICAgIEFkZCBwYXJhZ3JhcGggYWJvdXQgbGF5b3V0cyBk ZXByZWNhdGluZyB1c2VfZml4ZWRfb2ZfY2VsbHMKPiAtLS0KPiAgIGRyaXZlcnMvbXRkL210ZGNv cmUuYyAgICAgICAgICB8IDIgKysKPiAgIGRyaXZlcnMvbnZtZW0vYXBwbGUtZWZ1c2VzLmMgICB8 IDEgKwo+ICAgZHJpdmVycy9udm1lbS9jb3JlLmMgICAgICAgICAgIHwgOCArKysrKy0tLQo+ICAg ZHJpdmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMgIHwgMSArCj4gICBkcml2ZXJzL252bWVtL2lt eC1vY290cC5jICAgICAgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0vbWVzb24tZWZ1c2UuYyAgICB8 IDEgKwo+ICAgZHJpdmVycy9udm1lbS9tZXNvbi1teC1lZnVzZS5jIHwgMSArCj4gICBkcml2ZXJz L252bWVtL21pY3JvY2hpcC1vdHBjLmMgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0vbXRrLWVmdXNl LmMgICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5jIHwgMSArCj4g ICBkcml2ZXJzL252bWVtL3FmcHJvbS5jICAgICAgICAgfCAxICsKPiAgIGRyaXZlcnMvbnZtZW0v cmF2ZS1zcC1lZXByb20uYyB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9yb2NrY2hpcC1lZnVzZS5j IHwgMSArCj4gICBkcml2ZXJzL252bWVtL3NjMjd4eC1lZnVzZS5jICAgfCAxICsKPiAgIGRyaXZl cnMvbnZtZW0vc3ByZC1lZnVzZS5jICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1lbS9zdG0zMi1y b21lbS5jICAgIHwgMSArCj4gICBkcml2ZXJzL252bWVtL3N1bnBsdXMtb2NvdHAuYyAgfCAxICsK PiAgIGRyaXZlcnMvbnZtZW0vc3VueGlfc2lkLmMgICAgICB8IDEgKwo+ICAgZHJpdmVycy9udm1l bS91bmlwaGllci1lZnVzZS5jIHwgMSArCj4gICBkcml2ZXJzL252bWVtL3p5bnFtcF9udm1lbS5j ICAgfCAxICsKPiAgIGRyaXZlcnMvcnRjL252bWVtLmMgICAgICAgICAgICB8IDEgKwo+ICAgZHJp dmVycy93MS9zbGF2ZXMvdzFfZHMyNTB4LmMgIHwgMSArCj4gICBpbmNsdWRlL2xpbnV4L252bWVt LXByb3ZpZGVyLmggfCAyICsrCj4gICAyMyBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tdGRjb3JlLmMg Yi9kcml2ZXJzL210ZC9tdGRjb3JlLmMKPiBpbmRleCAwZmVhY2I5ZmJkYWMuLjFiYjQ3OWMwZjc1 OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL210ZC9tdGRjb3JlLmMKPiArKysgYi9kcml2ZXJzL210 ZC9tdGRjb3JlLmMKPiBAQCAtNTIzLDYgKzUyMyw3IEBAIHN0YXRpYyBpbnQgbXRkX252bWVtX2Fk ZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKPiAgIAljb25maWcuZGV2ID0gJm10ZC0+ZGV2Owo+ICAg CWNvbmZpZy5uYW1lID0gZGV2X25hbWUoJm10ZC0+ZGV2KTsKPiAgIAljb25maWcub3duZXIgPSBU SElTX01PRFVMRTsKPiArCWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSBvZl9kZXZpY2VfaXNf Y29tcGF0aWJsZShub2RlLCAibnZtZW0tY2VsbHMiKTsKPiAgIAljb25maWcucmVnX3JlYWQgPSBt dGRfbnZtZW1fcmVnX3JlYWQ7Cj4gICAJY29uZmlnLnNpemUgPSBtdGQtPnNpemU7Cj4gICAJY29u ZmlnLndvcmRfc2l6ZSA9IDE7Cj4gQEAgLTg5MSw2ICs4OTIsNyBAQCBzdGF0aWMgc3RydWN0IG52 bWVtX2RldmljZSAqbXRkX290cF9udm1lbV9yZWdpc3RlcihzdHJ1Y3QgbXRkX2luZm8gKm10ZCwK PiAgIAljb25maWcubmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXMtJXMiLCBkZXZfbmFt ZSgmbXRkLT5kZXYpLCBjb21wYXRpYmxlKTsKPiAgIAljb25maWcuaWQgPSBOVk1FTV9ERVZJRF9O T05FOwo+ICAgCWNvbmZpZy5vd25lciA9IFRISVNfTU9EVUxFOwo+ICsJY29uZmlnLnVzZV9maXhl ZF9vZl9jZWxscyA9IHRydWU7Cj4gICAJY29uZmlnLnR5cGUgPSBOVk1FTV9UWVBFX09UUDsKPiAg IAljb25maWcucm9vdF9vbmx5ID0gdHJ1ZTsKPiAgIAljb25maWcuaWdub3JlX3dwID0gdHJ1ZTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9hcHBsZS1lZnVzZXMuYyBiL2RyaXZlcnMvbnZt ZW0vYXBwbGUtZWZ1c2VzLmMKPiBpbmRleCA5YjdjODcxMDIxMDQuLjAxMTliYWM0M2IyYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL2FwcGxlLWVmdXNlcy5jCj4gKysrIGIvZHJpdmVycy9u dm1lbS9hcHBsZS1lZnVzZXMuYwo+IEBAIC0zNiw2ICszNiw3IEBAIHN0YXRpYyBpbnQgYXBwbGVf ZWZ1c2VzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJc3RydWN0IHJl c291cmNlICpyZXM7Cj4gICAJc3RydWN0IG52bWVtX2NvbmZpZyBjb25maWcgPSB7Cj4gICAJCS5k ZXYgPSAmcGRldi0+ZGV2LAo+ICsJCS51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlLAo+ICAgCQku cmVhZF9vbmx5ID0gdHJ1ZSwKPiAgIAkJLnJlZ19yZWFkID0gYXBwbGVfZWZ1c2VzX3JlYWQsCj4g ICAJCS5zdHJpZGUgPSBzaXplb2YodTMyKSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9j b3JlLmMgYi9kcml2ZXJzL252bWVtL2NvcmUuYwo+IGluZGV4IDE3NGVmMzU3NGUwNy4uNjc4M2Nk ODQ3OGQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vY29yZS5jCj4gKysrIGIvZHJpdmVy cy9udm1lbS9jb3JlLmMKPiBAQCAtODQ0LDkgKzg0NCwxMSBAQCBzdHJ1Y3QgbnZtZW1fZGV2aWNl ICpudm1lbV9yZWdpc3Rlcihjb25zdCBzdHJ1Y3QgbnZtZW1fY29uZmlnICpjb25maWcpCj4gICAJ aWYgKHJ2YWwpCj4gICAJCWdvdG8gZXJyX3JlbW92ZV9jZWxsczsKPiAgIAo+IC0JcnZhbCA9IG52 bWVtX2FkZF9jZWxsc19mcm9tX29mKG52bWVtKTsKPiAtCWlmIChydmFsKQo+IC0JCWdvdG8gZXJy X3JlbW92ZV9jZWxsczsKPiArCWlmIChjb25maWctPnVzZV9maXhlZF9vZl9jZWxscykgewo+ICsJ CXJ2YWwgPSBudm1lbV9hZGRfY2VsbHNfZnJvbV9vZihudm1lbSk7Cj4gKwkJaWYgKHJ2YWwpCj4g KwkJCWdvdG8gZXJyX3JlbW92ZV9jZWxsczsKPiArCX0KPiAgIAo+ICAgCWRldl9kYmcoJm52bWVt LT5kZXYsICJSZWdpc3RlcmluZyBudm1lbSBkZXZpY2UgJXNcbiIsIGNvbmZpZy0+bmFtZSk7Cj4g ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMgYi9kcml2ZXJz L252bWVtL2lteC1vY290cC1zY3UuYwo+IGluZGV4IDM5OWUxZWI4YjRjMS4uZWM1Y2NlN2M2Njk3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vaW14LW9jb3RwLXNjdS5jCj4gKysrIGIvZHJp dmVycy9udm1lbS9pbXgtb2NvdHAtc2N1LmMKPiBAQCAtMjIwLDYgKzIyMCw3IEBAIHN0YXRpYyBp bnQgaW14X3NjdV9vY290cF93cml0ZSh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAo+ICAgCj4gICBzdGF0aWMgc3RydWN0IG52bWVtX2NvbmZpZyBpbXhfc2N1X29jb3RwX252bWVt X2NvbmZpZyA9IHsKPiAgIAkubmFtZSA9ICJpbXgtc2N1LW9jb3RwIiwKPiArCS51c2VfZml4ZWRf b2ZfY2VsbHMgPSB0cnVlLAo+ICAgCS5yZWFkX29ubHkgPSBmYWxzZSwKPiAgIAkud29yZF9zaXpl ID0gNCwKPiAgIAkuc3RyaWRlID0gMSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9pbXgt b2NvdHAuYyBiL2RyaXZlcnMvbnZtZW0vaW14LW9jb3RwLmMKPiBpbmRleCBlOWI1MmVjYjNmNzIu LmUzN2E4MmY5OGJhNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL2lteC1vY290cC5jCj4g KysrIGIvZHJpdmVycy9udm1lbS9pbXgtb2NvdHAuYwo+IEBAIC02MTYsNiArNjE2LDcgQEAgc3Rh dGljIGludCBpbXhfb2NvdHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAg IAkJcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiAgIAo+ICAgCXByaXYtPnBhcmFtcyA9IG9m X2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKPiArCWlteF9vY290cF9udm1lbV9j b25maWcudXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAlpbXhfb2NvdHBfbnZtZW1fY29u ZmlnLnNpemUgPSA0ICogcHJpdi0+cGFyYW1zLT5ucmVnczsKPiAgIAlpbXhfb2NvdHBfbnZtZW1f Y29uZmlnLmRldiA9IGRldjsKPiAgIAlpbXhfb2NvdHBfbnZtZW1fY29uZmlnLnByaXYgPSBwcml2 Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL21lc29uLWVmdXNlLmMgYi9kcml2ZXJzL252 bWVtL21lc29uLWVmdXNlLmMKPiBpbmRleCBkNmI1MzM0OTdjZTEuLjY1N2UxNzFkNWFmMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL21lc29uLWVmdXNlLmMKPiArKysgYi9kcml2ZXJzL252 bWVtL21lc29uLWVmdXNlLmMKPiBAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgaW50IG1lc29uX2Vm dXNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAKPiAgIAllY29uZmln LT5kZXYgPSBkZXY7Cj4gICAJZWNvbmZpZy0+bmFtZSA9IGRldl9uYW1lKGRldik7Cj4gKwllY29u ZmlnLT51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCWVjb25maWctPnN0cmlkZSA9IDE7 Cj4gICAJZWNvbmZpZy0+d29yZF9zaXplID0gMTsKPiAgIAllY29uZmlnLT5yZWdfcmVhZCA9IG1l c29uX2VmdXNlX3JlYWQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1 c2UuYyBiL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1c2UuYwo+IGluZGV4IDEzZWIxNDMxNmY0 Ni4uN2NjNTEzOTFlYzljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1 c2UuYwo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vbWVzb24tbXgtZWZ1c2UuYwo+IEBAIC0yMTMsNiAr MjEzLDcgQEAgc3RhdGljIGludCBtZXNvbl9teF9lZnVzZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ICAgCWVmdXNlLT5jb25maWcub3duZXIgPSBUSElTX01PRFVMRTsKPiAg IAllZnVzZS0+Y29uZmlnLmRldiA9ICZwZGV2LT5kZXY7Cj4gICAJZWZ1c2UtPmNvbmZpZy5wcml2 ID0gZWZ1c2U7Cj4gKwllZnVzZS0+Y29uZmlnLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4g ICAJZWZ1c2UtPmNvbmZpZy5zdHJpZGUgPSBkcnZkYXRhLT53b3JkX3NpemU7Cj4gICAJZWZ1c2Ut PmNvbmZpZy53b3JkX3NpemUgPSBkcnZkYXRhLT53b3JkX3NpemU7Cj4gICAJZWZ1c2UtPmNvbmZp Zy5zaXplID0gU1pfNTEyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1v dHBjLmMgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMKPiBpbmRleCA0MzZlMGRjNGYz MzcuLmZiOTIwZmQ3YThmYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1v dHBjLmMKPiArKysgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMKPiBAQCAtMjYxLDYg KzI2MSw3IEBAIHN0YXRpYyBpbnQgbWNocF9vdHBjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiAgIAltY2hwX252bWVtX2NvbmZpZy5k ZXYgPSBvdHBjLT5kZXY7Cj4gKwltY2hwX252bWVtX2NvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMg PSB0cnVlOwo+ICAgCW1jaHBfbnZtZW1fY29uZmlnLnNpemUgPSBzaXplOwo+ICAgCW1jaHBfbnZt ZW1fY29uZmlnLnByaXYgPSBvdHBjOwo+ICAgCW52bWVtID0gZGV2bV9udm1lbV9yZWdpc3Rlcigm cGRldi0+ZGV2LCAmbWNocF9udm1lbV9jb25maWcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252 bWVtL210ay1lZnVzZS5jIGIvZHJpdmVycy9udm1lbS9tdGstZWZ1c2UuYwo+IGluZGV4IGEwOGUw YWVkZDIxYy4uMTk0NzMzN2ExMjFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vbXRrLWVm dXNlLmMKPiArKysgYi9kcml2ZXJzL252bWVtL210ay1lZnVzZS5jCj4gQEAgLTQ1LDYgKzQ1LDcg QEAgc3RhdGljIGludCBtdGtfZWZ1c2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgIAlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQo+ICAgCQlyZXR1cm4gUFRSX0VSUihwcml2 LT5iYXNlKTsKPiAgIAo+ICsJZWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAg CWVjb25maWcuc3RyaWRlID0gMTsKPiAgIAllY29uZmlnLndvcmRfc2l6ZSA9IDE7Cj4gICAJZWNv bmZpZy5yZWdfcmVhZCA9IG10a19yZWdfcmVhZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1l bS9xY29tLXNwbWktc2RhbS5jIGIvZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5jCj4gaW5k ZXggZjgyMjc5MGRiNDllLi5iNTQ3ZGVmOTRiNWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9udm1l bS9xY29tLXNwbWktc2RhbS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9xY29tLXNwbWktc2RhbS5j Cj4gQEAgLTE0Miw2ICsxNDIsNyBAQCBzdGF0aWMgaW50IHNkYW1fcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAlzZGFtLT5zZGFtX2NvbmZpZy5uYW1lID0gInNwbWlfc2Rh bSI7Cj4gICAJc2RhbS0+c2RhbV9jb25maWcuaWQgPSBOVk1FTV9ERVZJRF9BVVRPOwo+ICAgCXNk YW0tPnNkYW1fY29uZmlnLm93bmVyID0gVEhJU19NT0RVTEU7Cj4gKwlzZGFtLT5zZGFtX2NvbmZp Zy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCXNkYW0tPnNkYW1fY29uZmlnLnN0cmlk ZSA9IDE7Cj4gICAJc2RhbS0+c2RhbV9jb25maWcud29yZF9zaXplID0gMTsKPiAgIAlzZGFtLT5z ZGFtX2NvbmZpZy5yZWdfcmVhZCA9IHNkYW1fcmVhZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u dm1lbS9xZnByb20uYyBiL2RyaXZlcnMvbnZtZW0vcWZwcm9tLmMKPiBpbmRleCBjMWU4OTNjOGEy NDcuLmViMTI2ZDUwNzU2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWVtL3FmcHJvbS5jCj4g KysrIGIvZHJpdmVycy9udm1lbS9xZnByb20uYwo+IEBAIC0zNTcsNiArMzU3LDcgQEAgc3RhdGlj IGludCBxZnByb21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAg IAlzdHJ1Y3QgbnZtZW1fY29uZmlnIGVjb25maWcgPSB7Cj4gICAJCS5uYW1lID0gInFmcHJvbSIs Cj4gKwkJLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWUsCj4gICAJCS5zdHJpZGUgPSAxLAo+ICAg CQkud29yZF9zaXplID0gMSwKPiAgIAkJLmlkID0gTlZNRU1fREVWSURfQVVUTywKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9udm1lbS9yYXZlLXNwLWVlcHJvbS5jIGIvZHJpdmVycy9udm1lbS9yYXZl LXNwLWVlcHJvbS5jCj4gaW5kZXggYzQ1NjAxMWI3NWU4Li5lOWI0Yzc5MjdlMzcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9udm1lbS9yYXZlLXNwLWVlcHJvbS5jCj4gKysrIGIvZHJpdmVycy9udm1l bS9yYXZlLXNwLWVlcHJvbS5jCj4gQEAgLTMyOCw2ICszMjgsNyBAQCBzdGF0aWMgaW50IHJhdmVf c3BfZWVwcm9tX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJb2ZfcHJv cGVydHlfcmVhZF9zdHJpbmcobnAsICJ6aWksZWVwcm9tLW5hbWUiLCAmY29uZmlnLm5hbWUpOwo+ ICAgCWNvbmZpZy5wcml2CQk9IGVlcHJvbTsKPiAgIAljb25maWcuZGV2CQk9IGRldjsKPiArCWNv bmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMJPSB0cnVlOwo+ICAgCWNvbmZpZy5zaXplCQk9IHNpemU7 Cj4gICAJY29uZmlnLnJlZ19yZWFkCQk9IHJhdmVfc3BfZWVwcm9tX3JlZ19yZWFkOwo+ICAgCWNv bmZpZy5yZWdfd3JpdGUJPSByYXZlX3NwX2VlcHJvbV9yZWdfd3JpdGU7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAtZWZ1c2UuYyBiL2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAt ZWZ1c2UuYwo+IGluZGV4IGU0NTc5ZGU1ZDAxNC4uMjExZjZlNzQwMWE5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbnZtZW0vcm9ja2NoaXAtZWZ1c2UuYwo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vcm9j a2NoaXAtZWZ1c2UuYwo+IEBAIC0yMDUsNiArMjA1LDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9y azMzOTlfZWZ1c2VfcmVhZCh2b2lkICpjb250ZXh0LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+ICAg Cj4gICBzdGF0aWMgc3RydWN0IG52bWVtX2NvbmZpZyBlY29uZmlnID0gewo+ICAgCS5uYW1lID0g InJvY2tjaGlwLWVmdXNlIiwKPiArCS51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlLAo+ICAgCS5z dHJpZGUgPSAxLAo+ICAgCS53b3JkX3NpemUgPSAxLAo+ICAgCS5yZWFkX29ubHkgPSB0cnVlLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3NjMjd4eC1lZnVzZS5jIGIvZHJpdmVycy9udm1l bS9zYzI3eHgtZWZ1c2UuYwo+IGluZGV4IGM4MjVmYzkwMmQxMC4uZWQ1Y2M0ZjNlMmJjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc2MyN3h4LWVmdXNlLmMKPiArKysgYi9kcml2ZXJzL252 bWVtL3NjMjd4eC1lZnVzZS5jCj4gQEAgLTI0OCw2ICsyNDgsNyBAQCBzdGF0aWMgaW50IHNjMjd4 eF9lZnVzZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcu cmVnX3JlYWQgPSBzYzI3eHhfZWZ1c2VfcmVhZDsKPiAgIAllY29uZmlnLnByaXYgPSBlZnVzZTsK PiAgIAllY29uZmlnLmRldiA9ICZwZGV2LT5kZXY7Cj4gKwllY29uZmlnLnVzZV9maXhlZF9vZl9j ZWxscyA9IHRydWU7Cj4gICAJbnZtZW0gPSBkZXZtX252bWVtX3JlZ2lzdGVyKCZwZGV2LT5kZXYs ICZlY29uZmlnKTsKPiAgIAlpZiAoSVNfRVJSKG52bWVtKSkgewo+ICAgCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgbnZtZW0gY29uZmlnXG4iKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udm1lbS9zcHJkLWVmdXNlLmMgYi9kcml2ZXJzL252bWVtL3NwcmQtZWZ1c2Uu Ywo+IGluZGV4IDRmMWZjYmZlYzM5NC4uZWYzMTYxNjQ1ZjYwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvbnZtZW0vc3ByZC1lZnVzZS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9zcHJkLWVmdXNlLmMK PiBAQCAtNDA4LDYgKzQwOCw3IEBAIHN0YXRpYyBpbnQgc3ByZF9lZnVzZV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcucmVhZF9vbmx5ID0gZmFsc2U7Cj4g ICAJZWNvbmZpZy5uYW1lID0gInNwcmQtZWZ1c2UiOwo+ICAgCWVjb25maWcuc2l6ZSA9IGVmdXNl LT5kYXRhLT5ibGtfbnVtcyAqIFNQUkRfRUZVU0VfQkxPQ0tfV0lEVEg7Cj4gKwllY29uZmlnLnVz ZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4gICAJZWNvbmZpZy5yZWdfcmVhZCA9IHNwcmRfZWZ1 c2VfcmVhZDsKPiAgIAllY29uZmlnLnJlZ193cml0ZSA9IHNwcmRfZWZ1c2Vfd3JpdGU7Cj4gICAJ ZWNvbmZpZy5wcml2ID0gZWZ1c2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZW0vc3RtMzIt cm9tZW0uYyBiL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0uYwo+IGluZGV4IGJhNzc5ZTI2OTM3 YS4uYTZmYzQzYWNiNzk3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0u Ywo+ICsrKyBiL2RyaXZlcnMvbnZtZW0vc3RtMzItcm9tZW0uYwo+IEBAIC0yMDgsNiArMjA4LDcg QEAgc3RhdGljIGludCBzdG0zMl9yb21lbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICAgCXByaXYtPmNmZy5wcml2ID0gcHJpdjsKPiAgIAlwcml2LT5jZmcub3duZXIgPSBU SElTX01PRFVMRTsKPiAgIAlwcml2LT5jZmcudHlwZSA9IE5WTUVNX1RZUEVfT1RQOwo+ICsJcHJp di0+Y2ZnLnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWU7Cj4gICAKPiAgIAlwcml2LT5sb3dlciA9 IDA7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lbS9zdW5wbHVzLW9jb3RwLmMgYi9k cml2ZXJzL252bWVtL3N1bnBsdXMtb2NvdHAuYwo+IGluZGV4IDUyYjkyOGE3YTZkNS4uNTdlM2Uw ODMzYjg1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0vc3VucGx1cy1vY290cC5jCj4gKysr IGIvZHJpdmVycy9udm1lbS9zdW5wbHVzLW9jb3RwLmMKPiBAQCAtMTQ1LDYgKzE0NSw3IEBAIHN0 YXRpYyBpbnQgc3Bfb2NvdHBfcmVhZCh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2 b2lkICp2YWx1ZSwgc2l6ZV90IGJ5Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgbnZtZW1fY29uZmln IHNwX29jb3RwX252bWVtX2NvbmZpZyA9IHsKPiAgIAkubmFtZSA9ICJzcC1vY290cCIsCj4gKwku dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZSwKPiAgIAkucmVhZF9vbmx5ID0gdHJ1ZSwKPiAgIAku d29yZF9zaXplID0gMSwKPiAgIAkuc2l6ZSA9IFFBQzYyOF9PVFBfU0laRSwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udm1lbS9zdW54aV9zaWQuYyBiL2RyaXZlcnMvbnZtZW0vc3VueGlfc2lkLmMK PiBpbmRleCBhOTcwZjE3NDFjYzYuLjZhYjdhYTM3MjRhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L252bWVtL3N1bnhpX3NpZC5jCj4gKysrIGIvZHJpdmVycy9udm1lbS9zdW54aV9zaWQuYwo+IEBA IC0xNTYsNiArMTU2LDcgQEAgc3RhdGljIGludCBzdW54aV9zaWRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIAludm1lbV9jZmctPmRldiA9IGRldjsKPiAgIAludm1lbV9j ZmctPm5hbWUgPSAic3VueGktc2lkIjsKPiAgIAludm1lbV9jZmctPnR5cGUgPSBOVk1FTV9UWVBF X09UUDsKPiArCW52bWVtX2NmZy0+dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAludm1l bV9jZmctPnJlYWRfb25seSA9IHRydWU7Cj4gICAJbnZtZW1fY2ZnLT5zaXplID0gY2ZnLT5zaXpl Owo+ICAgCW52bWVtX2NmZy0+d29yZF9zaXplID0gMTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u dm1lbS91bmlwaGllci1lZnVzZS5jIGIvZHJpdmVycy9udm1lbS91bmlwaGllci1lZnVzZS5jCj4g aW5kZXggYWNhOTEwYjNiNmY4Li42OWI5ZGZlNmFiNmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9u dm1lbS91bmlwaGllci1lZnVzZS5jCj4gKysrIGIvZHJpdmVycy9udm1lbS91bmlwaGllci1lZnVz ZS5jCj4gQEAgLTUzLDYgKzUzLDcgQEAgc3RhdGljIGludCB1bmlwaGllcl9lZnVzZV9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCWVjb25maWcuc2l6ZSA9IHJlc291cmNl X3NpemUocmVzKTsKPiAgIAllY29uZmlnLnByaXYgPSBwcml2Owo+ICAgCWVjb25maWcuZGV2ID0g ZGV2Owo+ICsJZWNvbmZpZy51c2VfZml4ZWRfb2ZfY2VsbHMgPSB0cnVlOwo+ICAgCW52bWVtID0g ZGV2bV9udm1lbV9yZWdpc3RlcihkZXYsICZlY29uZmlnKTsKPiAgIAo+ICAgCXJldHVybiBQVFJf RVJSX09SX1pFUk8obnZtZW0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVtL3p5bnFtcF9u dm1lbS5jIGIvZHJpdmVycy9udm1lbS96eW5xbXBfbnZtZW0uYwo+IGluZGV4IGUyOGQ3YjEzM2Ux MS4uZDEzNzUwYTRjMTEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZW0venlucW1wX252bWVt LmMKPiArKysgYi9kcml2ZXJzL252bWVtL3p5bnFtcF9udm1lbS5jCj4gQEAgLTU4LDYgKzU4LDcg QEAgc3RhdGljIGludCB6eW5xbXBfbnZtZW1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiAgIAo+ICAgCXByaXYtPmRldiA9IGRldjsKPiAgIAllY29uZmlnLmRldiA9IGRldjsK PiArCWVjb25maWcudXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1ZTsKPiAgIAllY29uZmlnLnJlZ19y ZWFkID0genlucW1wX252bWVtX3JlYWQ7Cj4gICAJZWNvbmZpZy5wcml2ID0gcHJpdjsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9udm1lbS5jIGIvZHJpdmVycy9ydGMvbnZtZW0uYwo+ IGluZGV4IDA3ZWRlMjFjZWUzNC4uNWNjMDM5ZDkyMjU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv cnRjL252bWVtLmMKPiArKysgYi9kcml2ZXJzL3J0Yy9udm1lbS5jCj4gQEAgLTIxLDYgKzIxLDcg QEAgaW50IGRldm1fcnRjX252bWVtX3JlZ2lzdGVyKHN0cnVjdCBydGNfZGV2aWNlICpydGMsCj4g ICAKPiAgIAludm1lbV9jb25maWctPmRldiA9IGRldjsKPiAgIAludm1lbV9jb25maWctPm93bmVy ID0gcnRjLT5vd25lcjsKPiArCW52bWVtX2NvbmZpZy0+dXNlX2ZpeGVkX29mX2NlbGxzID0gdHJ1 ZTsKPiAgIAludm1lbSA9IGRldm1fbnZtZW1fcmVnaXN0ZXIoZGV2LCBudm1lbV9jb25maWcpOwo+ ICAgCWlmIChJU19FUlIobnZtZW0pKQo+ICAgCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdp c3RlciBudm1lbSBkZXZpY2UgZm9yIFJUQ1xuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdzEv c2xhdmVzL3cxX2RzMjUweC5jIGIvZHJpdmVycy93MS9zbGF2ZXMvdzFfZHMyNTB4LmMKPiBpbmRl eCA3NTkyYzcwNTBkMWQuLjUzODcyMmI0MWY4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3cxL3Ns YXZlcy93MV9kczI1MHguYwo+ICsrKyBiL2RyaXZlcnMvdzEvc2xhdmVzL3cxX2RzMjUweC5jCj4g QEAgLTE2OCw2ICsxNjgsNyBAQCBzdGF0aWMgaW50IHcxX2Vwcm9tX2FkZF9zbGF2ZShzdHJ1Y3Qg dzFfc2xhdmUgKnNsKQo+ICAgCXN0cnVjdCBudm1lbV9kZXZpY2UgKm52bWVtOwo+ICAgCXN0cnVj dCBudm1lbV9jb25maWcgbnZtZW1fY2ZnID0gewo+ICAgCQkuZGV2ID0gJnNsLT5kZXYsCj4gKwkJ LnVzZV9maXhlZF9vZl9jZWxscyA9IHRydWUsCj4gICAJCS5yZWdfcmVhZCA9IHcxX252bWVtX3Jl YWQsCj4gICAJCS50eXBlID0gTlZNRU1fVFlQRV9PVFAsCj4gICAJCS5yZWFkX29ubHkgPSB0cnVl LAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmggYi9pbmNsdWRl L2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiBpbmRleCAwMjYyYjg2MTk0ZWIuLmIzYzE0Y2U4N2E2 NSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiArKysgYi9p bmNsdWRlL2xpbnV4L252bWVtLXByb3ZpZGVyLmgKPiBAQCAtNzMsNiArNzMsNyBAQCBzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvIHsKPiAgICAqIEBvd25lcjoJUG9pbnRlciB0byBleHBvcnRlciBtb2R1 bGUuIFVzZWQgZm9yIHJlZmNvdW50aW5nLgo+ICAgICogQGNlbGxzOglPcHRpb25hbCBhcnJheSBv ZiBwcmUtZGVmaW5lZCBOVk1FTSBjZWxscy4KPiAgICAqIEBuY2VsbHM6CU51bWJlciBvZiBlbGVt ZW50cyBpbiBjZWxscy4KPiArICogQHVzZV9maXhlZF9vZl9jZWxsczoJUmVhZCBmaXhlZCBOVk1F TSBjZWxscyBmcm9tIE9GLgo+ICAgICogQGtlZXBvdXQ6CU9wdGlvbmFsIGFycmF5IG9mIGtlZXBv dXQgcmFuZ2VzIChzb3J0ZWQgYXNjZW5kaW5nIGJ5IHN0YXJ0KS4KPiAgICAqIEBua2VlcG91dDoJ TnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBrZWVwb3V0IGFycmF5Lgo+ICAgICogQHR5cGU6CVR5 cGUgb2YgdGhlIG52bWVtIHN0b3JhZ2UKPiBAQCAtMTAzLDYgKzEwNCw3IEBAIHN0cnVjdCBudm1l bV9jb25maWcgewo+ICAgCXN0cnVjdCBtb2R1bGUJCSpvd25lcjsKPiAgIAljb25zdCBzdHJ1Y3Qg bnZtZW1fY2VsbF9pbmZvCSpjZWxsczsKPiAgIAlpbnQJCQluY2VsbHM7Cj4gKwlib29sCQkJdXNl X2ZpeGVkX29mX2NlbGxzOwo+ICAgCWNvbnN0IHN0cnVjdCBudm1lbV9rZWVwb3V0ICprZWVwb3V0 Owo+ICAgCXVuc2lnbmVkIGludAkJbmtlZXBvdXQ7Cj4gICAJZW51bSBudm1lbV90eXBlCQl0eXBl OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgt cm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hp cAo=