[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e451d814-2d10-6cb6-3402-6d1580ddbce2@linaro.org>
Date: Fri, 18 Feb 2022 13:25:00 +0000
From: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
To: Christophe Kerello <christophe.kerello@...s.st.com>,
miquel.raynal@...tlin.com, richard@....at, vigneshr@...com,
robh+dt@...nel.org, p.yadav@...com
Cc: linux-mtd@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-stm32@...md-mailman.stormreply.com,
devicetree@...r.kernel.org, chenshumin86@...a.com,
stable@...r.kernel.org
Subject: Re: [PATCH v3 4/4] mtd: core: Fix a conflict between MTD and NVMEM on
wp-gpios property
On 17/02/2022 14:47, Christophe Kerello wrote:
> Wp-gpios property can be used on NVMEM nodes and the same property can
> be also used on MTD NAND nodes. In case of the wp-gpios property is
> defined at NAND level node, the GPIO management is done at NAND driver
> level. Write protect is disabled when the driver is probed or resumed
> and is enabled when the driver is released or suspended.
>
> When no partitions are defined in the NAND DT node, then the NAND DT node
> will be passed to NVMEM framework. If wp-gpios property is defined in
> this node, the GPIO resource is taken twice and the NAND controller
> driver fails to probe.
>
> A new Boolean flag named ignore_wp has been added in nvmem_config.
> In case ignore_wp is set, it means that the GPIO is handled by the
> provider. Lets set this flag in MTD layer to avoid the conflict on
> wp_gpios property.
>
> Fixes: 2a127da461a9 ("nvmem: add support for the write-protect pin")
> Signed-off-by: Christophe Kerello <christophe.kerello@...s.st.com>
> Cc: stable@...r.kernel.org
Applied thanks,
--srini
> ---
> Changes in v3:
> - add a fixes tag
> - rename skip_wp_gpio by ignore_wp in nvmen_config.
>
> drivers/mtd/mtdcore.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> index 70f492dce158..eef87b28d6c8 100644
> --- a/drivers/mtd/mtdcore.c
> +++ b/drivers/mtd/mtdcore.c
> @@ -546,6 +546,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd)
> config.stride = 1;
> config.read_only = true;
> config.root_only = true;
> + config.ignore_wp = true;
> config.no_of_node = !of_device_is_compatible(node, "nvmem-cells");
> config.priv = mtd;
>
> @@ -833,6 +834,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
> config.owner = THIS_MODULE;
> config.type = NVMEM_TYPE_OTP;
> config.root_only = true;
> + config.ignore_wp = true;
> config.reg_read = reg_read;
> config.size = size;
> config.of_node = np;
Powered by blists - more mailing lists