1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- From f4cf4e5db331a5ce69e3f0b21d322cac0f4e4b5d Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <[email protected]>
- Date: Mon, 23 Oct 2023 12:27:59 +0200
- Subject: [PATCH] Revert "nvmem: add new config option"
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- This reverts commit 517f14d9cf3533d5ab4fded195ab6f80a92e378f.
- Config option "no_of_node" is no longer needed since adding a more
- explicit and targeted option "add_legacy_fixed_of_cells".
- That "no_of_node" config option was needed *earlier* to help mtd's case.
- DT nodes of MTD partitions (that are also NVMEM devices) may contain
- subnodes. Those SHOULD NOT be treated as NVMEM fixed cells.
- To prevent NVMEM core code from parsing subnodes a "no_of_node" option
- was added (and set to true in mtd) to make for_each_child_of_node() in
- NVMEM a no-op. That was a bit hacky because it was messing with
- "of_node" pointer to achieve some side-effect.
- With the introduction of "add_legacy_fixed_of_cells" config option
- things got more explicit. MTD subsystem simply tells NVMEM when to look
- for fixed cells and there is no need to hack "of_node" pointer anymore.
- Signed-off-by: Rafał Miłecki <[email protected]>
- Reviewed-by: Miquel Raynal <[email protected]>
- Signed-off-by: Srinivas Kandagatla <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- Signed-off-by: Greg Kroah-Hartman <[email protected]>
- ---
- drivers/mtd/mtdcore.c | 1 -
- drivers/nvmem/core.c | 2 +-
- include/linux/nvmem-provider.h | 2 --
- 3 files changed, 1 insertion(+), 4 deletions(-)
- --- a/drivers/mtd/mtdcore.c
- +++ b/drivers/mtd/mtdcore.c
- @@ -560,7 +560,6 @@ static int mtd_nvmem_add(struct mtd_info
- 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;
-
- mtd->nvmem = nvmem_register(&config);
- --- a/drivers/nvmem/core.c
- +++ b/drivers/nvmem/core.c
- @@ -941,7 +941,7 @@ struct nvmem_device *nvmem_register(cons
- nvmem->nkeepout = config->nkeepout;
- if (config->of_node)
- nvmem->dev.of_node = config->of_node;
- - else if (!config->no_of_node)
- + else
- nvmem->dev.of_node = config->dev->of_node;
-
- switch (config->id) {
- --- a/include/linux/nvmem-provider.h
- +++ b/include/linux/nvmem-provider.h
- @@ -89,7 +89,6 @@ struct nvmem_cell_info {
- * @read_only: Device is read-only.
- * @root_only: Device is accessibly to root only.
- * @of_node: If given, this will be used instead of the parent's of_node.
- - * @no_of_node: Device should not use the parent's of_node even if it's !NULL.
- * @reg_read: Callback to read data.
- * @reg_write: Callback to write data.
- * @size: Device size.
- @@ -122,7 +121,6 @@ struct nvmem_config {
- bool ignore_wp;
- struct nvmem_layout *layout;
- struct device_node *of_node;
- - bool no_of_node;
- nvmem_reg_read_t reg_read;
- nvmem_reg_write_t reg_write;
- int size;
|