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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32127C433FE for ; Fri, 7 Jan 2022 02:40:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345552AbiAGCkj (ORCPT ); Thu, 6 Jan 2022 21:40:39 -0500 Received: from mail-sz.amlogic.com ([211.162.65.117]:10240 "EHLO mail-sz.amlogic.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345512AbiAGCki (ORCPT ); Thu, 6 Jan 2022 21:40:38 -0500 Received: from [10.28.39.73] (10.28.39.73) by mail-sz.amlogic.com (10.28.11.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 7 Jan 2022 10:40:35 +0800 Message-ID: <9c7b1d77-cff1-b40c-6d02-f67ca8b9b683@amlogic.com> Date: Fri, 7 Jan 2022 10:40:35 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH] mtd: rawnand: meson: fix the clock after discarding sd_emmc_c_clkc Content-Language: en-US To: Miquel Raynal CC: , Richard Weinberger , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , References: <20220106032504.23310-1-liang.yang@amlogic.com> <20220106090832.42225c49@xps13> From: Liang Yang In-Reply-To: <20220106090832.42225c49@xps13> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.28.39.73] X-ClientProxiedBy: mail-sz.amlogic.com (10.28.11.5) To mail-sz.amlogic.com (10.28.11.5) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Miquel, Meson NFC clock depends on the implementation of sd_emmc_c_clkc, but i don't find the commit in linux mainline. then the information i got from [jianxin.pan@amlogic.com] is the rejection of serial patches. I just look into the corresponding emails in link: https://lore.kernel.org/all/86789d73-5a6c-7729-ecd1-dcd342b2fcde@amlogic.com/ it seems the patch never go on since V6, so [jianxin.pan@amlogic.com], could you help to clear it? let us address the discussion in another email from [jbrunet@baylibre.com]. On 2022/1/6 16:08, Miquel Raynal wrote: > [ EXTERNAL EMAIL ] > > Hi Liang, > > liang.yang@amlogic.com wrote on Thu, 6 Jan 2022 11:25:04 +0800: > >> Because EMMC and NAND have the same control clock register, so we >> implement a 'sd_emmc_c_clkc'. Previously DTS is defined as below: >> >> sd_emmc_c_clkc: mmc@7000 { >> compatible = "amlogic,meson-axg-mmc-clkc", "syscon"; >> reg = <0x0 0x7000 0x0 0x800>; >> }; >> >> nand-controller@7800 { >> ...... >> >> clocks = <&clkc CLKID_SD_EMMC_C>, >> <&sd_emmc_c_clkc CLKID_MMC_DIV>, >> <&sd_emmc_c_clkc CLKID_MMC_PHASE_RX>, >> <&sd_emmc_c_clkc CLKID_MMC_PHASE_TX>; >> clock-names = "core", "device", "rx", "tx"; >> amlogic,mmc-syscon = <&sd_emmc_c_clkc>; >> >> ...... >> } >> >> but in fact, above implementation is rejected. so now registering >> a nand_divider. > > What is rejected? > Why is it rejected? > What is nand_divider? i simplify our clock framework below, so nand divider is SD_EMMC_CLOCK[5:0] here. ----- ----- ----- the other------| \ | | | | | mux | ----- | N | ----------| NFC/| FCLK_DIV2------| | | | | EMMC| -----/ ----- ----- SD_EMMC_CLOCK[7:6] SD_EMMC_CLOCK[5:0] > > >> >> Change-Id: Ibeb4c7ff886f5886aac4d6c664d7bbd1b1bcb997 > > Change Ids are not expected in the upstream kernel. > > But if you fix something you should have a Fixes:. > >> Signed-off-by: Liang Yang >> --- >> drivers/mtd/nand/raw/meson_nand.c | 88 +++++++++++++++++-------------- >> 1 file changed, 49 insertions(+), 39 deletions(-) >> >> diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c >> index ac3be92872d0..4472363059c2 100644 >> --- a/drivers/mtd/nand/raw/meson_nand.c >> +++ b/drivers/mtd/nand/raw/meson_nand.c >> @@ -2,7 +2,7 @@ >> /* >> * Amlogic Meson Nand Flash Controller Driver >> * >> - * Copyright (c) 2018 Amlogic, inc. >> + * Copyright (c) 2018-2021 Amlogic, inc. >> * Author: Liang Yang >> */ >> >> @@ -10,6 +10,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> #include >> @@ -55,6 +56,7 @@ >> #define NFC_REG_VER 0x38 >> >> #define NFC_RB_IRQ_EN BIT(21) >> +#define NFC_CMD_FIFO_RESET BIT(31) >> >> #define CMDRWGEN(cmd_dir, ran, bch, short_mode, page_size, pages) \ >> ( \ >> @@ -104,6 +106,9 @@ >> >> #define PER_INFO_BYTE 8 >> >> +#define CLK_DIV_SHIFT 0 >> +#define CLK_DIV_WIDTH 6 >> + >> struct meson_nfc_nand_chip { >> struct list_head node; >> struct nand_chip nand; >> @@ -151,15 +156,15 @@ struct meson_nfc { >> struct nand_controller controller; >> struct clk *core_clk; >> struct clk *device_clk; >> - struct clk *phase_tx; >> - struct clk *phase_rx; >> + struct clk *nand_clk; >> + struct clk_divider nand_divider; >> >> unsigned long clk_rate; >> u32 bus_timing; >> >> struct device *dev; >> void __iomem *reg_base; >> - struct regmap *reg_clk; >> + void __iomem *reg_clk; >> struct completion completion; >> struct list_head chips; >> const struct meson_nfc_data *data; >> @@ -406,12 +411,14 @@ static int meson_nfc_queue_rb(struct meson_nfc *nfc, int timeout_ms) >> cmd = NFC_CMD_RB | NFC_CMD_RB_INT >> | nfc->param.chip_select | nfc->timing.tbers_max; >> writel(cmd, nfc->reg_base + NFC_REG_CMD); >> - >> + meson_nfc_drain_cmd(nfc); >> ret = wait_for_completion_timeout(&nfc->completion, >> msecs_to_jiffies(timeout_ms)); >> if (ret == 0) >> ret = -1; >> >> + /* reset command fifo to avoid lock */ >> + writel(NFC_CMD_FIFO_RESET, nfc->reg_base + NFC_REG_CMD); >> return ret; >> } >> >> @@ -988,8 +995,9 @@ static const struct mtd_ooblayout_ops meson_ooblayout_ops = { >> static int meson_nfc_clk_init(struct meson_nfc *nfc) >> { >> int ret; >> + struct clk_init_data init = {0}; >> + const char *fix_div2_pll_name[1]; >> >> - /* request core clock */ >> nfc->core_clk = devm_clk_get(nfc->dev, "core"); >> if (IS_ERR(nfc->core_clk)) { >> dev_err(nfc->dev, "failed to get core clock\n"); >> @@ -1002,21 +1010,25 @@ static int meson_nfc_clk_init(struct meson_nfc *nfc) >> return PTR_ERR(nfc->device_clk); >> } >> >> - nfc->phase_tx = devm_clk_get(nfc->dev, "tx"); >> - if (IS_ERR(nfc->phase_tx)) { >> - dev_err(nfc->dev, "failed to get TX clk\n"); >> - return PTR_ERR(nfc->phase_tx); >> - } >> - >> - nfc->phase_rx = devm_clk_get(nfc->dev, "rx"); >> - if (IS_ERR(nfc->phase_rx)) { >> - dev_err(nfc->dev, "failed to get RX clk\n"); >> - return PTR_ERR(nfc->phase_rx); >> - } >> + init.name = devm_kstrdup(nfc->dev, "nfc#div", GFP_KERNEL); >> + init.ops = &clk_divider_ops; >> + fix_div2_pll_name[0] = __clk_get_name(nfc->device_clk); >> + init.parent_names = fix_div2_pll_name; >> + init.num_parents = 1; >> + nfc->nand_divider.reg = nfc->reg_clk; >> + nfc->nand_divider.shift = CLK_DIV_SHIFT; >> + nfc->nand_divider.width = CLK_DIV_WIDTH; >> + nfc->nand_divider.hw.init = &init; >> + nfc->nand_divider.flags = CLK_DIVIDER_ONE_BASED | >> + CLK_DIVIDER_ROUND_CLOSEST | >> + CLK_DIVIDER_ALLOW_ZERO; >> + >> + nfc->nand_clk = devm_clk_register(nfc->dev, &nfc->nand_divider.hw); >> + if (IS_ERR(nfc->nand_clk)) >> + return PTR_ERR(nfc->nand_clk); >> >> /* init SD_EMMC_CLOCK to sane defaults w/min clock rate */ >> - regmap_update_bits(nfc->reg_clk, >> - 0, CLK_SELECT_NAND, CLK_SELECT_NAND); >> + writel(CLK_SELECT_NAND | readl(nfc->reg_clk), nfc->reg_clk); >> >> ret = clk_prepare_enable(nfc->core_clk); >> if (ret) { >> @@ -1030,29 +1042,21 @@ static int meson_nfc_clk_init(struct meson_nfc *nfc) >> goto err_device_clk; >> } >> >> - ret = clk_prepare_enable(nfc->phase_tx); >> + ret = clk_prepare_enable(nfc->nand_clk); >> if (ret) { >> - dev_err(nfc->dev, "failed to enable TX clock\n"); >> - goto err_phase_tx; >> - } >> - >> - ret = clk_prepare_enable(nfc->phase_rx); >> - if (ret) { >> - dev_err(nfc->dev, "failed to enable RX clock\n"); >> - goto err_phase_rx; >> + dev_err(nfc->dev, "pre enable NFC divider fail\n"); >> + goto err_nand_clk; >> } >> >> ret = clk_set_rate(nfc->device_clk, 24000000); >> if (ret) >> - goto err_disable_rx; >> + goto err_disable_clk; >> >> return 0; >> >> -err_disable_rx: >> - clk_disable_unprepare(nfc->phase_rx); >> -err_phase_rx: >> - clk_disable_unprepare(nfc->phase_tx); >> -err_phase_tx: >> +err_disable_clk: >> + clk_disable_unprepare(nfc->nand_clk); >> +err_nand_clk: >> clk_disable_unprepare(nfc->device_clk); >> err_device_clk: >> clk_disable_unprepare(nfc->core_clk); >> @@ -1061,8 +1065,7 @@ static int meson_nfc_clk_init(struct meson_nfc *nfc) >> >> static void meson_nfc_disable_clk(struct meson_nfc *nfc) >> { >> - clk_disable_unprepare(nfc->phase_rx); >> - clk_disable_unprepare(nfc->phase_tx); >> + clk_disable_unprepare(nfc->nand_clk); >> clk_disable_unprepare(nfc->device_clk); >> clk_disable_unprepare(nfc->core_clk); >> } >> @@ -1375,6 +1378,7 @@ static int meson_nfc_probe(struct platform_device *pdev) >> struct device *dev = &pdev->dev; >> struct meson_nfc *nfc; >> struct resource *res; >> + u32 ext_clk_reg; >> int ret, irq; >> >> nfc = devm_kzalloc(dev, sizeof(*nfc), GFP_KERNEL); >> @@ -1396,9 +1400,15 @@ static int meson_nfc_probe(struct platform_device *pdev) >> if (IS_ERR(nfc->reg_base)) >> return PTR_ERR(nfc->reg_base); >> >> - nfc->reg_clk = >> - syscon_regmap_lookup_by_phandle(dev->of_node, >> - "amlogic,mmc-syscon"); >> + ret = of_property_read_u32(pdev->dev.of_node, >> + "sd_emmc_c_clkc", >> + &ext_clk_reg); >> + if (ret) { >> + dev_err(dev, "failed to get NAND external clock register\n"); >> + return ret; >> + } >> + >> + nfc->reg_clk = devm_ioremap(&pdev->dev, ext_clk_reg, sizeof(int)); >> if (IS_ERR(nfc->reg_clk)) { >> dev_err(dev, "Failed to lookup clock base\n"); >> return PTR_ERR(nfc->reg_clk); > > > Thanks, > Miquèl > > . 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 5130EC433F5 for ; Fri, 7 Jan 2022 02:41:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:CC:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=l+/zFxoOQUDkkeV4yxAOX6YH21S775gonm0vOU6/um0=; b=NIF58Ri3VN6BJd ZAl7wP4hUdS/ZICbyrPBKrjhSOKntF7Knwn3fQUweVHWqzfskv95+hpAHSS08SAjIjuOU7Xwh4uZJ cm+CK4Z8T1Bqp6KHU/eDs/ycpk2BJ6Z7lXrFOZT3ar+oKPc3JckkIoLryh/0zCG/5RrLq7C0PuqLl PUm4nBrfuSamNAda7MInSv4cPct42NR34NaZahHRf8jo5DslQsxIA0dNyJ2pjLTa98LRwhgQp93E0 45ZWZ8F2rNYdwxQ44DcGqzR5D6Yu3kSGp90vNRm9bIXo9y5sSOtdX56DItn810yPqsj1Y5JK4QBSu HMy9AR61f84L7Fqmegog==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5fBp-0021MX-Vl; Fri, 07 Jan 2022 02:41:14 +0000 Received: from mail-sz.amlogic.com ([211.162.65.117]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5fBH-0020yq-C9; Fri, 07 Jan 2022 02:40:41 +0000 Received: from [10.28.39.73] (10.28.39.73) by mail-sz.amlogic.com (10.28.11.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 7 Jan 2022 10:40:35 +0800 Message-ID: <9c7b1d77-cff1-b40c-6d02-f67ca8b9b683@amlogic.com> Date: Fri, 7 Jan 2022 10:40:35 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH] mtd: rawnand: meson: fix the clock after discarding sd_emmc_c_clkc Content-Language: en-US To: Miquel Raynal CC: , Richard Weinberger , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , References: <20220106032504.23310-1-liang.yang@amlogic.com> <20220106090832.42225c49@xps13> From: Liang Yang In-Reply-To: <20220106090832.42225c49@xps13> X-Originating-IP: [10.28.39.73] X-ClientProxiedBy: mail-sz.amlogic.com (10.28.11.5) To mail-sz.amlogic.com (10.28.11.5) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220106_184039_469998_33879215 X-CRM114-Status: GOOD ( 22.49 ) 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 SGkgTWlxdWVsLAoKTWVzb24gTkZDIGNsb2NrIGRlcGVuZHMgb24gdGhlIGltcGxlbWVudGF0aW9u IG9mIHNkX2VtbWNfY19jbGtjLCBidXQgaSAKZG9uJ3QgZmluZCB0aGUgY29tbWl0IGluCmxpbnV4 IG1haW5saW5lLiB0aGVuIHRoZSBpbmZvcm1hdGlvbiBpIGdvdCBmcm9tIApbamlhbnhpbi5wYW5A YW1sb2dpYy5jb21dIGlzIHRoZSByZWplY3Rpb24gb2YKc2VyaWFsIHBhdGNoZXMuIEkganVzdCBs b29rIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZW1haWxzIGluIGxpbms6CiAKaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvYWxsLzg2Nzg5ZDczLTVhNmMtNzcyOS1lY2QxLWRjZDM0MmIyZmNkZUBhbWxv Z2ljLmNvbS8KaXQgc2VlbXMgdGhlIHBhdGNoIG5ldmVyIGdvIG9uIHNpbmNlIFY2LCBzbyBbamlh bnhpbi5wYW5AYW1sb2dpYy5jb21dLCAKY291bGQgeW91IGhlbHAgdG8gY2xlYXIgaXQ/CmxldCB1 cyBhZGRyZXNzIHRoZSBkaXNjdXNzaW9uIGluIGFub3RoZXIgZW1haWwgZnJvbSBbamJydW5ldEBi YXlsaWJyZS5jb21dLgoKT24gMjAyMi8xLzYgMTY6MDgsIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4g WyBFWFRFUk5BTCBFTUFJTCBdCj4gCj4gSGkgTGlhbmcsCj4gCj4gbGlhbmcueWFuZ0BhbWxvZ2lj LmNvbSB3cm90ZSBvbiBUaHUsIDYgSmFuIDIwMjIgMTE6MjU6MDQgKzA4MDA6Cj4gCj4+IEJlY2F1 c2UgRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNvbnRyb2wgY2xvY2sgcmVnaXN0ZXIsIHNv IHdlCj4+IGltcGxlbWVudCBhICdzZF9lbW1jX2NfY2xrYycuIFByZXZpb3VzbHkgRFRTIGlzIGRl ZmluZWQgYXMgYmVsb3c6Cj4+Cj4+IAlzZF9lbW1jX2NfY2xrYzogbW1jQDcwMDAgewo+PiAJCWNv bXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1heGctbW1jLWNsa2MiLCAic3lzY29uIjsKPj4gCQly ZWcgPSA8MHgwIDB4NzAwMCAweDAgMHg4MDA+Owo+PiAJfTsKPj4KPj4gCW5hbmQtY29udHJvbGxl ckA3ODAwIHsKPj4gCQkuLi4uLi4KPj4KPj4gCQljbG9ja3MgPSA8JmNsa2MgQ0xLSURfU0RfRU1N Q19DPiwKPj4gCQkJPCZzZF9lbW1jX2NfY2xrYyBDTEtJRF9NTUNfRElWPiwKPj4gCQkJPCZzZF9l bW1jX2NfY2xrYyBDTEtJRF9NTUNfUEhBU0VfUlg+LAo+PiAJCQk8JnNkX2VtbWNfY19jbGtjIENM S0lEX01NQ19QSEFTRV9UWD47Cj4+IAkJY2xvY2stbmFtZXMgPSAiY29yZSIsICJkZXZpY2UiLCAi cngiLCAidHgiOwo+PiAJCWFtbG9naWMsbW1jLXN5c2NvbiA9IDwmc2RfZW1tY19jX2Nsa2M+Owo+ Pgo+PiAJCS4uLi4uLgo+PiAJfQo+Pgo+PiBidXQgaW4gZmFjdCwgYWJvdmUgaW1wbGVtZW50YXRp b24gaXMgcmVqZWN0ZWQuIHNvIG5vdyByZWdpc3RlcmluZwo+PiBhIG5hbmRfZGl2aWRlci4KPiAK PiBXaGF0IGlzIHJlamVjdGVkPwo+IFdoeSBpcyBpdCByZWplY3RlZD8KPiBXaGF0IGlzIG5hbmRf ZGl2aWRlcj8KaSBzaW1wbGlmeSBvdXIgY2xvY2sgZnJhbWV3b3JrIGJlbG93LCBzbyBuYW5kIGRp dmlkZXIgaXMgClNEX0VNTUNfQ0xPQ0tbNTowXSBoZXJlLgoJCQkgICAtLS0tLSAgICAgICAgICAt LS0tLQkJICAgIC0tLS0tCgkgICB0aGUgb3RoZXItLS0tLS18CVwgICAgICAgIHwgICAgIHwJICAg fAkgfAogICAgICAgICAgCQkgIHwgbXV4CXwgLS0tLS0gIHwgIE4gIHwgLS0tLS0tLS0tLXwgTkZD L3wKCSAgIEZDTEtfRElWMi0tLS0tLXwgICAgIHwgICAgICAgIHwgICAgIHwJICAgfCBFTU1DfAoJ CQkgICAtLS0tLS8gICAgICAgICAtLS0tLSAJICAgIC0tLS0tCgkJICAgIFNEX0VNTUNfQ0xPQ0tb Nzo2XSBTRF9FTU1DX0NMT0NLWzU6MF0KPiAKPiAKPj4KPj4gQ2hhbmdlLUlkOiBJYmViNGM3ZmY4 ODZmNTg4NmFhYzRkNmM2NjRkN2JiZDFiMWJjYjk5Nwo+IAo+IENoYW5nZSBJZHMgYXJlIG5vdCBl eHBlY3RlZCBpbiB0aGUgdXBzdHJlYW0ga2VybmVsLgo+IAo+IEJ1dCBpZiB5b3UgZml4IHNvbWV0 aGluZyB5b3Ugc2hvdWxkIGhhdmUgYSBGaXhlczouCj4gCj4+IFNpZ25lZC1vZmYtYnk6IExpYW5n IFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dpYy5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvbXRkL25h bmQvcmF3L21lc29uX25hbmQuYyB8IDg4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0K Pj4gICAxIGZpbGUgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMgYi9kcml2 ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPj4gaW5kZXggYWMzYmU5Mjg3MmQwLi40NDcy MzYzMDU5YzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQu Ywo+PiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPj4gQEAgLTIsNyAr Miw3IEBACj4+ICAgLyoKPj4gICAgKiBBbWxvZ2ljIE1lc29uIE5hbmQgRmxhc2ggQ29udHJvbGxl ciBEcml2ZXIKPj4gICAgKgo+PiAtICogQ29weXJpZ2h0IChjKSAyMDE4IEFtbG9naWMsIGluYy4K Pj4gKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFtbG9naWMsIGluYy4KPj4gICAgKiBBdXRo b3I6IExpYW5nIFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dpYy5jb20+Cj4+ICAgICovCj4+ICAgCj4+ IEBAIC0xMCw2ICsxMCw3IEBACj4+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cj4+ ICAgI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9jbGsu aD4KPj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KPj4gICAjaW5jbHVkZSA8bGlu dXgvbXRkL3Jhd25hbmQuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgo+PiAgICNp bmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4+IEBAIC01NSw2ICs1Niw3IEBACj4+ICAgI2Rl ZmluZSBORkNfUkVHX1ZFUgkJMHgzOAo+PiAgIAo+PiAgICNkZWZpbmUgTkZDX1JCX0lSUV9FTgkJ QklUKDIxKQo+PiArI2RlZmluZSBORkNfQ01EX0ZJRk9fUkVTRVQJQklUKDMxKQo+PiAgIAo+PiAg ICNkZWZpbmUgQ01EUldHRU4oY21kX2RpciwgcmFuLCBiY2gsIHNob3J0X21vZGUsIHBhZ2Vfc2l6 ZSwgcGFnZXMpCVwKPj4gICAJKAkJCQkJCQkJXAo+PiBAQCAtMTA0LDYgKzEwNiw5IEBACj4+ICAg Cj4+ICAgI2RlZmluZSBQRVJfSU5GT19CWVRFCQk4Cj4+ICAgCj4+ICsjZGVmaW5lIENMS19ESVZf U0hJRlQJCTAKPj4gKyNkZWZpbmUgQ0xLX0RJVl9XSURUSAkJNgo+PiArCj4+ICAgc3RydWN0IG1l c29uX25mY19uYW5kX2NoaXAgewo+PiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+ICAgCXN0 cnVjdCBuYW5kX2NoaXAgbmFuZDsKPj4gQEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0cnVjdCBtZXNv bl9uZmMgewo+PiAgIAlzdHJ1Y3QgbmFuZF9jb250cm9sbGVyIGNvbnRyb2xsZXI7Cj4+ICAgCXN0 cnVjdCBjbGsgKmNvcmVfY2xrOwo+PiAgIAlzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+PiAtCXN0 cnVjdCBjbGsgKnBoYXNlX3R4Owo+PiAtCXN0cnVjdCBjbGsgKnBoYXNlX3J4Owo+PiArCXN0cnVj dCBjbGsgKm5hbmRfY2xrOwo+PiArCXN0cnVjdCBjbGtfZGl2aWRlciBuYW5kX2RpdmlkZXI7Cj4+ ICAgCj4+ICAgCXVuc2lnbmVkIGxvbmcgY2xrX3JhdGU7Cj4+ICAgCXUzMiBidXNfdGltaW5nOwo+ PiAgIAo+PiAgIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4+ICAgCXZvaWQgX19pb21lbSAqcmVnX2Jh c2U7Cj4+IC0Jc3RydWN0IHJlZ21hcCAqcmVnX2NsazsKPj4gKwl2b2lkIF9faW9tZW0gKnJlZ19j bGs7Cj4+ICAgCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247Cj4+ICAgCXN0cnVjdCBsaXN0 X2hlYWQgY2hpcHM7Cj4+ICAgCWNvbnN0IHN0cnVjdCBtZXNvbl9uZmNfZGF0YSAqZGF0YTsKPj4g QEAgLTQwNiwxMiArNDExLDE0IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVj dCBtZXNvbl9uZmMgKm5mYywgaW50IHRpbWVvdXRfbXMpCj4+ICAgCWNtZCA9IE5GQ19DTURfUkIg fCBORkNfQ01EX1JCX0lOVAo+PiAgIAkJfCBuZmMtPnBhcmFtLmNoaXBfc2VsZWN0IHwgbmZjLT50 aW1pbmcudGJlcnNfbWF4Owo+PiAgIAl3cml0ZWwoY21kLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JF R19DTUQpOwo+PiAtCj4+ICsJbWVzb25fbmZjX2RyYWluX2NtZChuZmMpOwo+PiAgIAlyZXQgPSB3 YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29tcGxldGlvbiwKPj4gICAJCQkJCSAg bXNlY3NfdG9famlmZmllcyh0aW1lb3V0X21zKSk7Cj4+ICAgCWlmIChyZXQgPT0gMCkKPj4gICAJ CXJldCA9IC0xOwo+PiAgIAo+PiArCS8qIHJlc2V0IGNvbW1hbmQgZmlmbyB0byBhdm9pZCBsb2Nr ICovCj4+ICsJd3JpdGVsKE5GQ19DTURfRklGT19SRVNFVCwgbmZjLT5yZWdfYmFzZSArIE5GQ19S RUdfQ01EKTsKPj4gICAJcmV0dXJuIHJldDsKPj4gICB9Cj4+ICAgCj4+IEBAIC05ODgsOCArOTk1 LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGRfb29ibGF5b3V0X29wcyBtZXNvbl9vb2JsYXlv dXRfb3BzID0gewo+PiAgIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Nsa19pbml0KHN0cnVjdCBtZXNv bl9uZmMgKm5mYykKPj4gICB7Cj4+ICAgCWludCByZXQ7Cj4+ICsJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdCA9IHswfTsKPj4gKwljb25zdCBjaGFyICpmaXhfZGl2Ml9wbGxfbmFtZVsxXTsKPj4g ICAKPj4gLQkvKiByZXF1ZXN0IGNvcmUgY2xvY2sgKi8KPj4gICAJbmZjLT5jb3JlX2NsayA9IGRl dm1fY2xrX2dldChuZmMtPmRldiwgImNvcmUiKTsKPj4gICAJaWYgKElTX0VSUihuZmMtPmNvcmVf Y2xrKSkgewo+PiAgIAkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBnZXQgY29yZSBjbG9j a1xuIik7Cj4+IEBAIC0xMDAyLDIxICsxMDEwLDI1IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Ns a19pbml0KHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPj4gICAJCXJldHVybiBQVFJfRVJSKG5mYy0+ ZGV2aWNlX2Nsayk7Cj4+ICAgCX0KPj4gICAKPj4gLQluZmMtPnBoYXNlX3R4ID0gZGV2bV9jbGtf Z2V0KG5mYy0+ZGV2LCAidHgiKTsKPj4gLQlpZiAoSVNfRVJSKG5mYy0+cGhhc2VfdHgpKSB7Cj4+ IC0JCWRldl9lcnIobmZjLT5kZXYsICJmYWlsZWQgdG8gZ2V0IFRYIGNsa1xuIik7Cj4+IC0JCXJl dHVybiBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+PiAtCX0KPj4gLQo+PiAtCW5mYy0+cGhhc2Vf cnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+PiAtCWlmIChJU19FUlIobmZjLT5w aGFzZV9yeCkpIHsKPj4gLQkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBnZXQgUlggY2xr XG4iKTsKPj4gLQkJcmV0dXJuIFBUUl9FUlIobmZjLT5waGFzZV9yeCk7Cj4+IC0JfQo+PiArCWlu aXQubmFtZSA9IGRldm1fa3N0cmR1cChuZmMtPmRldiwgIm5mYyNkaXYiLCBHRlBfS0VSTkVMKTsK Pj4gKwlpbml0Lm9wcyA9ICZjbGtfZGl2aWRlcl9vcHM7Cj4+ICsJZml4X2RpdjJfcGxsX25hbWVb MF0gPSBfX2Nsa19nZXRfbmFtZShuZmMtPmRldmljZV9jbGspOwo+PiArCWluaXQucGFyZW50X25h bWVzID0gZml4X2RpdjJfcGxsX25hbWU7Cj4+ICsJaW5pdC5udW1fcGFyZW50cyA9IDE7Cj4+ICsJ bmZjLT5uYW5kX2RpdmlkZXIucmVnID0gbmZjLT5yZWdfY2xrOwo+PiArCW5mYy0+bmFuZF9kaXZp ZGVyLnNoaWZ0ID0gQ0xLX0RJVl9TSElGVDsKPj4gKwluZmMtPm5hbmRfZGl2aWRlci53aWR0aCA9 IENMS19ESVZfV0lEVEg7Cj4+ICsJbmZjLT5uYW5kX2RpdmlkZXIuaHcuaW5pdCA9ICZpbml0Owo+ PiArCW5mYy0+bmFuZF9kaXZpZGVyLmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VEIHwKPj4g KwkJCQkgIENMS19ESVZJREVSX1JPVU5EX0NMT1NFU1QgfAo+PiArICAgICAgICAgIAkJCSAgQ0xL X0RJVklERVJfQUxMT1dfWkVSTzsKPj4gKwo+PiArCW5mYy0+bmFuZF9jbGsgPSBkZXZtX2Nsa19y ZWdpc3RlcihuZmMtPmRldiwgJm5mYy0+bmFuZF9kaXZpZGVyLmh3KTsKPj4gKwlpZiAoSVNfRVJS KG5mYy0+bmFuZF9jbGspKQo+PiArCQlyZXR1cm4gUFRSX0VSUihuZmMtPm5hbmRfY2xrKTsKPj4g ICAKPj4gICAJLyogaW5pdCBTRF9FTU1DX0NMT0NLIHRvIHNhbmUgZGVmYXVsdHMgdy9taW4gY2xv Y2sgcmF0ZSAqLwo+PiAtCXJlZ21hcF91cGRhdGVfYml0cyhuZmMtPnJlZ19jbGssCj4+IC0JCQkg ICAwLCBDTEtfU0VMRUNUX05BTkQsIENMS19TRUxFQ1RfTkFORCk7Cj4+ICsJd3JpdGVsKENMS19T RUxFQ1RfTkFORCB8IHJlYWRsKG5mYy0+cmVnX2NsayksIG5mYy0+cmVnX2Nsayk7Cj4+ICAgCj4+ ICAgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPmNvcmVfY2xrKTsKPj4gICAJaWYgKHJl dCkgewo+PiBAQCAtMTAzMCwyOSArMTA0MiwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtf aW5pdChzdHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4+ICAgCQlnb3RvIGVycl9kZXZpY2VfY2xrOwo+ PiAgIAl9Cj4+ICAgCj4+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG5mYy0+cGhhc2VfdHgp Owo+PiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPm5hbmRfY2xrKTsKPj4gICAJaWYg KHJldCkgewo+PiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBUWCBjbG9j a1xuIik7Cj4+IC0JCWdvdG8gZXJyX3BoYXNlX3R4Owo+PiAtCX0KPj4gLQo+PiAtCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPj4gLQlpZiAocmV0KSB7Cj4+IC0JCWRl dl9lcnIobmZjLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIFJYIGNsb2NrXG4iKTsKPj4gLQkJZ290 byBlcnJfcGhhc2Vfcng7Cj4+ICsJCWRldl9lcnIobmZjLT5kZXYsICJwcmUgZW5hYmxlIE5GQyBk aXZpZGVyIGZhaWxcbiIpOwo+PiArCQlnb3RvIGVycl9uYW5kX2NsazsKPj4gICAJfQo+PiAgIAo+ PiAgIAlyZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5kZXZpY2VfY2xrLCAyNDAwMDAwMCk7Cj4+ICAg CWlmIChyZXQpCj4+IC0JCWdvdG8gZXJyX2Rpc2FibGVfcng7Cj4+ICsJCWdvdG8gZXJyX2Rpc2Fi bGVfY2xrOwo+PiAgIAo+PiAgIAlyZXR1cm4gMDsKPj4gICAKPj4gLWVycl9kaXNhYmxlX3J4Ogo+ PiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3J4KTsKPj4gLWVycl9waGFzZV9y eDoKPj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5waGFzZV90eCk7Cj4+IC1lcnJfcGhh c2VfdHg6Cj4+ICtlcnJfZGlzYWJsZV9jbGs6Cj4+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5m Yy0+bmFuZF9jbGspOwo+PiArZXJyX25hbmRfY2xrOgo+PiAgIAljbGtfZGlzYWJsZV91bnByZXBh cmUobmZjLT5kZXZpY2VfY2xrKTsKPj4gICBlcnJfZGV2aWNlX2NsazoKPj4gICAJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKG5mYy0+Y29yZV9jbGspOwo+PiBAQCAtMTA2MSw4ICsxMDY1LDcgQEAgc3Rh dGljIGludCBtZXNvbl9uZmNfY2xrX2luaXQoc3RydWN0IG1lc29uX25mYyAqbmZjKQo+PiAgIAo+ PiAgIHN0YXRpYyB2b2lkIG1lc29uX25mY19kaXNhYmxlX2NsayhzdHJ1Y3QgbWVzb25fbmZjICpu ZmMpCj4+ICAgewo+PiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3J4KTsKPj4g LQljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5waGFzZV90eCk7Cj4+ICsJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKG5mYy0+bmFuZF9jbGspOwo+PiAgIAljbGtfZGlzYWJsZV91bnByZXBhcmUobmZj LT5kZXZpY2VfY2xrKTsKPj4gICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+Y29yZV9jbGsp Owo+PiAgIH0KPj4gQEAgLTEzNzUsNiArMTM3OCw3IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICAgCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZwZGV2LT5kZXY7Cj4+ICAgCXN0cnVjdCBtZXNvbl9uZmMgKm5mYzsKPj4gICAJc3RydWN0 IHJlc291cmNlICpyZXM7Cj4+ICsJdTMyIGV4dF9jbGtfcmVnOwo+PiAgIAlpbnQgcmV0LCBpcnE7 Cj4+ICAgCj4+ICAgCW5mYyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbmZjKSwgR0ZQX0tF Uk5FTCk7Cj4+IEBAIC0xMzk2LDkgKzE0MDAsMTUgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4gICAJaWYgKElTX0VSUihuZmMtPnJl Z19iYXNlKSkKPj4gICAJCXJldHVybiBQVFJfRVJSKG5mYy0+cmVnX2Jhc2UpOwo+PiAgIAo+PiAt CW5mYy0+cmVnX2NsayA9Cj4+IC0JCXN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2 LT5vZl9ub2RlLAo+PiAtCQkJCQkJImFtbG9naWMsbW1jLXN5c2NvbiIpOwo+PiArCXJldCA9IG9m X3Byb3BlcnR5X3JlYWRfdTMyKHBkZXYtPmRldi5vZl9ub2RlLAo+PiArCQkJCSAgICJzZF9lbW1j X2NfY2xrYyIsCj4+ICsJCQkJICAgJmV4dF9jbGtfcmVnKTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBOQU5EIGV4dGVybmFsIGNsb2NrIHJlZ2lzdGVy XG4iKTsKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwl9Cj4+ICsKPj4gKwluZmMtPnJlZ19jbGsgPSBk ZXZtX2lvcmVtYXAoJnBkZXYtPmRldiwgZXh0X2Nsa19yZWcsIHNpemVvZihpbnQpKTsKPj4gICAJ aWYgKElTX0VSUihuZmMtPnJlZ19jbGspKSB7Cj4+ICAgCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBsb29rdXAgY2xvY2sgYmFzZVxuIik7Cj4+ICAgCQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19j bGspOwo+IAo+IAo+IFRoYW5rcywKPiBNaXF1w6hsCj4gCj4gLgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBtYWlsaW5nIGxpc3QK bGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo= 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 BC765C433F5 for ; Fri, 7 Jan 2022 02:42:31 +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=Tv9qpABDjMxAt6BXptqqCne9WPW3izbtAgQWltBbeNs=; b=qAd46EsbG4vhU7 +TFjI502DJ/uveUHC318J5VZpLTMysT06xKrj1w9GcIID6GuPgrojIUGT0CiOmgVzUWNFqyp0ErYJ joTQAqugZt3fNccGS+IzkfWqLfHw0PA/b7706f8soEC6k8wSBWkWn7P3TDk6vWrQtTi2D3y10ZIal LEDuVEMiiPrehAx5TXD+zmd02JTqLqqD1R25CNgFbijmCFBEmRN3dWelmTLfyg4wZg+DtwZrbXwxI upFLWrQxGdrH88m11m/zCVj02Imwju9VF7tHqgwioWSg+r7TtE6rhe07pN1IWti4aPAowL75b01Tb OHiqvhD1qutNLjT0uk6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5fBu-0021O0-1Q; Fri, 07 Jan 2022 02:41:18 +0000 Received: from mail-sz.amlogic.com ([211.162.65.117]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5fBH-0020yq-C9; Fri, 07 Jan 2022 02:40:41 +0000 Received: from [10.28.39.73] (10.28.39.73) by mail-sz.amlogic.com (10.28.11.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 7 Jan 2022 10:40:35 +0800 Message-ID: <9c7b1d77-cff1-b40c-6d02-f67ca8b9b683@amlogic.com> Date: Fri, 7 Jan 2022 10:40:35 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH] mtd: rawnand: meson: fix the clock after discarding sd_emmc_c_clkc Content-Language: en-US To: Miquel Raynal CC: , Richard Weinberger , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , References: <20220106032504.23310-1-liang.yang@amlogic.com> <20220106090832.42225c49@xps13> From: Liang Yang In-Reply-To: <20220106090832.42225c49@xps13> X-Originating-IP: [10.28.39.73] X-ClientProxiedBy: mail-sz.amlogic.com (10.28.11.5) To mail-sz.amlogic.com (10.28.11.5) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220106_184039_469998_33879215 X-CRM114-Status: GOOD ( 22.49 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWlxdWVsLAoKTWVzb24gTkZDIGNsb2NrIGRlcGVuZHMgb24gdGhlIGltcGxlbWVudGF0aW9u IG9mIHNkX2VtbWNfY19jbGtjLCBidXQgaSAKZG9uJ3QgZmluZCB0aGUgY29tbWl0IGluCmxpbnV4 IG1haW5saW5lLiB0aGVuIHRoZSBpbmZvcm1hdGlvbiBpIGdvdCBmcm9tIApbamlhbnhpbi5wYW5A YW1sb2dpYy5jb21dIGlzIHRoZSByZWplY3Rpb24gb2YKc2VyaWFsIHBhdGNoZXMuIEkganVzdCBs b29rIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZW1haWxzIGluIGxpbms6CiAKaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvYWxsLzg2Nzg5ZDczLTVhNmMtNzcyOS1lY2QxLWRjZDM0MmIyZmNkZUBhbWxv Z2ljLmNvbS8KaXQgc2VlbXMgdGhlIHBhdGNoIG5ldmVyIGdvIG9uIHNpbmNlIFY2LCBzbyBbamlh bnhpbi5wYW5AYW1sb2dpYy5jb21dLCAKY291bGQgeW91IGhlbHAgdG8gY2xlYXIgaXQ/CmxldCB1 cyBhZGRyZXNzIHRoZSBkaXNjdXNzaW9uIGluIGFub3RoZXIgZW1haWwgZnJvbSBbamJydW5ldEBi YXlsaWJyZS5jb21dLgoKT24gMjAyMi8xLzYgMTY6MDgsIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4g WyBFWFRFUk5BTCBFTUFJTCBdCj4gCj4gSGkgTGlhbmcsCj4gCj4gbGlhbmcueWFuZ0BhbWxvZ2lj LmNvbSB3cm90ZSBvbiBUaHUsIDYgSmFuIDIwMjIgMTE6MjU6MDQgKzA4MDA6Cj4gCj4+IEJlY2F1 c2UgRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNvbnRyb2wgY2xvY2sgcmVnaXN0ZXIsIHNv IHdlCj4+IGltcGxlbWVudCBhICdzZF9lbW1jX2NfY2xrYycuIFByZXZpb3VzbHkgRFRTIGlzIGRl ZmluZWQgYXMgYmVsb3c6Cj4+Cj4+IAlzZF9lbW1jX2NfY2xrYzogbW1jQDcwMDAgewo+PiAJCWNv bXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1heGctbW1jLWNsa2MiLCAic3lzY29uIjsKPj4gCQly ZWcgPSA8MHgwIDB4NzAwMCAweDAgMHg4MDA+Owo+PiAJfTsKPj4KPj4gCW5hbmQtY29udHJvbGxl ckA3ODAwIHsKPj4gCQkuLi4uLi4KPj4KPj4gCQljbG9ja3MgPSA8JmNsa2MgQ0xLSURfU0RfRU1N Q19DPiwKPj4gCQkJPCZzZF9lbW1jX2NfY2xrYyBDTEtJRF9NTUNfRElWPiwKPj4gCQkJPCZzZF9l bW1jX2NfY2xrYyBDTEtJRF9NTUNfUEhBU0VfUlg+LAo+PiAJCQk8JnNkX2VtbWNfY19jbGtjIENM S0lEX01NQ19QSEFTRV9UWD47Cj4+IAkJY2xvY2stbmFtZXMgPSAiY29yZSIsICJkZXZpY2UiLCAi cngiLCAidHgiOwo+PiAJCWFtbG9naWMsbW1jLXN5c2NvbiA9IDwmc2RfZW1tY19jX2Nsa2M+Owo+ Pgo+PiAJCS4uLi4uLgo+PiAJfQo+Pgo+PiBidXQgaW4gZmFjdCwgYWJvdmUgaW1wbGVtZW50YXRp b24gaXMgcmVqZWN0ZWQuIHNvIG5vdyByZWdpc3RlcmluZwo+PiBhIG5hbmRfZGl2aWRlci4KPiAK PiBXaGF0IGlzIHJlamVjdGVkPwo+IFdoeSBpcyBpdCByZWplY3RlZD8KPiBXaGF0IGlzIG5hbmRf ZGl2aWRlcj8KaSBzaW1wbGlmeSBvdXIgY2xvY2sgZnJhbWV3b3JrIGJlbG93LCBzbyBuYW5kIGRp dmlkZXIgaXMgClNEX0VNTUNfQ0xPQ0tbNTowXSBoZXJlLgoJCQkgICAtLS0tLSAgICAgICAgICAt LS0tLQkJICAgIC0tLS0tCgkgICB0aGUgb3RoZXItLS0tLS18CVwgICAgICAgIHwgICAgIHwJICAg fAkgfAogICAgICAgICAgCQkgIHwgbXV4CXwgLS0tLS0gIHwgIE4gIHwgLS0tLS0tLS0tLXwgTkZD L3wKCSAgIEZDTEtfRElWMi0tLS0tLXwgICAgIHwgICAgICAgIHwgICAgIHwJICAgfCBFTU1DfAoJ CQkgICAtLS0tLS8gICAgICAgICAtLS0tLSAJICAgIC0tLS0tCgkJICAgIFNEX0VNTUNfQ0xPQ0tb Nzo2XSBTRF9FTU1DX0NMT0NLWzU6MF0KPiAKPiAKPj4KPj4gQ2hhbmdlLUlkOiBJYmViNGM3ZmY4 ODZmNTg4NmFhYzRkNmM2NjRkN2JiZDFiMWJjYjk5Nwo+IAo+IENoYW5nZSBJZHMgYXJlIG5vdCBl eHBlY3RlZCBpbiB0aGUgdXBzdHJlYW0ga2VybmVsLgo+IAo+IEJ1dCBpZiB5b3UgZml4IHNvbWV0 aGluZyB5b3Ugc2hvdWxkIGhhdmUgYSBGaXhlczouCj4gCj4+IFNpZ25lZC1vZmYtYnk6IExpYW5n IFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dpYy5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvbXRkL25h bmQvcmF3L21lc29uX25hbmQuYyB8IDg4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0K Pj4gICAxIGZpbGUgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMgYi9kcml2 ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPj4gaW5kZXggYWMzYmU5Mjg3MmQwLi40NDcy MzYzMDU5YzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQu Ywo+PiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPj4gQEAgLTIsNyAr Miw3IEBACj4+ICAgLyoKPj4gICAgKiBBbWxvZ2ljIE1lc29uIE5hbmQgRmxhc2ggQ29udHJvbGxl ciBEcml2ZXIKPj4gICAgKgo+PiAtICogQ29weXJpZ2h0IChjKSAyMDE4IEFtbG9naWMsIGluYy4K Pj4gKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFtbG9naWMsIGluYy4KPj4gICAgKiBBdXRo b3I6IExpYW5nIFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dpYy5jb20+Cj4+ICAgICovCj4+ICAgCj4+ IEBAIC0xMCw2ICsxMCw3IEBACj4+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cj4+ ICAgI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9jbGsu aD4KPj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KPj4gICAjaW5jbHVkZSA8bGlu dXgvbXRkL3Jhd25hbmQuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgo+PiAgICNp bmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4+IEBAIC01NSw2ICs1Niw3IEBACj4+ICAgI2Rl ZmluZSBORkNfUkVHX1ZFUgkJMHgzOAo+PiAgIAo+PiAgICNkZWZpbmUgTkZDX1JCX0lSUV9FTgkJ QklUKDIxKQo+PiArI2RlZmluZSBORkNfQ01EX0ZJRk9fUkVTRVQJQklUKDMxKQo+PiAgIAo+PiAg ICNkZWZpbmUgQ01EUldHRU4oY21kX2RpciwgcmFuLCBiY2gsIHNob3J0X21vZGUsIHBhZ2Vfc2l6 ZSwgcGFnZXMpCVwKPj4gICAJKAkJCQkJCQkJXAo+PiBAQCAtMTA0LDYgKzEwNiw5IEBACj4+ICAg Cj4+ICAgI2RlZmluZSBQRVJfSU5GT19CWVRFCQk4Cj4+ICAgCj4+ICsjZGVmaW5lIENMS19ESVZf U0hJRlQJCTAKPj4gKyNkZWZpbmUgQ0xLX0RJVl9XSURUSAkJNgo+PiArCj4+ICAgc3RydWN0IG1l c29uX25mY19uYW5kX2NoaXAgewo+PiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+ICAgCXN0 cnVjdCBuYW5kX2NoaXAgbmFuZDsKPj4gQEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0cnVjdCBtZXNv bl9uZmMgewo+PiAgIAlzdHJ1Y3QgbmFuZF9jb250cm9sbGVyIGNvbnRyb2xsZXI7Cj4+ICAgCXN0 cnVjdCBjbGsgKmNvcmVfY2xrOwo+PiAgIAlzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+PiAtCXN0 cnVjdCBjbGsgKnBoYXNlX3R4Owo+PiAtCXN0cnVjdCBjbGsgKnBoYXNlX3J4Owo+PiArCXN0cnVj dCBjbGsgKm5hbmRfY2xrOwo+PiArCXN0cnVjdCBjbGtfZGl2aWRlciBuYW5kX2RpdmlkZXI7Cj4+ ICAgCj4+ICAgCXVuc2lnbmVkIGxvbmcgY2xrX3JhdGU7Cj4+ICAgCXUzMiBidXNfdGltaW5nOwo+ PiAgIAo+PiAgIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4+ICAgCXZvaWQgX19pb21lbSAqcmVnX2Jh c2U7Cj4+IC0Jc3RydWN0IHJlZ21hcCAqcmVnX2NsazsKPj4gKwl2b2lkIF9faW9tZW0gKnJlZ19j bGs7Cj4+ICAgCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247Cj4+ICAgCXN0cnVjdCBsaXN0 X2hlYWQgY2hpcHM7Cj4+ICAgCWNvbnN0IHN0cnVjdCBtZXNvbl9uZmNfZGF0YSAqZGF0YTsKPj4g QEAgLTQwNiwxMiArNDExLDE0IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVj dCBtZXNvbl9uZmMgKm5mYywgaW50IHRpbWVvdXRfbXMpCj4+ICAgCWNtZCA9IE5GQ19DTURfUkIg fCBORkNfQ01EX1JCX0lOVAo+PiAgIAkJfCBuZmMtPnBhcmFtLmNoaXBfc2VsZWN0IHwgbmZjLT50 aW1pbmcudGJlcnNfbWF4Owo+PiAgIAl3cml0ZWwoY21kLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JF R19DTUQpOwo+PiAtCj4+ICsJbWVzb25fbmZjX2RyYWluX2NtZChuZmMpOwo+PiAgIAlyZXQgPSB3 YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29tcGxldGlvbiwKPj4gICAJCQkJCSAg bXNlY3NfdG9famlmZmllcyh0aW1lb3V0X21zKSk7Cj4+ICAgCWlmIChyZXQgPT0gMCkKPj4gICAJ CXJldCA9IC0xOwo+PiAgIAo+PiArCS8qIHJlc2V0IGNvbW1hbmQgZmlmbyB0byBhdm9pZCBsb2Nr ICovCj4+ICsJd3JpdGVsKE5GQ19DTURfRklGT19SRVNFVCwgbmZjLT5yZWdfYmFzZSArIE5GQ19S RUdfQ01EKTsKPj4gICAJcmV0dXJuIHJldDsKPj4gICB9Cj4+ICAgCj4+IEBAIC05ODgsOCArOTk1 LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGRfb29ibGF5b3V0X29wcyBtZXNvbl9vb2JsYXlv dXRfb3BzID0gewo+PiAgIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Nsa19pbml0KHN0cnVjdCBtZXNv bl9uZmMgKm5mYykKPj4gICB7Cj4+ICAgCWludCByZXQ7Cj4+ICsJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdCA9IHswfTsKPj4gKwljb25zdCBjaGFyICpmaXhfZGl2Ml9wbGxfbmFtZVsxXTsKPj4g ICAKPj4gLQkvKiByZXF1ZXN0IGNvcmUgY2xvY2sgKi8KPj4gICAJbmZjLT5jb3JlX2NsayA9IGRl dm1fY2xrX2dldChuZmMtPmRldiwgImNvcmUiKTsKPj4gICAJaWYgKElTX0VSUihuZmMtPmNvcmVf Y2xrKSkgewo+PiAgIAkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBnZXQgY29yZSBjbG9j a1xuIik7Cj4+IEBAIC0xMDAyLDIxICsxMDEwLDI1IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Ns a19pbml0KHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPj4gICAJCXJldHVybiBQVFJfRVJSKG5mYy0+ ZGV2aWNlX2Nsayk7Cj4+ICAgCX0KPj4gICAKPj4gLQluZmMtPnBoYXNlX3R4ID0gZGV2bV9jbGtf Z2V0KG5mYy0+ZGV2LCAidHgiKTsKPj4gLQlpZiAoSVNfRVJSKG5mYy0+cGhhc2VfdHgpKSB7Cj4+ IC0JCWRldl9lcnIobmZjLT5kZXYsICJmYWlsZWQgdG8gZ2V0IFRYIGNsa1xuIik7Cj4+IC0JCXJl dHVybiBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+PiAtCX0KPj4gLQo+PiAtCW5mYy0+cGhhc2Vf cnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+PiAtCWlmIChJU19FUlIobmZjLT5w aGFzZV9yeCkpIHsKPj4gLQkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBnZXQgUlggY2xr XG4iKTsKPj4gLQkJcmV0dXJuIFBUUl9FUlIobmZjLT5waGFzZV9yeCk7Cj4+IC0JfQo+PiArCWlu aXQubmFtZSA9IGRldm1fa3N0cmR1cChuZmMtPmRldiwgIm5mYyNkaXYiLCBHRlBfS0VSTkVMKTsK Pj4gKwlpbml0Lm9wcyA9ICZjbGtfZGl2aWRlcl9vcHM7Cj4+ICsJZml4X2RpdjJfcGxsX25hbWVb MF0gPSBfX2Nsa19nZXRfbmFtZShuZmMtPmRldmljZV9jbGspOwo+PiArCWluaXQucGFyZW50X25h bWVzID0gZml4X2RpdjJfcGxsX25hbWU7Cj4+ICsJaW5pdC5udW1fcGFyZW50cyA9IDE7Cj4+ICsJ bmZjLT5uYW5kX2RpdmlkZXIucmVnID0gbmZjLT5yZWdfY2xrOwo+PiArCW5mYy0+bmFuZF9kaXZp ZGVyLnNoaWZ0ID0gQ0xLX0RJVl9TSElGVDsKPj4gKwluZmMtPm5hbmRfZGl2aWRlci53aWR0aCA9 IENMS19ESVZfV0lEVEg7Cj4+ICsJbmZjLT5uYW5kX2RpdmlkZXIuaHcuaW5pdCA9ICZpbml0Owo+ PiArCW5mYy0+bmFuZF9kaXZpZGVyLmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VEIHwKPj4g KwkJCQkgIENMS19ESVZJREVSX1JPVU5EX0NMT1NFU1QgfAo+PiArICAgICAgICAgIAkJCSAgQ0xL X0RJVklERVJfQUxMT1dfWkVSTzsKPj4gKwo+PiArCW5mYy0+bmFuZF9jbGsgPSBkZXZtX2Nsa19y ZWdpc3RlcihuZmMtPmRldiwgJm5mYy0+bmFuZF9kaXZpZGVyLmh3KTsKPj4gKwlpZiAoSVNfRVJS KG5mYy0+bmFuZF9jbGspKQo+PiArCQlyZXR1cm4gUFRSX0VSUihuZmMtPm5hbmRfY2xrKTsKPj4g ICAKPj4gICAJLyogaW5pdCBTRF9FTU1DX0NMT0NLIHRvIHNhbmUgZGVmYXVsdHMgdy9taW4gY2xv Y2sgcmF0ZSAqLwo+PiAtCXJlZ21hcF91cGRhdGVfYml0cyhuZmMtPnJlZ19jbGssCj4+IC0JCQkg ICAwLCBDTEtfU0VMRUNUX05BTkQsIENMS19TRUxFQ1RfTkFORCk7Cj4+ICsJd3JpdGVsKENMS19T RUxFQ1RfTkFORCB8IHJlYWRsKG5mYy0+cmVnX2NsayksIG5mYy0+cmVnX2Nsayk7Cj4+ICAgCj4+ ICAgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPmNvcmVfY2xrKTsKPj4gICAJaWYgKHJl dCkgewo+PiBAQCAtMTAzMCwyOSArMTA0MiwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtf aW5pdChzdHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4+ICAgCQlnb3RvIGVycl9kZXZpY2VfY2xrOwo+ PiAgIAl9Cj4+ICAgCj4+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG5mYy0+cGhhc2VfdHgp Owo+PiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPm5hbmRfY2xrKTsKPj4gICAJaWYg KHJldCkgewo+PiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBUWCBjbG9j a1xuIik7Cj4+IC0JCWdvdG8gZXJyX3BoYXNlX3R4Owo+PiAtCX0KPj4gLQo+PiAtCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPj4gLQlpZiAocmV0KSB7Cj4+IC0JCWRl dl9lcnIobmZjLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIFJYIGNsb2NrXG4iKTsKPj4gLQkJZ290 byBlcnJfcGhhc2Vfcng7Cj4+ICsJCWRldl9lcnIobmZjLT5kZXYsICJwcmUgZW5hYmxlIE5GQyBk aXZpZGVyIGZhaWxcbiIpOwo+PiArCQlnb3RvIGVycl9uYW5kX2NsazsKPj4gICAJfQo+PiAgIAo+ PiAgIAlyZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5kZXZpY2VfY2xrLCAyNDAwMDAwMCk7Cj4+ICAg CWlmIChyZXQpCj4+IC0JCWdvdG8gZXJyX2Rpc2FibGVfcng7Cj4+ICsJCWdvdG8gZXJyX2Rpc2Fi bGVfY2xrOwo+PiAgIAo+PiAgIAlyZXR1cm4gMDsKPj4gICAKPj4gLWVycl9kaXNhYmxlX3J4Ogo+ PiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3J4KTsKPj4gLWVycl9waGFzZV9y eDoKPj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5waGFzZV90eCk7Cj4+IC1lcnJfcGhh c2VfdHg6Cj4+ICtlcnJfZGlzYWJsZV9jbGs6Cj4+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5m Yy0+bmFuZF9jbGspOwo+PiArZXJyX25hbmRfY2xrOgo+PiAgIAljbGtfZGlzYWJsZV91bnByZXBh cmUobmZjLT5kZXZpY2VfY2xrKTsKPj4gICBlcnJfZGV2aWNlX2NsazoKPj4gICAJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKG5mYy0+Y29yZV9jbGspOwo+PiBAQCAtMTA2MSw4ICsxMDY1LDcgQEAgc3Rh dGljIGludCBtZXNvbl9uZmNfY2xrX2luaXQoc3RydWN0IG1lc29uX25mYyAqbmZjKQo+PiAgIAo+ PiAgIHN0YXRpYyB2b2lkIG1lc29uX25mY19kaXNhYmxlX2NsayhzdHJ1Y3QgbWVzb25fbmZjICpu ZmMpCj4+ICAgewo+PiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3J4KTsKPj4g LQljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5waGFzZV90eCk7Cj4+ICsJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKG5mYy0+bmFuZF9jbGspOwo+PiAgIAljbGtfZGlzYWJsZV91bnByZXBhcmUobmZj LT5kZXZpY2VfY2xrKTsKPj4gICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+Y29yZV9jbGsp Owo+PiAgIH0KPj4gQEAgLTEzNzUsNiArMTM3OCw3IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICAgCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZwZGV2LT5kZXY7Cj4+ICAgCXN0cnVjdCBtZXNvbl9uZmMgKm5mYzsKPj4gICAJc3RydWN0 IHJlc291cmNlICpyZXM7Cj4+ICsJdTMyIGV4dF9jbGtfcmVnOwo+PiAgIAlpbnQgcmV0LCBpcnE7 Cj4+ICAgCj4+ICAgCW5mYyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbmZjKSwgR0ZQX0tF Uk5FTCk7Cj4+IEBAIC0xMzk2LDkgKzE0MDAsMTUgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4gICAJaWYgKElTX0VSUihuZmMtPnJl Z19iYXNlKSkKPj4gICAJCXJldHVybiBQVFJfRVJSKG5mYy0+cmVnX2Jhc2UpOwo+PiAgIAo+PiAt CW5mYy0+cmVnX2NsayA9Cj4+IC0JCXN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2 LT5vZl9ub2RlLAo+PiAtCQkJCQkJImFtbG9naWMsbW1jLXN5c2NvbiIpOwo+PiArCXJldCA9IG9m X3Byb3BlcnR5X3JlYWRfdTMyKHBkZXYtPmRldi5vZl9ub2RlLAo+PiArCQkJCSAgICJzZF9lbW1j X2NfY2xrYyIsCj4+ICsJCQkJICAgJmV4dF9jbGtfcmVnKTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBOQU5EIGV4dGVybmFsIGNsb2NrIHJlZ2lzdGVy XG4iKTsKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwl9Cj4+ICsKPj4gKwluZmMtPnJlZ19jbGsgPSBk ZXZtX2lvcmVtYXAoJnBkZXYtPmRldiwgZXh0X2Nsa19yZWcsIHNpemVvZihpbnQpKTsKPj4gICAJ aWYgKElTX0VSUihuZmMtPnJlZ19jbGspKSB7Cj4+ICAgCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBsb29rdXAgY2xvY2sgYmFzZVxuIik7Cj4+ICAgCQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19j bGspOwo+IAo+IAo+IFRoYW5rcywKPiBNaXF1w6hsCj4gCj4gLgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 E9AADC433F5 for ; Fri, 7 Jan 2022 02:42:38 +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=s0Eeb89MhVc42dkf2YfcSVFP+ruJ/u40QxlyWK+ya/0=; b=dumYNVHgzKlinp TB0+LicP9NKwKVLFdQcLfaJvLnxXDcgjd2dBp0E6su6JQ/C0WtNKKy16D1xsAvJ4KF3/GfjjSRTS1 PPkbk5svx4P8/rmOxKilf5TTAFG4/6wOEhtHhKrMyqxvpTZ/2ju6zZ4/7aeIdNh31yyS5SfiO9XTb eTqaGByhVETfkd53mYdz416MAJzMViCu+eJvVaaHcGJC9l1iwhib3Q4gsm5F4IDxve0rMNK+lKLUG pwhffMjc8Xqp4/zdykMwS+8JF2bmFgGtOQBVD1RKWq6vCdltfJa+ylfTApr3D3+0g1+hqeLFr4gwa 6c4Y3yDpmkX7Bd55i0cg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5fCB-0021a3-Tx; Fri, 07 Jan 2022 02:41:36 +0000 Received: from mail-sz.amlogic.com ([211.162.65.117]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n5fBH-0020yq-C9; Fri, 07 Jan 2022 02:40:41 +0000 Received: from [10.28.39.73] (10.28.39.73) by mail-sz.amlogic.com (10.28.11.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 7 Jan 2022 10:40:35 +0800 Message-ID: <9c7b1d77-cff1-b40c-6d02-f67ca8b9b683@amlogic.com> Date: Fri, 7 Jan 2022 10:40:35 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH] mtd: rawnand: meson: fix the clock after discarding sd_emmc_c_clkc Content-Language: en-US To: Miquel Raynal CC: , Richard Weinberger , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , References: <20220106032504.23310-1-liang.yang@amlogic.com> <20220106090832.42225c49@xps13> From: Liang Yang In-Reply-To: <20220106090832.42225c49@xps13> X-Originating-IP: [10.28.39.73] X-ClientProxiedBy: mail-sz.amlogic.com (10.28.11.5) To mail-sz.amlogic.com (10.28.11.5) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220106_184039_469998_33879215 X-CRM114-Status: GOOD ( 22.49 ) 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 SGkgTWlxdWVsLAoKTWVzb24gTkZDIGNsb2NrIGRlcGVuZHMgb24gdGhlIGltcGxlbWVudGF0aW9u IG9mIHNkX2VtbWNfY19jbGtjLCBidXQgaSAKZG9uJ3QgZmluZCB0aGUgY29tbWl0IGluCmxpbnV4 IG1haW5saW5lLiB0aGVuIHRoZSBpbmZvcm1hdGlvbiBpIGdvdCBmcm9tIApbamlhbnhpbi5wYW5A YW1sb2dpYy5jb21dIGlzIHRoZSByZWplY3Rpb24gb2YKc2VyaWFsIHBhdGNoZXMuIEkganVzdCBs b29rIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgZW1haWxzIGluIGxpbms6CiAKaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvYWxsLzg2Nzg5ZDczLTVhNmMtNzcyOS1lY2QxLWRjZDM0MmIyZmNkZUBhbWxv Z2ljLmNvbS8KaXQgc2VlbXMgdGhlIHBhdGNoIG5ldmVyIGdvIG9uIHNpbmNlIFY2LCBzbyBbamlh bnhpbi5wYW5AYW1sb2dpYy5jb21dLCAKY291bGQgeW91IGhlbHAgdG8gY2xlYXIgaXQ/CmxldCB1 cyBhZGRyZXNzIHRoZSBkaXNjdXNzaW9uIGluIGFub3RoZXIgZW1haWwgZnJvbSBbamJydW5ldEBi YXlsaWJyZS5jb21dLgoKT24gMjAyMi8xLzYgMTY6MDgsIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4g WyBFWFRFUk5BTCBFTUFJTCBdCj4gCj4gSGkgTGlhbmcsCj4gCj4gbGlhbmcueWFuZ0BhbWxvZ2lj LmNvbSB3cm90ZSBvbiBUaHUsIDYgSmFuIDIwMjIgMTE6MjU6MDQgKzA4MDA6Cj4gCj4+IEJlY2F1 c2UgRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNvbnRyb2wgY2xvY2sgcmVnaXN0ZXIsIHNv IHdlCj4+IGltcGxlbWVudCBhICdzZF9lbW1jX2NfY2xrYycuIFByZXZpb3VzbHkgRFRTIGlzIGRl ZmluZWQgYXMgYmVsb3c6Cj4+Cj4+IAlzZF9lbW1jX2NfY2xrYzogbW1jQDcwMDAgewo+PiAJCWNv bXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1heGctbW1jLWNsa2MiLCAic3lzY29uIjsKPj4gCQly ZWcgPSA8MHgwIDB4NzAwMCAweDAgMHg4MDA+Owo+PiAJfTsKPj4KPj4gCW5hbmQtY29udHJvbGxl ckA3ODAwIHsKPj4gCQkuLi4uLi4KPj4KPj4gCQljbG9ja3MgPSA8JmNsa2MgQ0xLSURfU0RfRU1N Q19DPiwKPj4gCQkJPCZzZF9lbW1jX2NfY2xrYyBDTEtJRF9NTUNfRElWPiwKPj4gCQkJPCZzZF9l bW1jX2NfY2xrYyBDTEtJRF9NTUNfUEhBU0VfUlg+LAo+PiAJCQk8JnNkX2VtbWNfY19jbGtjIENM S0lEX01NQ19QSEFTRV9UWD47Cj4+IAkJY2xvY2stbmFtZXMgPSAiY29yZSIsICJkZXZpY2UiLCAi cngiLCAidHgiOwo+PiAJCWFtbG9naWMsbW1jLXN5c2NvbiA9IDwmc2RfZW1tY19jX2Nsa2M+Owo+ Pgo+PiAJCS4uLi4uLgo+PiAJfQo+Pgo+PiBidXQgaW4gZmFjdCwgYWJvdmUgaW1wbGVtZW50YXRp b24gaXMgcmVqZWN0ZWQuIHNvIG5vdyByZWdpc3RlcmluZwo+PiBhIG5hbmRfZGl2aWRlci4KPiAK PiBXaGF0IGlzIHJlamVjdGVkPwo+IFdoeSBpcyBpdCByZWplY3RlZD8KPiBXaGF0IGlzIG5hbmRf ZGl2aWRlcj8KaSBzaW1wbGlmeSBvdXIgY2xvY2sgZnJhbWV3b3JrIGJlbG93LCBzbyBuYW5kIGRp dmlkZXIgaXMgClNEX0VNTUNfQ0xPQ0tbNTowXSBoZXJlLgoJCQkgICAtLS0tLSAgICAgICAgICAt LS0tLQkJICAgIC0tLS0tCgkgICB0aGUgb3RoZXItLS0tLS18CVwgICAgICAgIHwgICAgIHwJICAg fAkgfAogICAgICAgICAgCQkgIHwgbXV4CXwgLS0tLS0gIHwgIE4gIHwgLS0tLS0tLS0tLXwgTkZD L3wKCSAgIEZDTEtfRElWMi0tLS0tLXwgICAgIHwgICAgICAgIHwgICAgIHwJICAgfCBFTU1DfAoJ CQkgICAtLS0tLS8gICAgICAgICAtLS0tLSAJICAgIC0tLS0tCgkJICAgIFNEX0VNTUNfQ0xPQ0tb Nzo2XSBTRF9FTU1DX0NMT0NLWzU6MF0KPiAKPiAKPj4KPj4gQ2hhbmdlLUlkOiBJYmViNGM3ZmY4 ODZmNTg4NmFhYzRkNmM2NjRkN2JiZDFiMWJjYjk5Nwo+IAo+IENoYW5nZSBJZHMgYXJlIG5vdCBl eHBlY3RlZCBpbiB0aGUgdXBzdHJlYW0ga2VybmVsLgo+IAo+IEJ1dCBpZiB5b3UgZml4IHNvbWV0 aGluZyB5b3Ugc2hvdWxkIGhhdmUgYSBGaXhlczouCj4gCj4+IFNpZ25lZC1vZmYtYnk6IExpYW5n IFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dpYy5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvbXRkL25h bmQvcmF3L21lc29uX25hbmQuYyB8IDg4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0K Pj4gICAxIGZpbGUgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMgYi9kcml2 ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPj4gaW5kZXggYWMzYmU5Mjg3MmQwLi40NDcy MzYzMDU5YzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQu Ywo+PiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPj4gQEAgLTIsNyAr Miw3IEBACj4+ICAgLyoKPj4gICAgKiBBbWxvZ2ljIE1lc29uIE5hbmQgRmxhc2ggQ29udHJvbGxl ciBEcml2ZXIKPj4gICAgKgo+PiAtICogQ29weXJpZ2h0IChjKSAyMDE4IEFtbG9naWMsIGluYy4K Pj4gKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFtbG9naWMsIGluYy4KPj4gICAgKiBBdXRo b3I6IExpYW5nIFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dpYy5jb20+Cj4+ICAgICovCj4+ICAgCj4+ IEBAIC0xMCw2ICsxMCw3IEBACj4+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cj4+ ICAgI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9jbGsu aD4KPj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KPj4gICAjaW5jbHVkZSA8bGlu dXgvbXRkL3Jhd25hbmQuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgo+PiAgICNp bmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4+IEBAIC01NSw2ICs1Niw3IEBACj4+ICAgI2Rl ZmluZSBORkNfUkVHX1ZFUgkJMHgzOAo+PiAgIAo+PiAgICNkZWZpbmUgTkZDX1JCX0lSUV9FTgkJ QklUKDIxKQo+PiArI2RlZmluZSBORkNfQ01EX0ZJRk9fUkVTRVQJQklUKDMxKQo+PiAgIAo+PiAg ICNkZWZpbmUgQ01EUldHRU4oY21kX2RpciwgcmFuLCBiY2gsIHNob3J0X21vZGUsIHBhZ2Vfc2l6 ZSwgcGFnZXMpCVwKPj4gICAJKAkJCQkJCQkJXAo+PiBAQCAtMTA0LDYgKzEwNiw5IEBACj4+ICAg Cj4+ICAgI2RlZmluZSBQRVJfSU5GT19CWVRFCQk4Cj4+ICAgCj4+ICsjZGVmaW5lIENMS19ESVZf U0hJRlQJCTAKPj4gKyNkZWZpbmUgQ0xLX0RJVl9XSURUSAkJNgo+PiArCj4+ICAgc3RydWN0IG1l c29uX25mY19uYW5kX2NoaXAgewo+PiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+ICAgCXN0 cnVjdCBuYW5kX2NoaXAgbmFuZDsKPj4gQEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0cnVjdCBtZXNv bl9uZmMgewo+PiAgIAlzdHJ1Y3QgbmFuZF9jb250cm9sbGVyIGNvbnRyb2xsZXI7Cj4+ICAgCXN0 cnVjdCBjbGsgKmNvcmVfY2xrOwo+PiAgIAlzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+PiAtCXN0 cnVjdCBjbGsgKnBoYXNlX3R4Owo+PiAtCXN0cnVjdCBjbGsgKnBoYXNlX3J4Owo+PiArCXN0cnVj dCBjbGsgKm5hbmRfY2xrOwo+PiArCXN0cnVjdCBjbGtfZGl2aWRlciBuYW5kX2RpdmlkZXI7Cj4+ ICAgCj4+ICAgCXVuc2lnbmVkIGxvbmcgY2xrX3JhdGU7Cj4+ICAgCXUzMiBidXNfdGltaW5nOwo+ PiAgIAo+PiAgIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4+ICAgCXZvaWQgX19pb21lbSAqcmVnX2Jh c2U7Cj4+IC0Jc3RydWN0IHJlZ21hcCAqcmVnX2NsazsKPj4gKwl2b2lkIF9faW9tZW0gKnJlZ19j bGs7Cj4+ICAgCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247Cj4+ICAgCXN0cnVjdCBsaXN0 X2hlYWQgY2hpcHM7Cj4+ICAgCWNvbnN0IHN0cnVjdCBtZXNvbl9uZmNfZGF0YSAqZGF0YTsKPj4g QEAgLTQwNiwxMiArNDExLDE0IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVj dCBtZXNvbl9uZmMgKm5mYywgaW50IHRpbWVvdXRfbXMpCj4+ICAgCWNtZCA9IE5GQ19DTURfUkIg fCBORkNfQ01EX1JCX0lOVAo+PiAgIAkJfCBuZmMtPnBhcmFtLmNoaXBfc2VsZWN0IHwgbmZjLT50 aW1pbmcudGJlcnNfbWF4Owo+PiAgIAl3cml0ZWwoY21kLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JF R19DTUQpOwo+PiAtCj4+ICsJbWVzb25fbmZjX2RyYWluX2NtZChuZmMpOwo+PiAgIAlyZXQgPSB3 YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29tcGxldGlvbiwKPj4gICAJCQkJCSAg bXNlY3NfdG9famlmZmllcyh0aW1lb3V0X21zKSk7Cj4+ICAgCWlmIChyZXQgPT0gMCkKPj4gICAJ CXJldCA9IC0xOwo+PiAgIAo+PiArCS8qIHJlc2V0IGNvbW1hbmQgZmlmbyB0byBhdm9pZCBsb2Nr ICovCj4+ICsJd3JpdGVsKE5GQ19DTURfRklGT19SRVNFVCwgbmZjLT5yZWdfYmFzZSArIE5GQ19S RUdfQ01EKTsKPj4gICAJcmV0dXJuIHJldDsKPj4gICB9Cj4+ICAgCj4+IEBAIC05ODgsOCArOTk1 LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGRfb29ibGF5b3V0X29wcyBtZXNvbl9vb2JsYXlv dXRfb3BzID0gewo+PiAgIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Nsa19pbml0KHN0cnVjdCBtZXNv bl9uZmMgKm5mYykKPj4gICB7Cj4+ICAgCWludCByZXQ7Cj4+ICsJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdCA9IHswfTsKPj4gKwljb25zdCBjaGFyICpmaXhfZGl2Ml9wbGxfbmFtZVsxXTsKPj4g ICAKPj4gLQkvKiByZXF1ZXN0IGNvcmUgY2xvY2sgKi8KPj4gICAJbmZjLT5jb3JlX2NsayA9IGRl dm1fY2xrX2dldChuZmMtPmRldiwgImNvcmUiKTsKPj4gICAJaWYgKElTX0VSUihuZmMtPmNvcmVf Y2xrKSkgewo+PiAgIAkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBnZXQgY29yZSBjbG9j a1xuIik7Cj4+IEBAIC0xMDAyLDIxICsxMDEwLDI1IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX2Ns a19pbml0KHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPj4gICAJCXJldHVybiBQVFJfRVJSKG5mYy0+ ZGV2aWNlX2Nsayk7Cj4+ICAgCX0KPj4gICAKPj4gLQluZmMtPnBoYXNlX3R4ID0gZGV2bV9jbGtf Z2V0KG5mYy0+ZGV2LCAidHgiKTsKPj4gLQlpZiAoSVNfRVJSKG5mYy0+cGhhc2VfdHgpKSB7Cj4+ IC0JCWRldl9lcnIobmZjLT5kZXYsICJmYWlsZWQgdG8gZ2V0IFRYIGNsa1xuIik7Cj4+IC0JCXJl dHVybiBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+PiAtCX0KPj4gLQo+PiAtCW5mYy0+cGhhc2Vf cnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+PiAtCWlmIChJU19FUlIobmZjLT5w aGFzZV9yeCkpIHsKPj4gLQkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBnZXQgUlggY2xr XG4iKTsKPj4gLQkJcmV0dXJuIFBUUl9FUlIobmZjLT5waGFzZV9yeCk7Cj4+IC0JfQo+PiArCWlu aXQubmFtZSA9IGRldm1fa3N0cmR1cChuZmMtPmRldiwgIm5mYyNkaXYiLCBHRlBfS0VSTkVMKTsK Pj4gKwlpbml0Lm9wcyA9ICZjbGtfZGl2aWRlcl9vcHM7Cj4+ICsJZml4X2RpdjJfcGxsX25hbWVb MF0gPSBfX2Nsa19nZXRfbmFtZShuZmMtPmRldmljZV9jbGspOwo+PiArCWluaXQucGFyZW50X25h bWVzID0gZml4X2RpdjJfcGxsX25hbWU7Cj4+ICsJaW5pdC5udW1fcGFyZW50cyA9IDE7Cj4+ICsJ bmZjLT5uYW5kX2RpdmlkZXIucmVnID0gbmZjLT5yZWdfY2xrOwo+PiArCW5mYy0+bmFuZF9kaXZp ZGVyLnNoaWZ0ID0gQ0xLX0RJVl9TSElGVDsKPj4gKwluZmMtPm5hbmRfZGl2aWRlci53aWR0aCA9 IENMS19ESVZfV0lEVEg7Cj4+ICsJbmZjLT5uYW5kX2RpdmlkZXIuaHcuaW5pdCA9ICZpbml0Owo+ PiArCW5mYy0+bmFuZF9kaXZpZGVyLmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VEIHwKPj4g KwkJCQkgIENMS19ESVZJREVSX1JPVU5EX0NMT1NFU1QgfAo+PiArICAgICAgICAgIAkJCSAgQ0xL X0RJVklERVJfQUxMT1dfWkVSTzsKPj4gKwo+PiArCW5mYy0+bmFuZF9jbGsgPSBkZXZtX2Nsa19y ZWdpc3RlcihuZmMtPmRldiwgJm5mYy0+bmFuZF9kaXZpZGVyLmh3KTsKPj4gKwlpZiAoSVNfRVJS KG5mYy0+bmFuZF9jbGspKQo+PiArCQlyZXR1cm4gUFRSX0VSUihuZmMtPm5hbmRfY2xrKTsKPj4g ICAKPj4gICAJLyogaW5pdCBTRF9FTU1DX0NMT0NLIHRvIHNhbmUgZGVmYXVsdHMgdy9taW4gY2xv Y2sgcmF0ZSAqLwo+PiAtCXJlZ21hcF91cGRhdGVfYml0cyhuZmMtPnJlZ19jbGssCj4+IC0JCQkg ICAwLCBDTEtfU0VMRUNUX05BTkQsIENMS19TRUxFQ1RfTkFORCk7Cj4+ICsJd3JpdGVsKENMS19T RUxFQ1RfTkFORCB8IHJlYWRsKG5mYy0+cmVnX2NsayksIG5mYy0+cmVnX2Nsayk7Cj4+ICAgCj4+ ICAgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPmNvcmVfY2xrKTsKPj4gICAJaWYgKHJl dCkgewo+PiBAQCAtMTAzMCwyOSArMTA0MiwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtf aW5pdChzdHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4+ICAgCQlnb3RvIGVycl9kZXZpY2VfY2xrOwo+ PiAgIAl9Cj4+ICAgCj4+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG5mYy0+cGhhc2VfdHgp Owo+PiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPm5hbmRfY2xrKTsKPj4gICAJaWYg KHJldCkgewo+PiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBUWCBjbG9j a1xuIik7Cj4+IC0JCWdvdG8gZXJyX3BoYXNlX3R4Owo+PiAtCX0KPj4gLQo+PiAtCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPj4gLQlpZiAocmV0KSB7Cj4+IC0JCWRl dl9lcnIobmZjLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIFJYIGNsb2NrXG4iKTsKPj4gLQkJZ290 byBlcnJfcGhhc2Vfcng7Cj4+ICsJCWRldl9lcnIobmZjLT5kZXYsICJwcmUgZW5hYmxlIE5GQyBk aXZpZGVyIGZhaWxcbiIpOwo+PiArCQlnb3RvIGVycl9uYW5kX2NsazsKPj4gICAJfQo+PiAgIAo+ PiAgIAlyZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5kZXZpY2VfY2xrLCAyNDAwMDAwMCk7Cj4+ICAg CWlmIChyZXQpCj4+IC0JCWdvdG8gZXJyX2Rpc2FibGVfcng7Cj4+ICsJCWdvdG8gZXJyX2Rpc2Fi bGVfY2xrOwo+PiAgIAo+PiAgIAlyZXR1cm4gMDsKPj4gICAKPj4gLWVycl9kaXNhYmxlX3J4Ogo+ PiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3J4KTsKPj4gLWVycl9waGFzZV9y eDoKPj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5waGFzZV90eCk7Cj4+IC1lcnJfcGhh c2VfdHg6Cj4+ICtlcnJfZGlzYWJsZV9jbGs6Cj4+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5m Yy0+bmFuZF9jbGspOwo+PiArZXJyX25hbmRfY2xrOgo+PiAgIAljbGtfZGlzYWJsZV91bnByZXBh cmUobmZjLT5kZXZpY2VfY2xrKTsKPj4gICBlcnJfZGV2aWNlX2NsazoKPj4gICAJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKG5mYy0+Y29yZV9jbGspOwo+PiBAQCAtMTA2MSw4ICsxMDY1LDcgQEAgc3Rh dGljIGludCBtZXNvbl9uZmNfY2xrX2luaXQoc3RydWN0IG1lc29uX25mYyAqbmZjKQo+PiAgIAo+ PiAgIHN0YXRpYyB2b2lkIG1lc29uX25mY19kaXNhYmxlX2NsayhzdHJ1Y3QgbWVzb25fbmZjICpu ZmMpCj4+ICAgewo+PiAtCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3J4KTsKPj4g LQljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5waGFzZV90eCk7Cj4+ICsJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKG5mYy0+bmFuZF9jbGspOwo+PiAgIAljbGtfZGlzYWJsZV91bnByZXBhcmUobmZj LT5kZXZpY2VfY2xrKTsKPj4gICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+Y29yZV9jbGsp Owo+PiAgIH0KPj4gQEAgLTEzNzUsNiArMTM3OCw3IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICAgCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZwZGV2LT5kZXY7Cj4+ICAgCXN0cnVjdCBtZXNvbl9uZmMgKm5mYzsKPj4gICAJc3RydWN0 IHJlc291cmNlICpyZXM7Cj4+ICsJdTMyIGV4dF9jbGtfcmVnOwo+PiAgIAlpbnQgcmV0LCBpcnE7 Cj4+ICAgCj4+ICAgCW5mYyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbmZjKSwgR0ZQX0tF Uk5FTCk7Cj4+IEBAIC0xMzk2LDkgKzE0MDAsMTUgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4gICAJaWYgKElTX0VSUihuZmMtPnJl Z19iYXNlKSkKPj4gICAJCXJldHVybiBQVFJfRVJSKG5mYy0+cmVnX2Jhc2UpOwo+PiAgIAo+PiAt CW5mYy0+cmVnX2NsayA9Cj4+IC0JCXN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2 LT5vZl9ub2RlLAo+PiAtCQkJCQkJImFtbG9naWMsbW1jLXN5c2NvbiIpOwo+PiArCXJldCA9IG9m X3Byb3BlcnR5X3JlYWRfdTMyKHBkZXYtPmRldi5vZl9ub2RlLAo+PiArCQkJCSAgICJzZF9lbW1j X2NfY2xrYyIsCj4+ICsJCQkJICAgJmV4dF9jbGtfcmVnKTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBOQU5EIGV4dGVybmFsIGNsb2NrIHJlZ2lzdGVy XG4iKTsKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwl9Cj4+ICsKPj4gKwluZmMtPnJlZ19jbGsgPSBk ZXZtX2lvcmVtYXAoJnBkZXYtPmRldiwgZXh0X2Nsa19yZWcsIHNpemVvZihpbnQpKTsKPj4gICAJ aWYgKElTX0VSUihuZmMtPnJlZ19jbGspKSB7Cj4+ICAgCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBsb29rdXAgY2xvY2sgYmFzZVxuIik7Cj4+ICAgCQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19j bGspOwo+IAo+IAo+IFRoYW5rcywKPiBNaXF1w6hsCj4gCj4gLgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9u IG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LW10ZC8K