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 40EF3C433EF for ; Mon, 4 Apr 2022 08:31:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239030AbiDDIdB (ORCPT ); Mon, 4 Apr 2022 04:33:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238183AbiDDIci (ORCPT ); Mon, 4 Apr 2022 04:32:38 -0400 Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1D1F3584C; Mon, 4 Apr 2022 01:30:40 -0700 (PDT) Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id A5B9D2000D; Mon, 4 Apr 2022 08:30:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1649061038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c0zr7u2ZGW8b7dHqUeFZDVs8y9pfDOaTguMgL52CwSQ=; b=mNvAz6VXb3UrSawFLoHLhwcW5kR0Ctm1Y4waL3DSwT6opGruoUUiAuaqXA6kibzEb1O9Ah ZYAd/WILTHfI41H4Cy4QCswuL5xBcLurwaeDRWrqp/QXKd+jcsD9e0XzI7R87MAfgV3VIR y1BrI/WIhto3s06zapyK0ngt2z7U1XXyle05/VL1Sgqm34jjFxf4HL/Wsti3YvV+V6Lwgq Vlqf/3D99xE6KrMFxFGcThuJFqssnri/hlMcGIR3fVp5dL4vBBZ7eiHgbtzWNS7SxSWTPo phdpK/cQT7YprV1vf4oi3sXNN4Dn3detD3qkvxH9S6Ft/y/RwCUGbCxEv6NcXg== Date: Mon, 4 Apr 2022 10:30:34 +0200 From: Miquel Raynal To: Liang Yang Cc: , Rob Herring , Richard Weinberger , Vignesh Raghavendra , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework Message-ID: <20220404103034.48ec16b1@xps13> In-Reply-To: <20220402074921.13316-2-liang.yang@amlogic.com> References: <20220402074921.13316-1-liang.yang@amlogic.com> <20220402074921.13316-2-liang.yang@amlogic.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Liang, liang.yang@amlogic.com wrote on Sat, 2 Apr 2022 15:49:19 +0800: > EMMC and NAND have the same clock control register named 'SD_EMMC_CLOCK' = which is > defined in EMMC port internally. bit0~5 of 'SD_EMMC_CLOCK' is the divider= and > bit6~7 is the mux for fix pll and xtal.A common MMC and NAND sub-clock ha= s been > implemented and can be used by the eMMC and NAND controller (which are mu= tually > exclusive anyway). Let's use this new clock. >=20 > Signed-off-by: Liang Yang > --- > drivers/mtd/nand/raw/meson_nand.c | 89 +++++++++++++++---------------- > 1 file changed, 42 insertions(+), 47 deletions(-) >=20 > diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/mes= on_nand.c > index ac3be92872d0..1b1a9407fb2f 100644 > --- a/drivers/mtd/nand/raw/meson_nand.c > +++ b/drivers/mtd/nand/raw/meson_nand.c > @@ -10,6 +10,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -19,6 +20,7 @@ > #include > #include > #include > +#include > #include > =20 > #define NFC_REG_CMD 0x00 > @@ -104,6 +106,9 @@ > =20 > #define PER_INFO_BYTE 8 > =20 > +#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; > =20 > unsigned long clk_rate; > u32 bus_timing; > =20 > struct device *dev; > void __iomem *reg_base; > - struct regmap *reg_clk; > + void __iomem *sd_emmc_clock; > struct completion completion; > struct list_head chips; > const struct meson_nfc_data *data; > @@ -235,7 +240,7 @@ static void meson_nfc_select_chip(struct nand_chip *n= and, int chip) > nfc->timing.tbers_max =3D meson_chip->tbers_max; > =20 > if (nfc->clk_rate !=3D meson_chip->clk_rate) { > - ret =3D clk_set_rate(nfc->device_clk, meson_chip->clk_rate); > + ret =3D clk_set_rate(nfc->nand_clk, meson_chip->clk_rate); > if (ret) { > dev_err(nfc->dev, "failed to set clock rate\n"); > return; > @@ -406,7 +411,6 @@ static int meson_nfc_queue_rb(struct meson_nfc *nfc, = int timeout_ms) > cmd =3D NFC_CMD_RB | NFC_CMD_RB_INT > | nfc->param.chip_select | nfc->timing.tbers_max; > writel(cmd, nfc->reg_base + NFC_REG_CMD); > - Please avoid these spacing changes in the middle of a commit. > ret =3D wait_for_completion_timeout(&nfc->completion, > msecs_to_jiffies(timeout_ms)); > if (ret =3D=3D 0) > @@ -985,9 +989,11 @@ static const struct mtd_ooblayout_ops meson_ooblayou= t_ops =3D { > .free =3D meson_ooblayout_free, > }; > =20 > +struct clk_parent_data nfc_divider_parent_data[1]; > static int meson_nfc_clk_init(struct meson_nfc *nfc) > { > int ret; > + struct clk_init_data init =3D {0}; > =20 > /* request core clock */ > nfc->core_clk =3D devm_clk_get(nfc->dev, "core"); > @@ -1002,21 +1008,26 @@ static int meson_nfc_clk_init(struct meson_nfc *n= fc) > return PTR_ERR(nfc->device_clk); > } > =20 > - nfc->phase_tx =3D 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 =3D 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 =3D devm_kstrdup(nfc->dev, "nfc#div", GFP_KERNEL); > + init.ops =3D &clk_divider_ops; > + nfc_divider_parent_data[0].fw_name =3D "device"; > + init.parent_data =3D nfc_divider_parent_data; > + init.num_parents =3D 1; > + nfc->nand_divider.reg =3D nfc->sd_emmc_clock; > + nfc->nand_divider.shift =3D CLK_DIV_SHIFT; > + nfc->nand_divider.width =3D CLK_DIV_WIDTH; > + nfc->nand_divider.hw.init =3D &init; > + nfc->nand_divider.flags =3D CLK_DIVIDER_ONE_BASED | > + CLK_DIVIDER_ROUND_CLOSEST | > + CLK_DIVIDER_ALLOW_ZERO; > + > + nfc->nand_clk =3D devm_clk_register(nfc->dev, &nfc->nand_divider.hw); > + if (IS_ERR(nfc->nand_clk)) > + return PTR_ERR(nfc->nand_clk); > =20 > /* 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->sd_emmc_clock), > + nfc->sd_emmc_clock); > =20 > ret =3D clk_prepare_enable(nfc->core_clk); > if (ret) { > @@ -1030,29 +1041,21 @@ static int meson_nfc_clk_init(struct meson_nfc *n= fc) > goto err_device_clk; > } > =20 > - ret =3D clk_prepare_enable(nfc->phase_tx); > + ret =3D clk_prepare_enable(nfc->nand_clk); > if (ret) { > - dev_err(nfc->dev, "failed to enable TX clock\n"); > - goto err_phase_tx; > + dev_err(nfc->dev, "pre enable NFC divider fail\n"); > + goto err_nand_clk; > } > =20 > - ret =3D clk_prepare_enable(nfc->phase_rx); > - if (ret) { > - dev_err(nfc->dev, "failed to enable RX clock\n"); > - goto err_phase_rx; > - } > - > - ret =3D clk_set_rate(nfc->device_clk, 24000000); > + ret =3D clk_set_rate(nfc->nand_clk, 24000000); Is this rename really useful? > if (ret) > - goto err_disable_rx; > + goto err_disable_clk; > =20 > return 0; > =20 > -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 +1064,7 @@ static int meson_nfc_clk_init(struct meson_nfc *nfc) > =20 > 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); > } > @@ -1374,7 +1376,6 @@ static int meson_nfc_probe(struct platform_device *= pdev) > { > struct device *dev =3D &pdev->dev; > struct meson_nfc *nfc; > - struct resource *res; > int ret, irq; > =20 > nfc =3D devm_kzalloc(dev, sizeof(*nfc), GFP_KERNEL); > @@ -1388,21 +1389,15 @@ static int meson_nfc_probe(struct platform_device= *pdev) > nand_controller_init(&nfc->controller); > INIT_LIST_HEAD(&nfc->chips); > init_completion(&nfc->completion); > - Please don't modify spacing in this commit. > nfc->dev =3D dev; > =20 > - res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); > - nfc->reg_base =3D devm_ioremap_resource(dev, res); > + nfc->reg_base =3D devm_platform_ioremap_resource_byname(pdev, "nfc"); This change seems unrelated. > if (IS_ERR(nfc->reg_base)) > return PTR_ERR(nfc->reg_base); > =20 > - nfc->reg_clk =3D > - syscon_regmap_lookup_by_phandle(dev->of_node, > - "amlogic,mmc-syscon"); > - if (IS_ERR(nfc->reg_clk)) { > - dev_err(dev, "Failed to lookup clock base\n"); > - return PTR_ERR(nfc->reg_clk); > - } > + nfc->sd_emmc_clock =3D devm_platform_ioremap_resource_byname(pdev, "emm= c"); > + if (IS_ERR(nfc->sd_emmc_clock)) > + return PTR_ERR(nfc->sd_emmc_clock); While I agree this is much better than the previous solution, we cannot break DT compatibility, so you need to try getting the emmc clock, but if it fails you should fallback to the regmap lookup. > =20 > irq =3D platform_get_irq(pdev, 0); > if (irq < 0) Thanks, Miqu=C3=A8l 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 C1BACC433F5 for ; Mon, 4 Apr 2022 08:30:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Tfj+VzMskUWSyt8VcBOznZUP1NoUMSgH/4bMJ+D7Dbo=; b=C10Ygk0I2sWEfc uDBA/UGyZh70q/MZAeK6bfEdbGYlbzPPExplBEv+hIbA4mSpxU0URrkc3y0mxW++RI3vq3WjPquPz hOcq52jG1eP/I5PmTU5KlpagFvJbqLrAd15ehPBT6f4/AWDfipnIzRHGVPpIIgzIcZ5M3NmSKLeDo MAsq8UFUYjlF67zuVrIiCNG1NQJlfD2f5HEPKwg05nuQha2rwp2FVzcOsffPuFPUZo399T2BN0Uk8 YZA0tDkmI/u7AmqiXMDUm6L71S6a90INtbCT1PawWGlfG/bGPmEp43HMVw3l8J9yBoxQUjga7fzZv Yi7LgEwfqxzGBsvylsog==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbI6w-00Dr19-Ct; Mon, 04 Apr 2022 08:30:54 +0000 Received: from relay7-d.mail.gandi.net ([217.70.183.200]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbI6l-00DqyX-TV; Mon, 04 Apr 2022 08:30:53 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id A5B9D2000D; Mon, 4 Apr 2022 08:30:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1649061038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c0zr7u2ZGW8b7dHqUeFZDVs8y9pfDOaTguMgL52CwSQ=; b=mNvAz6VXb3UrSawFLoHLhwcW5kR0Ctm1Y4waL3DSwT6opGruoUUiAuaqXA6kibzEb1O9Ah ZYAd/WILTHfI41H4Cy4QCswuL5xBcLurwaeDRWrqp/QXKd+jcsD9e0XzI7R87MAfgV3VIR y1BrI/WIhto3s06zapyK0ngt2z7U1XXyle05/VL1Sgqm34jjFxf4HL/Wsti3YvV+V6Lwgq Vlqf/3D99xE6KrMFxFGcThuJFqssnri/hlMcGIR3fVp5dL4vBBZ7eiHgbtzWNS7SxSWTPo phdpK/cQT7YprV1vf4oi3sXNN4Dn3detD3qkvxH9S6Ft/y/RwCUGbCxEv6NcXg== Date: Mon, 4 Apr 2022 10:30:34 +0200 From: Miquel Raynal To: Liang Yang Cc: , Rob Herring , Richard Weinberger , Vignesh Raghavendra , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework Message-ID: <20220404103034.48ec16b1@xps13> In-Reply-To: <20220402074921.13316-2-liang.yang@amlogic.com> References: <20220402074921.13316-1-liang.yang@amlogic.com> <20220402074921.13316-2-liang.yang@amlogic.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220404_013044_448424_A869FEF1 X-CRM114-Status: GOOD ( 28.68 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgTGlhbmcsCgpsaWFuZy55YW5nQGFtbG9naWMuY29tIHdyb3RlIG9uIFNhdCwgMiBBcHIgMjAy MiAxNTo0OToxOSArMDgwMDoKCj4gRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNsb2NrIGNv bnRyb2wgcmVnaXN0ZXIgbmFtZWQgJ1NEX0VNTUNfQ0xPQ0snIHdoaWNoIGlzCj4gZGVmaW5lZCBp biBFTU1DIHBvcnQgaW50ZXJuYWxseS4gYml0MH41IG9mICdTRF9FTU1DX0NMT0NLJyBpcyB0aGUg ZGl2aWRlciBhbmQKPiBiaXQ2fjcgaXMgdGhlIG11eCBmb3IgZml4IHBsbCBhbmQgeHRhbC5BIGNv bW1vbiBNTUMgYW5kIE5BTkQgc3ViLWNsb2NrIGhhcyBiZWVuCj4gaW1wbGVtZW50ZWQgYW5kIGNh biBiZSB1c2VkIGJ5IHRoZSBlTU1DIGFuZCBOQU5EIGNvbnRyb2xsZXIgKHdoaWNoIGFyZSBtdXR1 YWxseQo+IGV4Y2x1c2l2ZSBhbnl3YXkpLiBMZXQncyB1c2UgdGhpcyBuZXcgY2xvY2suCj4gCj4g U2lnbmVkLW9mZi1ieTogTGlhbmcgWWFuZyA8bGlhbmcueWFuZ0BhbWxvZ2ljLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIHwgODkgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNDcg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29u X25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+IGluZGV4IGFjM2Jl OTI4NzJkMC4uMWIxYTk0MDdmYjJmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3 L21lc29uX25hbmQuYwo+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+ IEBAIC0xMCw2ICsxMCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ICAj aW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgo+ICAjaW5jbHVkZSA8bGludXgvbXRkL3Jh d25hbmQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L21mZC9zeXNjb24uaD4KPiBAQCAtMTksNiArMjAsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvaW9w b2xsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ICAjaW5jbHVkZSA8bGludXgvb2ZfZGV2 aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Cj4gICNpbmNsdWRlIDxsaW51 eC9zY2hlZC90YXNrX3N0YWNrLmg+Cj4gIAo+ICAjZGVmaW5lIE5GQ19SRUdfQ01ECQkweDAwCj4g QEAgLTEwNCw2ICsxMDYsOSBAQAo+ICAKPiAgI2RlZmluZSBQRVJfSU5GT19CWVRFCQk4Cj4gIAo+ ICsjZGVmaW5lIENMS19ESVZfU0hJRlQJCTAKPiArI2RlZmluZSBDTEtfRElWX1dJRFRICQk2Cj4g Kwo+ICBzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIG5v ZGU7Cj4gIAlzdHJ1Y3QgbmFuZF9jaGlwIG5hbmQ7Cj4gQEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0 cnVjdCBtZXNvbl9uZmMgewo+ICAJc3RydWN0IG5hbmRfY29udHJvbGxlciBjb250cm9sbGVyOwo+ ICAJc3RydWN0IGNsayAqY29yZV9jbGs7Cj4gIAlzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+IC0J c3RydWN0IGNsayAqcGhhc2VfdHg7Cj4gLQlzdHJ1Y3QgY2xrICpwaGFzZV9yeDsKPiArCXN0cnVj dCBjbGsgKm5hbmRfY2xrOwo+ICsJc3RydWN0IGNsa19kaXZpZGVyIG5hbmRfZGl2aWRlcjsKPiAg Cj4gIAl1bnNpZ25lZCBsb25nIGNsa19yYXRlOwo+ICAJdTMyIGJ1c190aW1pbmc7Cj4gIAo+ICAJ c3RydWN0IGRldmljZSAqZGV2Owo+ICAJdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsKPiAtCXN0cnVj dCByZWdtYXAgKnJlZ19jbGs7Cj4gKwl2b2lkIF9faW9tZW0gKnNkX2VtbWNfY2xvY2s7Cj4gIAlz dHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOwo+ICAJc3RydWN0IGxpc3RfaGVhZCBjaGlwczsK PiAgCWNvbnN0IHN0cnVjdCBtZXNvbl9uZmNfZGF0YSAqZGF0YTsKPiBAQCAtMjM1LDcgKzI0MCw3 IEBAIHN0YXRpYyB2b2lkIG1lc29uX25mY19zZWxlY3RfY2hpcChzdHJ1Y3QgbmFuZF9jaGlwICpu YW5kLCBpbnQgY2hpcCkKPiAgCW5mYy0+dGltaW5nLnRiZXJzX21heCA9IG1lc29uX2NoaXAtPnRi ZXJzX21heDsKPiAgCj4gIAlpZiAobmZjLT5jbGtfcmF0ZSAhPSBtZXNvbl9jaGlwLT5jbGtfcmF0 ZSkgewo+IC0JCXJldCA9IGNsa19zZXRfcmF0ZShuZmMtPmRldmljZV9jbGssIG1lc29uX2NoaXAt PmNsa19yYXRlKTsKPiArCQlyZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5uYW5kX2NsaywgbWVzb25f Y2hpcC0+Y2xrX3JhdGUpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJZGV2X2VycihuZmMtPmRldiwg ImZhaWxlZCB0byBzZXQgY2xvY2sgcmF0ZVxuIik7Cj4gIAkJCXJldHVybjsKPiBAQCAtNDA2LDcg KzQxMSw2IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVjdCBtZXNvbl9uZmMg Km5mYywgaW50IHRpbWVvdXRfbXMpCj4gIAljbWQgPSBORkNfQ01EX1JCIHwgTkZDX0NNRF9SQl9J TlQKPiAgCQl8IG5mYy0+cGFyYW0uY2hpcF9zZWxlY3QgfCBuZmMtPnRpbWluZy50YmVyc19tYXg7 Cj4gIAl3cml0ZWwoY21kLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JFR19DTUQpOwo+IC0KClBsZWFz ZSBhdm9pZCB0aGVzZSBzcGFjaW5nIGNoYW5nZXMgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1pdC4K Cj4gIAlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29tcGxldGlvbiwK PiAgCQkJCQkgIG1zZWNzX3RvX2ppZmZpZXModGltZW91dF9tcykpOwo+ICAJaWYgKHJldCA9PSAw KQo+IEBAIC05ODUsOSArOTg5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRkX29vYmxheW91 dF9vcHMgbWVzb25fb29ibGF5b3V0X29wcyA9IHsKPiAgCS5mcmVlID0gbWVzb25fb29ibGF5b3V0 X2ZyZWUsCj4gIH07Cj4gIAo+ICtzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIG5mY19kaXZpZGVyX3Bh cmVudF9kYXRhWzFdOwo+ICBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVz b25fbmZjICpuZmMpCj4gIHsKPiAgCWludCByZXQ7Cj4gKwlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBp bml0ID0gezB9Owo+ICAKPiAgCS8qIHJlcXVlc3QgY29yZSBjbG9jayAqLwo+ICAJbmZjLT5jb3Jl X2NsayA9IGRldm1fY2xrX2dldChuZmMtPmRldiwgImNvcmUiKTsKPiBAQCAtMTAwMiwyMSArMTAw OCwyNiBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVzb25fbmZjICpu ZmMpCj4gIAkJcmV0dXJuIFBUUl9FUlIobmZjLT5kZXZpY2VfY2xrKTsKPiAgCX0KPiAgCj4gLQlu ZmMtPnBoYXNlX3R4ID0gZGV2bV9jbGtfZ2V0KG5mYy0+ZGV2LCAidHgiKTsKPiAtCWlmIChJU19F UlIobmZjLT5waGFzZV90eCkpIHsKPiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGdl dCBUWCBjbGtcbiIpOwo+IC0JCXJldHVybiBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+IC0JfQo+ IC0KPiAtCW5mYy0+cGhhc2VfcnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+IC0J aWYgKElTX0VSUihuZmMtPnBoYXNlX3J4KSkgewo+IC0JCWRldl9lcnIobmZjLT5kZXYsICJmYWls ZWQgdG8gZ2V0IFJYIGNsa1xuIik7Cj4gLQkJcmV0dXJuIFBUUl9FUlIobmZjLT5waGFzZV9yeCk7 Cj4gLQl9Cj4gKwlpbml0Lm5hbWUgPSBkZXZtX2tzdHJkdXAobmZjLT5kZXYsICJuZmMjZGl2Iiwg R0ZQX0tFUk5FTCk7Cj4gKwlpbml0Lm9wcyA9ICZjbGtfZGl2aWRlcl9vcHM7Cj4gKwluZmNfZGl2 aWRlcl9wYXJlbnRfZGF0YVswXS5md19uYW1lID0gImRldmljZSI7Cj4gKwlpbml0LnBhcmVudF9k YXRhID0gbmZjX2RpdmlkZXJfcGFyZW50X2RhdGE7Cj4gKwlpbml0Lm51bV9wYXJlbnRzID0gMTsK PiArCW5mYy0+bmFuZF9kaXZpZGVyLnJlZyA9IG5mYy0+c2RfZW1tY19jbG9jazsKPiArCW5mYy0+ bmFuZF9kaXZpZGVyLnNoaWZ0ID0gQ0xLX0RJVl9TSElGVDsKPiArCW5mYy0+bmFuZF9kaXZpZGVy LndpZHRoID0gQ0xLX0RJVl9XSURUSDsKPiArCW5mYy0+bmFuZF9kaXZpZGVyLmh3LmluaXQgPSAm aW5pdDsKPiArCW5mYy0+bmFuZF9kaXZpZGVyLmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VE IHwKPiArCQkJCSAgQ0xLX0RJVklERVJfUk9VTkRfQ0xPU0VTVCB8Cj4gKwkJCQkgIENMS19ESVZJ REVSX0FMTE9XX1pFUk87Cj4gKwo+ICsJbmZjLT5uYW5kX2NsayA9IGRldm1fY2xrX3JlZ2lzdGVy KG5mYy0+ZGV2LCAmbmZjLT5uYW5kX2RpdmlkZXIuaHcpOwo+ICsJaWYgKElTX0VSUihuZmMtPm5h bmRfY2xrKSkKPiArCQlyZXR1cm4gUFRSX0VSUihuZmMtPm5hbmRfY2xrKTsKPiAgCj4gIAkvKiBp bml0IFNEX0VNTUNfQ0xPQ0sgdG8gc2FuZSBkZWZhdWx0cyB3L21pbiBjbG9jayByYXRlICovCj4g LQlyZWdtYXBfdXBkYXRlX2JpdHMobmZjLT5yZWdfY2xrLAo+IC0JCQkgICAwLCBDTEtfU0VMRUNU X05BTkQsIENMS19TRUxFQ1RfTkFORCk7Cj4gKwl3cml0ZWwoQ0xLX1NFTEVDVF9OQU5EIHwgcmVh ZGwobmZjLT5zZF9lbW1jX2Nsb2NrKSwKPiArCSAgICAgICBuZmMtPnNkX2VtbWNfY2xvY2spOwo+ ICAKPiAgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPmNvcmVfY2xrKTsKPiAgCWlmIChy ZXQpIHsKPiBAQCAtMTAzMCwyOSArMTA0MSwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtf aW5pdChzdHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4gIAkJZ290byBlcnJfZGV2aWNlX2NsazsKPiAg CX0KPiAgCj4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobmZjLT5waGFzZV90eCk7Cj4gKwly ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobmZjLT5uYW5kX2Nsayk7Cj4gIAlpZiAocmV0KSB7Cj4g LQkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBlbmFibGUgVFggY2xvY2tcbiIpOwo+IC0J CWdvdG8gZXJyX3BoYXNlX3R4Owo+ICsJCWRldl9lcnIobmZjLT5kZXYsICJwcmUgZW5hYmxlIE5G QyBkaXZpZGVyIGZhaWxcbiIpOwo+ICsJCWdvdG8gZXJyX25hbmRfY2xrOwo+ICAJfQo+ICAKPiAt CXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPiAtCWlmIChyZXQpIHsK PiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBSWCBjbG9ja1xuIik7Cj4g LQkJZ290byBlcnJfcGhhc2Vfcng7Cj4gLQl9Cj4gLQo+IC0JcmV0ID0gY2xrX3NldF9yYXRlKG5m Yy0+ZGV2aWNlX2NsaywgMjQwMDAwMDApOwo+ICsJcmV0ID0gY2xrX3NldF9yYXRlKG5mYy0+bmFu ZF9jbGssIDI0MDAwMDAwKTsKCklzIHRoaXMgcmVuYW1lIHJlYWxseSB1c2VmdWw/Cgo+ICAJaWYg KHJldCkKPiAtCQlnb3RvIGVycl9kaXNhYmxlX3J4Owo+ICsJCWdvdG8gZXJyX2Rpc2FibGVfY2xr Owo+ICAKPiAgCXJldHVybiAwOwo+ICAKPiAtZXJyX2Rpc2FibGVfcng6Cj4gLQljbGtfZGlzYWJs ZV91bnByZXBhcmUobmZjLT5waGFzZV9yeCk7Cj4gLWVycl9waGFzZV9yeDoKPiAtCWNsa19kaXNh YmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3R4KTsKPiAtZXJyX3BoYXNlX3R4Ogo+ICtlcnJfZGlz YWJsZV9jbGs6Cj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5uYW5kX2Nsayk7Cj4gK2Vy cl9uYW5kX2NsazoKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmRldmljZV9jbGspOwo+ ICBlcnJfZGV2aWNlX2NsazoKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmNvcmVfY2xr KTsKPiBAQCAtMTA2MSw4ICsxMDY0LDcgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfY2xrX2luaXQo c3RydWN0IG1lc29uX25mYyAqbmZjKQo+ICAKPiAgc3RhdGljIHZvaWQgbWVzb25fbmZjX2Rpc2Fi bGVfY2xrKHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPiAgewo+IC0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKG5mYy0+cGhhc2VfcngpOwo+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+cGhhc2Vf dHgpOwo+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+bmFuZF9jbGspOwo+ICAJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKG5mYy0+ZGV2aWNlX2Nsayk7Cj4gIAljbGtfZGlzYWJsZV91bnByZXBh cmUobmZjLT5jb3JlX2Nsayk7Cj4gIH0KPiBAQCAtMTM3NCw3ICsxMzc2LDYgQEAgc3RhdGljIGlu dCBtZXNvbl9uZmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+ICAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCXN0cnVjdCBtZXNvbl9uZmMgKm5m YzsKPiAtCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ICAJaW50IHJldCwgaXJxOwo+ICAKPiAgCW5m YyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbmZjKSwgR0ZQX0tFUk5FTCk7Cj4gQEAgLTEz ODgsMjEgKzEzODksMTUgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgCW5hbmRfY29udHJvbGxlcl9pbml0KCZuZmMtPmNvbnRyb2xs ZXIpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJm5mYy0+Y2hpcHMpOwo+ICAJaW5pdF9jb21wbGV0aW9u KCZuZmMtPmNvbXBsZXRpb24pOwo+IC0KClBsZWFzZSBkb24ndCBtb2RpZnkgc3BhY2luZyBpbiB0 aGlzIGNvbW1pdC4KCj4gIAluZmMtPmRldiA9IGRldjsKPiAgCj4gLQlyZXMgPSBwbGF0Zm9ybV9n ZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+IC0JbmZjLT5yZWdfYmFzZSA9 IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKwluZmMtPnJlZ19iYXNlID0gZGV2 bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlX2J5bmFtZShwZGV2LCAibmZjIik7CgpUaGlzIGNo YW5nZSBzZWVtcyB1bnJlbGF0ZWQuCgo+ICAJaWYgKElTX0VSUihuZmMtPnJlZ19iYXNlKSkKPiAg CQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19iYXNlKTsKPiAgCj4gLQluZmMtPnJlZ19jbGsgPQo+ IC0JCXN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2LT5vZl9ub2RlLAo+IC0JCQkJ CQkiYW1sb2dpYyxtbWMtc3lzY29uIik7Cj4gLQlpZiAoSVNfRVJSKG5mYy0+cmVnX2NsaykpIHsK PiAtCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBsb29rdXAgY2xvY2sgYmFzZVxuIik7Cj4gLQkJ cmV0dXJuIFBUUl9FUlIobmZjLT5yZWdfY2xrKTsKPiAtCX0KPiArCW5mYy0+c2RfZW1tY19jbG9j ayA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZV9ieW5hbWUocGRldiwgImVtbWMiKTsK PiArCWlmIChJU19FUlIobmZjLT5zZF9lbW1jX2Nsb2NrKSkKPiArCQlyZXR1cm4gUFRSX0VSUihu ZmMtPnNkX2VtbWNfY2xvY2spOwoKV2hpbGUgSSBhZ3JlZSB0aGlzIGlzIG11Y2ggYmV0dGVyIHRo YW4gdGhlIHByZXZpb3VzIHNvbHV0aW9uLCB3ZSBjYW5ub3QKYnJlYWsgRFQgY29tcGF0aWJpbGl0 eSwgc28geW91IG5lZWQgdG8gdHJ5IGdldHRpbmcgdGhlIGVtbWMgY2xvY2ssIGJ1dAppZiBpdCBm YWlscyB5b3Ugc2hvdWxkIGZhbGxiYWNrIHRvIHRoZSByZWdtYXAgbG9va3VwLgoKPiAgCj4gIAlp cnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwo+ICAJaWYgKGlycSA8IDApCgoKVGhhbmtz LApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h bWxvZ2ljCg== 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 EFF06C433EF for ; Mon, 4 Apr 2022 08:31:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=qUPJ5Bk95hc/ipz13NWOi4ceESJGpTbyFbSyjAeSkTk=; b=Oc5qHpoWYi+sjV 3hnyjE7Ax9014DAy9adRdnlmL84UXEWyLBv20QEpvBUC4cdhRsm2xQ3ZbDFhmPrWl/bgxMmhnCpTi zeKo+a1yFHZ7jePJ97r1Gzj5+iQONTTXaIq/ie7C6FfCKjkGCve522h6xAh5Ot77sxA6UUP25RxU1 n678Wu/fw3njF0cNvFw41KEfOm9wf8MMDGSm4Iv7Xw/o+7bx4Rd5Airzx0PzJ9l/GYtyaoCQNQgGd d9tcnzTK8EGObbYntmZTweCJB4A0YFQtMnut1zsqxPaqXGsv/1RnULMZI+BgaUcTivguMTlWgo+5k z9/SEJVOZhEK9KIrzADw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbI75-00Dr3k-Qe; Mon, 04 Apr 2022 08:31:03 +0000 Received: from relay7-d.mail.gandi.net ([217.70.183.200]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbI6l-00DqyX-TV; Mon, 04 Apr 2022 08:30:53 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id A5B9D2000D; Mon, 4 Apr 2022 08:30:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1649061038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c0zr7u2ZGW8b7dHqUeFZDVs8y9pfDOaTguMgL52CwSQ=; b=mNvAz6VXb3UrSawFLoHLhwcW5kR0Ctm1Y4waL3DSwT6opGruoUUiAuaqXA6kibzEb1O9Ah ZYAd/WILTHfI41H4Cy4QCswuL5xBcLurwaeDRWrqp/QXKd+jcsD9e0XzI7R87MAfgV3VIR y1BrI/WIhto3s06zapyK0ngt2z7U1XXyle05/VL1Sgqm34jjFxf4HL/Wsti3YvV+V6Lwgq Vlqf/3D99xE6KrMFxFGcThuJFqssnri/hlMcGIR3fVp5dL4vBBZ7eiHgbtzWNS7SxSWTPo phdpK/cQT7YprV1vf4oi3sXNN4Dn3detD3qkvxH9S6Ft/y/RwCUGbCxEv6NcXg== Date: Mon, 4 Apr 2022 10:30:34 +0200 From: Miquel Raynal To: Liang Yang Cc: , Rob Herring , Richard Weinberger , Vignesh Raghavendra , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework Message-ID: <20220404103034.48ec16b1@xps13> In-Reply-To: <20220402074921.13316-2-liang.yang@amlogic.com> References: <20220402074921.13316-1-liang.yang@amlogic.com> <20220402074921.13316-2-liang.yang@amlogic.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220404_013044_448424_A869FEF1 X-CRM114-Status: GOOD ( 28.68 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgTGlhbmcsCgpsaWFuZy55YW5nQGFtbG9naWMuY29tIHdyb3RlIG9uIFNhdCwgMiBBcHIgMjAy MiAxNTo0OToxOSArMDgwMDoKCj4gRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNsb2NrIGNv bnRyb2wgcmVnaXN0ZXIgbmFtZWQgJ1NEX0VNTUNfQ0xPQ0snIHdoaWNoIGlzCj4gZGVmaW5lZCBp biBFTU1DIHBvcnQgaW50ZXJuYWxseS4gYml0MH41IG9mICdTRF9FTU1DX0NMT0NLJyBpcyB0aGUg ZGl2aWRlciBhbmQKPiBiaXQ2fjcgaXMgdGhlIG11eCBmb3IgZml4IHBsbCBhbmQgeHRhbC5BIGNv bW1vbiBNTUMgYW5kIE5BTkQgc3ViLWNsb2NrIGhhcyBiZWVuCj4gaW1wbGVtZW50ZWQgYW5kIGNh biBiZSB1c2VkIGJ5IHRoZSBlTU1DIGFuZCBOQU5EIGNvbnRyb2xsZXIgKHdoaWNoIGFyZSBtdXR1 YWxseQo+IGV4Y2x1c2l2ZSBhbnl3YXkpLiBMZXQncyB1c2UgdGhpcyBuZXcgY2xvY2suCj4gCj4g U2lnbmVkLW9mZi1ieTogTGlhbmcgWWFuZyA8bGlhbmcueWFuZ0BhbWxvZ2ljLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIHwgODkgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNDcg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29u X25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+IGluZGV4IGFjM2Jl OTI4NzJkMC4uMWIxYTk0MDdmYjJmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3 L21lc29uX25hbmQuYwo+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+ IEBAIC0xMCw2ICsxMCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ICAj aW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgo+ICAjaW5jbHVkZSA8bGludXgvbXRkL3Jh d25hbmQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L21mZC9zeXNjb24uaD4KPiBAQCAtMTksNiArMjAsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvaW9w b2xsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ICAjaW5jbHVkZSA8bGludXgvb2ZfZGV2 aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Cj4gICNpbmNsdWRlIDxsaW51 eC9zY2hlZC90YXNrX3N0YWNrLmg+Cj4gIAo+ICAjZGVmaW5lIE5GQ19SRUdfQ01ECQkweDAwCj4g QEAgLTEwNCw2ICsxMDYsOSBAQAo+ICAKPiAgI2RlZmluZSBQRVJfSU5GT19CWVRFCQk4Cj4gIAo+ ICsjZGVmaW5lIENMS19ESVZfU0hJRlQJCTAKPiArI2RlZmluZSBDTEtfRElWX1dJRFRICQk2Cj4g Kwo+ICBzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIG5v ZGU7Cj4gIAlzdHJ1Y3QgbmFuZF9jaGlwIG5hbmQ7Cj4gQEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0 cnVjdCBtZXNvbl9uZmMgewo+ICAJc3RydWN0IG5hbmRfY29udHJvbGxlciBjb250cm9sbGVyOwo+ ICAJc3RydWN0IGNsayAqY29yZV9jbGs7Cj4gIAlzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+IC0J c3RydWN0IGNsayAqcGhhc2VfdHg7Cj4gLQlzdHJ1Y3QgY2xrICpwaGFzZV9yeDsKPiArCXN0cnVj dCBjbGsgKm5hbmRfY2xrOwo+ICsJc3RydWN0IGNsa19kaXZpZGVyIG5hbmRfZGl2aWRlcjsKPiAg Cj4gIAl1bnNpZ25lZCBsb25nIGNsa19yYXRlOwo+ICAJdTMyIGJ1c190aW1pbmc7Cj4gIAo+ICAJ c3RydWN0IGRldmljZSAqZGV2Owo+ICAJdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsKPiAtCXN0cnVj dCByZWdtYXAgKnJlZ19jbGs7Cj4gKwl2b2lkIF9faW9tZW0gKnNkX2VtbWNfY2xvY2s7Cj4gIAlz dHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOwo+ICAJc3RydWN0IGxpc3RfaGVhZCBjaGlwczsK PiAgCWNvbnN0IHN0cnVjdCBtZXNvbl9uZmNfZGF0YSAqZGF0YTsKPiBAQCAtMjM1LDcgKzI0MCw3 IEBAIHN0YXRpYyB2b2lkIG1lc29uX25mY19zZWxlY3RfY2hpcChzdHJ1Y3QgbmFuZF9jaGlwICpu YW5kLCBpbnQgY2hpcCkKPiAgCW5mYy0+dGltaW5nLnRiZXJzX21heCA9IG1lc29uX2NoaXAtPnRi ZXJzX21heDsKPiAgCj4gIAlpZiAobmZjLT5jbGtfcmF0ZSAhPSBtZXNvbl9jaGlwLT5jbGtfcmF0 ZSkgewo+IC0JCXJldCA9IGNsa19zZXRfcmF0ZShuZmMtPmRldmljZV9jbGssIG1lc29uX2NoaXAt PmNsa19yYXRlKTsKPiArCQlyZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5uYW5kX2NsaywgbWVzb25f Y2hpcC0+Y2xrX3JhdGUpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJZGV2X2VycihuZmMtPmRldiwg ImZhaWxlZCB0byBzZXQgY2xvY2sgcmF0ZVxuIik7Cj4gIAkJCXJldHVybjsKPiBAQCAtNDA2LDcg KzQxMSw2IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVjdCBtZXNvbl9uZmMg Km5mYywgaW50IHRpbWVvdXRfbXMpCj4gIAljbWQgPSBORkNfQ01EX1JCIHwgTkZDX0NNRF9SQl9J TlQKPiAgCQl8IG5mYy0+cGFyYW0uY2hpcF9zZWxlY3QgfCBuZmMtPnRpbWluZy50YmVyc19tYXg7 Cj4gIAl3cml0ZWwoY21kLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JFR19DTUQpOwo+IC0KClBsZWFz ZSBhdm9pZCB0aGVzZSBzcGFjaW5nIGNoYW5nZXMgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1pdC4K Cj4gIAlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29tcGxldGlvbiwK PiAgCQkJCQkgIG1zZWNzX3RvX2ppZmZpZXModGltZW91dF9tcykpOwo+ICAJaWYgKHJldCA9PSAw KQo+IEBAIC05ODUsOSArOTg5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRkX29vYmxheW91 dF9vcHMgbWVzb25fb29ibGF5b3V0X29wcyA9IHsKPiAgCS5mcmVlID0gbWVzb25fb29ibGF5b3V0 X2ZyZWUsCj4gIH07Cj4gIAo+ICtzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIG5mY19kaXZpZGVyX3Bh cmVudF9kYXRhWzFdOwo+ICBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVz b25fbmZjICpuZmMpCj4gIHsKPiAgCWludCByZXQ7Cj4gKwlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBp bml0ID0gezB9Owo+ICAKPiAgCS8qIHJlcXVlc3QgY29yZSBjbG9jayAqLwo+ICAJbmZjLT5jb3Jl X2NsayA9IGRldm1fY2xrX2dldChuZmMtPmRldiwgImNvcmUiKTsKPiBAQCAtMTAwMiwyMSArMTAw OCwyNiBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVzb25fbmZjICpu ZmMpCj4gIAkJcmV0dXJuIFBUUl9FUlIobmZjLT5kZXZpY2VfY2xrKTsKPiAgCX0KPiAgCj4gLQlu ZmMtPnBoYXNlX3R4ID0gZGV2bV9jbGtfZ2V0KG5mYy0+ZGV2LCAidHgiKTsKPiAtCWlmIChJU19F UlIobmZjLT5waGFzZV90eCkpIHsKPiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGdl dCBUWCBjbGtcbiIpOwo+IC0JCXJldHVybiBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+IC0JfQo+ IC0KPiAtCW5mYy0+cGhhc2VfcnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+IC0J aWYgKElTX0VSUihuZmMtPnBoYXNlX3J4KSkgewo+IC0JCWRldl9lcnIobmZjLT5kZXYsICJmYWls ZWQgdG8gZ2V0IFJYIGNsa1xuIik7Cj4gLQkJcmV0dXJuIFBUUl9FUlIobmZjLT5waGFzZV9yeCk7 Cj4gLQl9Cj4gKwlpbml0Lm5hbWUgPSBkZXZtX2tzdHJkdXAobmZjLT5kZXYsICJuZmMjZGl2Iiwg R0ZQX0tFUk5FTCk7Cj4gKwlpbml0Lm9wcyA9ICZjbGtfZGl2aWRlcl9vcHM7Cj4gKwluZmNfZGl2 aWRlcl9wYXJlbnRfZGF0YVswXS5md19uYW1lID0gImRldmljZSI7Cj4gKwlpbml0LnBhcmVudF9k YXRhID0gbmZjX2RpdmlkZXJfcGFyZW50X2RhdGE7Cj4gKwlpbml0Lm51bV9wYXJlbnRzID0gMTsK PiArCW5mYy0+bmFuZF9kaXZpZGVyLnJlZyA9IG5mYy0+c2RfZW1tY19jbG9jazsKPiArCW5mYy0+ bmFuZF9kaXZpZGVyLnNoaWZ0ID0gQ0xLX0RJVl9TSElGVDsKPiArCW5mYy0+bmFuZF9kaXZpZGVy LndpZHRoID0gQ0xLX0RJVl9XSURUSDsKPiArCW5mYy0+bmFuZF9kaXZpZGVyLmh3LmluaXQgPSAm aW5pdDsKPiArCW5mYy0+bmFuZF9kaXZpZGVyLmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VE IHwKPiArCQkJCSAgQ0xLX0RJVklERVJfUk9VTkRfQ0xPU0VTVCB8Cj4gKwkJCQkgIENMS19ESVZJ REVSX0FMTE9XX1pFUk87Cj4gKwo+ICsJbmZjLT5uYW5kX2NsayA9IGRldm1fY2xrX3JlZ2lzdGVy KG5mYy0+ZGV2LCAmbmZjLT5uYW5kX2RpdmlkZXIuaHcpOwo+ICsJaWYgKElTX0VSUihuZmMtPm5h bmRfY2xrKSkKPiArCQlyZXR1cm4gUFRSX0VSUihuZmMtPm5hbmRfY2xrKTsKPiAgCj4gIAkvKiBp bml0IFNEX0VNTUNfQ0xPQ0sgdG8gc2FuZSBkZWZhdWx0cyB3L21pbiBjbG9jayByYXRlICovCj4g LQlyZWdtYXBfdXBkYXRlX2JpdHMobmZjLT5yZWdfY2xrLAo+IC0JCQkgICAwLCBDTEtfU0VMRUNU X05BTkQsIENMS19TRUxFQ1RfTkFORCk7Cj4gKwl3cml0ZWwoQ0xLX1NFTEVDVF9OQU5EIHwgcmVh ZGwobmZjLT5zZF9lbW1jX2Nsb2NrKSwKPiArCSAgICAgICBuZmMtPnNkX2VtbWNfY2xvY2spOwo+ ICAKPiAgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPmNvcmVfY2xrKTsKPiAgCWlmIChy ZXQpIHsKPiBAQCAtMTAzMCwyOSArMTA0MSwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtf aW5pdChzdHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4gIAkJZ290byBlcnJfZGV2aWNlX2NsazsKPiAg CX0KPiAgCj4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobmZjLT5waGFzZV90eCk7Cj4gKwly ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobmZjLT5uYW5kX2Nsayk7Cj4gIAlpZiAocmV0KSB7Cj4g LQkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBlbmFibGUgVFggY2xvY2tcbiIpOwo+IC0J CWdvdG8gZXJyX3BoYXNlX3R4Owo+ICsJCWRldl9lcnIobmZjLT5kZXYsICJwcmUgZW5hYmxlIE5G QyBkaXZpZGVyIGZhaWxcbiIpOwo+ICsJCWdvdG8gZXJyX25hbmRfY2xrOwo+ICAJfQo+ICAKPiAt CXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPiAtCWlmIChyZXQpIHsK PiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBSWCBjbG9ja1xuIik7Cj4g LQkJZ290byBlcnJfcGhhc2Vfcng7Cj4gLQl9Cj4gLQo+IC0JcmV0ID0gY2xrX3NldF9yYXRlKG5m Yy0+ZGV2aWNlX2NsaywgMjQwMDAwMDApOwo+ICsJcmV0ID0gY2xrX3NldF9yYXRlKG5mYy0+bmFu ZF9jbGssIDI0MDAwMDAwKTsKCklzIHRoaXMgcmVuYW1lIHJlYWxseSB1c2VmdWw/Cgo+ICAJaWYg KHJldCkKPiAtCQlnb3RvIGVycl9kaXNhYmxlX3J4Owo+ICsJCWdvdG8gZXJyX2Rpc2FibGVfY2xr Owo+ICAKPiAgCXJldHVybiAwOwo+ICAKPiAtZXJyX2Rpc2FibGVfcng6Cj4gLQljbGtfZGlzYWJs ZV91bnByZXBhcmUobmZjLT5waGFzZV9yeCk7Cj4gLWVycl9waGFzZV9yeDoKPiAtCWNsa19kaXNh YmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3R4KTsKPiAtZXJyX3BoYXNlX3R4Ogo+ICtlcnJfZGlz YWJsZV9jbGs6Cj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5uYW5kX2Nsayk7Cj4gK2Vy cl9uYW5kX2NsazoKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmRldmljZV9jbGspOwo+ ICBlcnJfZGV2aWNlX2NsazoKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmNvcmVfY2xr KTsKPiBAQCAtMTA2MSw4ICsxMDY0LDcgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfY2xrX2luaXQo c3RydWN0IG1lc29uX25mYyAqbmZjKQo+ICAKPiAgc3RhdGljIHZvaWQgbWVzb25fbmZjX2Rpc2Fi bGVfY2xrKHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPiAgewo+IC0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKG5mYy0+cGhhc2VfcngpOwo+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+cGhhc2Vf dHgpOwo+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+bmFuZF9jbGspOwo+ICAJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKG5mYy0+ZGV2aWNlX2Nsayk7Cj4gIAljbGtfZGlzYWJsZV91bnByZXBh cmUobmZjLT5jb3JlX2Nsayk7Cj4gIH0KPiBAQCAtMTM3NCw3ICsxMzc2LDYgQEAgc3RhdGljIGlu dCBtZXNvbl9uZmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+ICAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCXN0cnVjdCBtZXNvbl9uZmMgKm5m YzsKPiAtCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ICAJaW50IHJldCwgaXJxOwo+ICAKPiAgCW5m YyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbmZjKSwgR0ZQX0tFUk5FTCk7Cj4gQEAgLTEz ODgsMjEgKzEzODksMTUgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgCW5hbmRfY29udHJvbGxlcl9pbml0KCZuZmMtPmNvbnRyb2xs ZXIpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJm5mYy0+Y2hpcHMpOwo+ICAJaW5pdF9jb21wbGV0aW9u KCZuZmMtPmNvbXBsZXRpb24pOwo+IC0KClBsZWFzZSBkb24ndCBtb2RpZnkgc3BhY2luZyBpbiB0 aGlzIGNvbW1pdC4KCj4gIAluZmMtPmRldiA9IGRldjsKPiAgCj4gLQlyZXMgPSBwbGF0Zm9ybV9n ZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+IC0JbmZjLT5yZWdfYmFzZSA9 IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKwluZmMtPnJlZ19iYXNlID0gZGV2 bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlX2J5bmFtZShwZGV2LCAibmZjIik7CgpUaGlzIGNo YW5nZSBzZWVtcyB1bnJlbGF0ZWQuCgo+ICAJaWYgKElTX0VSUihuZmMtPnJlZ19iYXNlKSkKPiAg CQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19iYXNlKTsKPiAgCj4gLQluZmMtPnJlZ19jbGsgPQo+ IC0JCXN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2LT5vZl9ub2RlLAo+IC0JCQkJ CQkiYW1sb2dpYyxtbWMtc3lzY29uIik7Cj4gLQlpZiAoSVNfRVJSKG5mYy0+cmVnX2NsaykpIHsK PiAtCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBsb29rdXAgY2xvY2sgYmFzZVxuIik7Cj4gLQkJ cmV0dXJuIFBUUl9FUlIobmZjLT5yZWdfY2xrKTsKPiAtCX0KPiArCW5mYy0+c2RfZW1tY19jbG9j ayA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZV9ieW5hbWUocGRldiwgImVtbWMiKTsK PiArCWlmIChJU19FUlIobmZjLT5zZF9lbW1jX2Nsb2NrKSkKPiArCQlyZXR1cm4gUFRSX0VSUihu ZmMtPnNkX2VtbWNfY2xvY2spOwoKV2hpbGUgSSBhZ3JlZSB0aGlzIGlzIG11Y2ggYmV0dGVyIHRo YW4gdGhlIHByZXZpb3VzIHNvbHV0aW9uLCB3ZSBjYW5ub3QKYnJlYWsgRFQgY29tcGF0aWJpbGl0 eSwgc28geW91IG5lZWQgdG8gdHJ5IGdldHRpbmcgdGhlIGVtbWMgY2xvY2ssIGJ1dAppZiBpdCBm YWlscyB5b3Ugc2hvdWxkIGZhbGxiYWNrIHRvIHRoZSByZWdtYXAgbG9va3VwLgoKPiAgCj4gIAlp cnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwo+ICAJaWYgKGlycSA8IDApCgoKVGhhbmtz LApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo= 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 D5341C433F5 for ; Mon, 4 Apr 2022 08:32:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=m6bZ0feJCDIU5g+JLkheoqpvkfj0bmBQH0d9DSXJiXw=; b=CXgsUQ4YuYbpoV xTlJ8s65CxaCvgxQjw+DWFXXue6NI06FGAa66ISTex6OFf/AwPZ8IZJONR1QRUPI8S61l6WCpRSn6 Cco2lqbywS3xc3e7M8J1Vzu5gwVAOeC+znCPdEivzsJqqBtt6hfwLlXYl+WZ8/Lh1vwkyHsCYFDp+ xH8Wk/N909u9D9+4NAyFyOvqvIb26RoPguG4O6f7cyHF7vQuGOFVquK7DiQzOO9gn9XXFBRgSUfDh OyK9P2g2NGFCU2XIMl0H7BkkNoXTUuuFNZbK9f5LMFPbpSNeVpjAfouTlEnYXHk4FxwqiFIK51h+J k+jhYcGuTtiejFwiQmkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbI6x-00Dr1K-Gu; Mon, 04 Apr 2022 08:30:55 +0000 Received: from relay7-d.mail.gandi.net ([217.70.183.200]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nbI6l-00DqyX-TV; Mon, 04 Apr 2022 08:30:53 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id A5B9D2000D; Mon, 4 Apr 2022 08:30:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1649061038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c0zr7u2ZGW8b7dHqUeFZDVs8y9pfDOaTguMgL52CwSQ=; b=mNvAz6VXb3UrSawFLoHLhwcW5kR0Ctm1Y4waL3DSwT6opGruoUUiAuaqXA6kibzEb1O9Ah ZYAd/WILTHfI41H4Cy4QCswuL5xBcLurwaeDRWrqp/QXKd+jcsD9e0XzI7R87MAfgV3VIR y1BrI/WIhto3s06zapyK0ngt2z7U1XXyle05/VL1Sgqm34jjFxf4HL/Wsti3YvV+V6Lwgq Vlqf/3D99xE6KrMFxFGcThuJFqssnri/hlMcGIR3fVp5dL4vBBZ7eiHgbtzWNS7SxSWTPo phdpK/cQT7YprV1vf4oi3sXNN4Dn3detD3qkvxH9S6Ft/y/RwCUGbCxEv6NcXg== Date: Mon, 4 Apr 2022 10:30:34 +0200 From: Miquel Raynal To: Liang Yang Cc: , Rob Herring , Richard Weinberger , Vignesh Raghavendra , Jerome Brunet , Neil Armstrong , Martin Blumenstingl , Kevin Hilman , Jianxin Pan , Victor Wan , XianWei Zhao , Kelvin Zhang , BiChao Zheng , YongHui Yu , , , , Subject: Re: [PATCH v4 1/2] mtd: rawnand: meson: discard the common MMC sub clock framework Message-ID: <20220404103034.48ec16b1@xps13> In-Reply-To: <20220402074921.13316-2-liang.yang@amlogic.com> References: <20220402074921.13316-1-liang.yang@amlogic.com> <20220402074921.13316-2-liang.yang@amlogic.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220404_013044_448424_A869FEF1 X-CRM114-Status: GOOD ( 28.68 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTGlhbmcsCgpsaWFuZy55YW5nQGFtbG9naWMuY29tIHdyb3RlIG9uIFNhdCwgMiBBcHIgMjAy MiAxNTo0OToxOSArMDgwMDoKCj4gRU1NQyBhbmQgTkFORCBoYXZlIHRoZSBzYW1lIGNsb2NrIGNv bnRyb2wgcmVnaXN0ZXIgbmFtZWQgJ1NEX0VNTUNfQ0xPQ0snIHdoaWNoIGlzCj4gZGVmaW5lZCBp biBFTU1DIHBvcnQgaW50ZXJuYWxseS4gYml0MH41IG9mICdTRF9FTU1DX0NMT0NLJyBpcyB0aGUg ZGl2aWRlciBhbmQKPiBiaXQ2fjcgaXMgdGhlIG11eCBmb3IgZml4IHBsbCBhbmQgeHRhbC5BIGNv bW1vbiBNTUMgYW5kIE5BTkQgc3ViLWNsb2NrIGhhcyBiZWVuCj4gaW1wbGVtZW50ZWQgYW5kIGNh biBiZSB1c2VkIGJ5IHRoZSBlTU1DIGFuZCBOQU5EIGNvbnRyb2xsZXIgKHdoaWNoIGFyZSBtdXR1 YWxseQo+IGV4Y2x1c2l2ZSBhbnl3YXkpLiBMZXQncyB1c2UgdGhpcyBuZXcgY2xvY2suCj4gCj4g U2lnbmVkLW9mZi1ieTogTGlhbmcgWWFuZyA8bGlhbmcueWFuZ0BhbWxvZ2ljLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIHwgODkgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNDcg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29u X25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+IGluZGV4IGFjM2Jl OTI4NzJkMC4uMWIxYTk0MDdmYjJmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3 L21lc29uX25hbmQuYwo+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+ IEBAIC0xMCw2ICsxMCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ICAj aW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgo+ICAjaW5jbHVkZSA8bGludXgvbXRkL3Jh d25hbmQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L21mZC9zeXNjb24uaD4KPiBAQCAtMTksNiArMjAsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvaW9w b2xsLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ICAjaW5jbHVkZSA8bGludXgvb2ZfZGV2 aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Cj4gICNpbmNsdWRlIDxsaW51 eC9zY2hlZC90YXNrX3N0YWNrLmg+Cj4gIAo+ICAjZGVmaW5lIE5GQ19SRUdfQ01ECQkweDAwCj4g QEAgLTEwNCw2ICsxMDYsOSBAQAo+ICAKPiAgI2RlZmluZSBQRVJfSU5GT19CWVRFCQk4Cj4gIAo+ ICsjZGVmaW5lIENMS19ESVZfU0hJRlQJCTAKPiArI2RlZmluZSBDTEtfRElWX1dJRFRICQk2Cj4g Kwo+ICBzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIG5v ZGU7Cj4gIAlzdHJ1Y3QgbmFuZF9jaGlwIG5hbmQ7Cj4gQEAgLTE1MSwxNSArMTU2LDE1IEBAIHN0 cnVjdCBtZXNvbl9uZmMgewo+ICAJc3RydWN0IG5hbmRfY29udHJvbGxlciBjb250cm9sbGVyOwo+ ICAJc3RydWN0IGNsayAqY29yZV9jbGs7Cj4gIAlzdHJ1Y3QgY2xrICpkZXZpY2VfY2xrOwo+IC0J c3RydWN0IGNsayAqcGhhc2VfdHg7Cj4gLQlzdHJ1Y3QgY2xrICpwaGFzZV9yeDsKPiArCXN0cnVj dCBjbGsgKm5hbmRfY2xrOwo+ICsJc3RydWN0IGNsa19kaXZpZGVyIG5hbmRfZGl2aWRlcjsKPiAg Cj4gIAl1bnNpZ25lZCBsb25nIGNsa19yYXRlOwo+ICAJdTMyIGJ1c190aW1pbmc7Cj4gIAo+ICAJ c3RydWN0IGRldmljZSAqZGV2Owo+ICAJdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsKPiAtCXN0cnVj dCByZWdtYXAgKnJlZ19jbGs7Cj4gKwl2b2lkIF9faW9tZW0gKnNkX2VtbWNfY2xvY2s7Cj4gIAlz dHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOwo+ICAJc3RydWN0IGxpc3RfaGVhZCBjaGlwczsK PiAgCWNvbnN0IHN0cnVjdCBtZXNvbl9uZmNfZGF0YSAqZGF0YTsKPiBAQCAtMjM1LDcgKzI0MCw3 IEBAIHN0YXRpYyB2b2lkIG1lc29uX25mY19zZWxlY3RfY2hpcChzdHJ1Y3QgbmFuZF9jaGlwICpu YW5kLCBpbnQgY2hpcCkKPiAgCW5mYy0+dGltaW5nLnRiZXJzX21heCA9IG1lc29uX2NoaXAtPnRi ZXJzX21heDsKPiAgCj4gIAlpZiAobmZjLT5jbGtfcmF0ZSAhPSBtZXNvbl9jaGlwLT5jbGtfcmF0 ZSkgewo+IC0JCXJldCA9IGNsa19zZXRfcmF0ZShuZmMtPmRldmljZV9jbGssIG1lc29uX2NoaXAt PmNsa19yYXRlKTsKPiArCQlyZXQgPSBjbGtfc2V0X3JhdGUobmZjLT5uYW5kX2NsaywgbWVzb25f Y2hpcC0+Y2xrX3JhdGUpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJZGV2X2VycihuZmMtPmRldiwg ImZhaWxlZCB0byBzZXQgY2xvY2sgcmF0ZVxuIik7Cj4gIAkJCXJldHVybjsKPiBAQCAtNDA2LDcg KzQxMSw2IEBAIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVjdCBtZXNvbl9uZmMg Km5mYywgaW50IHRpbWVvdXRfbXMpCj4gIAljbWQgPSBORkNfQ01EX1JCIHwgTkZDX0NNRF9SQl9J TlQKPiAgCQl8IG5mYy0+cGFyYW0uY2hpcF9zZWxlY3QgfCBuZmMtPnRpbWluZy50YmVyc19tYXg7 Cj4gIAl3cml0ZWwoY21kLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JFR19DTUQpOwo+IC0KClBsZWFz ZSBhdm9pZCB0aGVzZSBzcGFjaW5nIGNoYW5nZXMgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1pdC4K Cj4gIAlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29tcGxldGlvbiwK PiAgCQkJCQkgIG1zZWNzX3RvX2ppZmZpZXModGltZW91dF9tcykpOwo+ICAJaWYgKHJldCA9PSAw KQo+IEBAIC05ODUsOSArOTg5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRkX29vYmxheW91 dF9vcHMgbWVzb25fb29ibGF5b3V0X29wcyA9IHsKPiAgCS5mcmVlID0gbWVzb25fb29ibGF5b3V0 X2ZyZWUsCj4gIH07Cj4gIAo+ICtzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIG5mY19kaXZpZGVyX3Bh cmVudF9kYXRhWzFdOwo+ICBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVz b25fbmZjICpuZmMpCj4gIHsKPiAgCWludCByZXQ7Cj4gKwlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBp bml0ID0gezB9Owo+ICAKPiAgCS8qIHJlcXVlc3QgY29yZSBjbG9jayAqLwo+ICAJbmZjLT5jb3Jl X2NsayA9IGRldm1fY2xrX2dldChuZmMtPmRldiwgImNvcmUiKTsKPiBAQCAtMTAwMiwyMSArMTAw OCwyNiBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtfaW5pdChzdHJ1Y3QgbWVzb25fbmZjICpu ZmMpCj4gIAkJcmV0dXJuIFBUUl9FUlIobmZjLT5kZXZpY2VfY2xrKTsKPiAgCX0KPiAgCj4gLQlu ZmMtPnBoYXNlX3R4ID0gZGV2bV9jbGtfZ2V0KG5mYy0+ZGV2LCAidHgiKTsKPiAtCWlmIChJU19F UlIobmZjLT5waGFzZV90eCkpIHsKPiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGdl dCBUWCBjbGtcbiIpOwo+IC0JCXJldHVybiBQVFJfRVJSKG5mYy0+cGhhc2VfdHgpOwo+IC0JfQo+ IC0KPiAtCW5mYy0+cGhhc2VfcnggPSBkZXZtX2Nsa19nZXQobmZjLT5kZXYsICJyeCIpOwo+IC0J aWYgKElTX0VSUihuZmMtPnBoYXNlX3J4KSkgewo+IC0JCWRldl9lcnIobmZjLT5kZXYsICJmYWls ZWQgdG8gZ2V0IFJYIGNsa1xuIik7Cj4gLQkJcmV0dXJuIFBUUl9FUlIobmZjLT5waGFzZV9yeCk7 Cj4gLQl9Cj4gKwlpbml0Lm5hbWUgPSBkZXZtX2tzdHJkdXAobmZjLT5kZXYsICJuZmMjZGl2Iiwg R0ZQX0tFUk5FTCk7Cj4gKwlpbml0Lm9wcyA9ICZjbGtfZGl2aWRlcl9vcHM7Cj4gKwluZmNfZGl2 aWRlcl9wYXJlbnRfZGF0YVswXS5md19uYW1lID0gImRldmljZSI7Cj4gKwlpbml0LnBhcmVudF9k YXRhID0gbmZjX2RpdmlkZXJfcGFyZW50X2RhdGE7Cj4gKwlpbml0Lm51bV9wYXJlbnRzID0gMTsK PiArCW5mYy0+bmFuZF9kaXZpZGVyLnJlZyA9IG5mYy0+c2RfZW1tY19jbG9jazsKPiArCW5mYy0+ bmFuZF9kaXZpZGVyLnNoaWZ0ID0gQ0xLX0RJVl9TSElGVDsKPiArCW5mYy0+bmFuZF9kaXZpZGVy LndpZHRoID0gQ0xLX0RJVl9XSURUSDsKPiArCW5mYy0+bmFuZF9kaXZpZGVyLmh3LmluaXQgPSAm aW5pdDsKPiArCW5mYy0+bmFuZF9kaXZpZGVyLmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VE IHwKPiArCQkJCSAgQ0xLX0RJVklERVJfUk9VTkRfQ0xPU0VTVCB8Cj4gKwkJCQkgIENMS19ESVZJ REVSX0FMTE9XX1pFUk87Cj4gKwo+ICsJbmZjLT5uYW5kX2NsayA9IGRldm1fY2xrX3JlZ2lzdGVy KG5mYy0+ZGV2LCAmbmZjLT5uYW5kX2RpdmlkZXIuaHcpOwo+ICsJaWYgKElTX0VSUihuZmMtPm5h bmRfY2xrKSkKPiArCQlyZXR1cm4gUFRSX0VSUihuZmMtPm5hbmRfY2xrKTsKPiAgCj4gIAkvKiBp bml0IFNEX0VNTUNfQ0xPQ0sgdG8gc2FuZSBkZWZhdWx0cyB3L21pbiBjbG9jayByYXRlICovCj4g LQlyZWdtYXBfdXBkYXRlX2JpdHMobmZjLT5yZWdfY2xrLAo+IC0JCQkgICAwLCBDTEtfU0VMRUNU X05BTkQsIENMS19TRUxFQ1RfTkFORCk7Cj4gKwl3cml0ZWwoQ0xLX1NFTEVDVF9OQU5EIHwgcmVh ZGwobmZjLT5zZF9lbW1jX2Nsb2NrKSwKPiArCSAgICAgICBuZmMtPnNkX2VtbWNfY2xvY2spOwo+ ICAKPiAgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPmNvcmVfY2xrKTsKPiAgCWlmIChy ZXQpIHsKPiBAQCAtMTAzMCwyOSArMTA0MSwyMSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19jbGtf aW5pdChzdHJ1Y3QgbWVzb25fbmZjICpuZmMpCj4gIAkJZ290byBlcnJfZGV2aWNlX2NsazsKPiAg CX0KPiAgCj4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobmZjLT5waGFzZV90eCk7Cj4gKwly ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobmZjLT5uYW5kX2Nsayk7Cj4gIAlpZiAocmV0KSB7Cj4g LQkJZGV2X2VycihuZmMtPmRldiwgImZhaWxlZCB0byBlbmFibGUgVFggY2xvY2tcbiIpOwo+IC0J CWdvdG8gZXJyX3BoYXNlX3R4Owo+ICsJCWRldl9lcnIobmZjLT5kZXYsICJwcmUgZW5hYmxlIE5G QyBkaXZpZGVyIGZhaWxcbiIpOwo+ICsJCWdvdG8gZXJyX25hbmRfY2xrOwo+ICAJfQo+ICAKPiAt CXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShuZmMtPnBoYXNlX3J4KTsKPiAtCWlmIChyZXQpIHsK PiAtCQlkZXZfZXJyKG5mYy0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBSWCBjbG9ja1xuIik7Cj4g LQkJZ290byBlcnJfcGhhc2Vfcng7Cj4gLQl9Cj4gLQo+IC0JcmV0ID0gY2xrX3NldF9yYXRlKG5m Yy0+ZGV2aWNlX2NsaywgMjQwMDAwMDApOwo+ICsJcmV0ID0gY2xrX3NldF9yYXRlKG5mYy0+bmFu ZF9jbGssIDI0MDAwMDAwKTsKCklzIHRoaXMgcmVuYW1lIHJlYWxseSB1c2VmdWw/Cgo+ICAJaWYg KHJldCkKPiAtCQlnb3RvIGVycl9kaXNhYmxlX3J4Owo+ICsJCWdvdG8gZXJyX2Rpc2FibGVfY2xr Owo+ICAKPiAgCXJldHVybiAwOwo+ICAKPiAtZXJyX2Rpc2FibGVfcng6Cj4gLQljbGtfZGlzYWJs ZV91bnByZXBhcmUobmZjLT5waGFzZV9yeCk7Cj4gLWVycl9waGFzZV9yeDoKPiAtCWNsa19kaXNh YmxlX3VucHJlcGFyZShuZmMtPnBoYXNlX3R4KTsKPiAtZXJyX3BoYXNlX3R4Ogo+ICtlcnJfZGlz YWJsZV9jbGs6Cj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUobmZjLT5uYW5kX2Nsayk7Cj4gK2Vy cl9uYW5kX2NsazoKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmRldmljZV9jbGspOwo+ ICBlcnJfZGV2aWNlX2NsazoKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShuZmMtPmNvcmVfY2xr KTsKPiBAQCAtMTA2MSw4ICsxMDY0LDcgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfY2xrX2luaXQo c3RydWN0IG1lc29uX25mYyAqbmZjKQo+ICAKPiAgc3RhdGljIHZvaWQgbWVzb25fbmZjX2Rpc2Fi bGVfY2xrKHN0cnVjdCBtZXNvbl9uZmMgKm5mYykKPiAgewo+IC0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKG5mYy0+cGhhc2VfcngpOwo+IC0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+cGhhc2Vf dHgpOwo+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG5mYy0+bmFuZF9jbGspOwo+ICAJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKG5mYy0+ZGV2aWNlX2Nsayk7Cj4gIAljbGtfZGlzYWJsZV91bnByZXBh cmUobmZjLT5jb3JlX2Nsayk7Cj4gIH0KPiBAQCAtMTM3NCw3ICsxMzc2LDYgQEAgc3RhdGljIGlu dCBtZXNvbl9uZmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+ICAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCXN0cnVjdCBtZXNvbl9uZmMgKm5m YzsKPiAtCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ICAJaW50IHJldCwgaXJxOwo+ICAKPiAgCW5m YyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbmZjKSwgR0ZQX0tFUk5FTCk7Cj4gQEAgLTEz ODgsMjEgKzEzODksMTUgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgCW5hbmRfY29udHJvbGxlcl9pbml0KCZuZmMtPmNvbnRyb2xs ZXIpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJm5mYy0+Y2hpcHMpOwo+ICAJaW5pdF9jb21wbGV0aW9u KCZuZmMtPmNvbXBsZXRpb24pOwo+IC0KClBsZWFzZSBkb24ndCBtb2RpZnkgc3BhY2luZyBpbiB0 aGlzIGNvbW1pdC4KCj4gIAluZmMtPmRldiA9IGRldjsKPiAgCj4gLQlyZXMgPSBwbGF0Zm9ybV9n ZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+IC0JbmZjLT5yZWdfYmFzZSA9 IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKwluZmMtPnJlZ19iYXNlID0gZGV2 bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlX2J5bmFtZShwZGV2LCAibmZjIik7CgpUaGlzIGNo YW5nZSBzZWVtcyB1bnJlbGF0ZWQuCgo+ICAJaWYgKElTX0VSUihuZmMtPnJlZ19iYXNlKSkKPiAg CQlyZXR1cm4gUFRSX0VSUihuZmMtPnJlZ19iYXNlKTsKPiAgCj4gLQluZmMtPnJlZ19jbGsgPQo+ IC0JCXN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGUoZGV2LT5vZl9ub2RlLAo+IC0JCQkJ CQkiYW1sb2dpYyxtbWMtc3lzY29uIik7Cj4gLQlpZiAoSVNfRVJSKG5mYy0+cmVnX2NsaykpIHsK PiAtCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBsb29rdXAgY2xvY2sgYmFzZVxuIik7Cj4gLQkJ cmV0dXJuIFBUUl9FUlIobmZjLT5yZWdfY2xrKTsKPiAtCX0KPiArCW5mYy0+c2RfZW1tY19jbG9j ayA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZV9ieW5hbWUocGRldiwgImVtbWMiKTsK PiArCWlmIChJU19FUlIobmZjLT5zZF9lbW1jX2Nsb2NrKSkKPiArCQlyZXR1cm4gUFRSX0VSUihu ZmMtPnNkX2VtbWNfY2xvY2spOwoKV2hpbGUgSSBhZ3JlZSB0aGlzIGlzIG11Y2ggYmV0dGVyIHRo YW4gdGhlIHByZXZpb3VzIHNvbHV0aW9uLCB3ZSBjYW5ub3QKYnJlYWsgRFQgY29tcGF0aWJpbGl0 eSwgc28geW91IG5lZWQgdG8gdHJ5IGdldHRpbmcgdGhlIGVtbWMgY2xvY2ssIGJ1dAppZiBpdCBm YWlscyB5b3Ugc2hvdWxkIGZhbGxiYWNrIHRvIHRoZSByZWdtYXAgbG9va3VwLgoKPiAgCj4gIAlp cnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwo+ICAJaWYgKGlycSA8IDApCgoKVGhhbmtz LApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==