kernel: bump 5.10 to 5.10.168
[openwrt/openwrt.git] / target / linux / generic / backport-5.10 / 807-v5.17-0003-nvmem-core-Fix-a-conflict-between-MTD-and-NVMEM-on-w.patch
diff --git a/target/linux/generic/backport-5.10/807-v5.17-0003-nvmem-core-Fix-a-conflict-between-MTD-and-NVMEM-on-w.patch b/target/linux/generic/backport-5.10/807-v5.17-0003-nvmem-core-Fix-a-conflict-between-MTD-and-NVMEM-on-w.patch
deleted file mode 100644 (file)
index a9ef3e2..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-From f6c052afe6f802d87c74153b7a57c43b2e9faf07 Mon Sep 17 00:00:00 2001
-From: Christophe Kerello <christophe.kerello@foss.st.com>
-Date: Sun, 20 Feb 2022 15:14:31 +0000
-Subject: [PATCH] nvmem: core: Fix a conflict between MTD and NVMEM on wp-gpios
- property
-
-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.
-
-It would be possible to set config->wp_gpio at MTD level before calling
-nvmem_register function but NVMEM framework will toggle this GPIO on
-each write when this GPIO should only be controlled at NAND level driver
-to ensure that the Write Protect has not been enabled.
-
-A way to fix this conflict is to add a new boolean flag in nvmem_config
-named ignore_wp. In case ignore_wp is set, the GPIO resource will
-be managed by the provider.
-
-Fixes: 2a127da461a9 ("nvmem: add support for the write-protect pin")
-Cc: stable@vger.kernel.org
-Signed-off-by: Christophe Kerello <christophe.kerello@foss.st.com>
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-Link: https://lore.kernel.org/r/20220220151432.16605-2-srinivas.kandagatla@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nvmem/core.c           | 2 +-
- include/linux/nvmem-provider.h | 4 +++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/nvmem/core.c
-+++ b/drivers/nvmem/core.c
-@@ -771,7 +771,7 @@ struct nvmem_device *nvmem_register(cons
-       if (config->wp_gpio)
-               nvmem->wp_gpio = config->wp_gpio;
--      else
-+      else if (!config->ignore_wp)
-               nvmem->wp_gpio = gpiod_get_optional(config->dev, "wp",
-                                                   GPIOD_OUT_HIGH);
-       if (IS_ERR(nvmem->wp_gpio)) {
---- a/include/linux/nvmem-provider.h
-+++ b/include/linux/nvmem-provider.h
-@@ -70,7 +70,8 @@ struct nvmem_keepout {
-  * @word_size:        Minimum read/write access granularity.
-  * @stride:   Minimum read/write access stride.
-  * @priv:     User context passed to read/write callbacks.
-- * @wp-gpio:   Write protect pin
-+ * @wp-gpio:  Write protect pin
-+ * @ignore_wp:  Write Protect pin is managed by the provider.
-  *
-  * Note: A default "nvmem<id>" name will be assigned to the device if
-  * no name is specified in its configuration. In such case "<id>" is
-@@ -92,6 +93,7 @@ struct nvmem_config {
-       enum nvmem_type         type;
-       bool                    read_only;
-       bool                    root_only;
-+      bool                    ignore_wp;
-       struct device_node      *of_node;
-       bool                    no_of_node;
-       nvmem_reg_read_t        reg_read;