Message ID | 20231023102759.31529-1-zajec5@gmail.com |
---|---|
State | New |
Headers | show |
Series | [reworded] Revert "nvmem: add new config option" | expand |
On Mon, Oct 23, 2023 at 12:27:59PM +0200, Rafał Miłecki wrote: > From: Rafał Miłecki <rafal@milecki.pl> > > 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 <rafal@milecki.pl> > Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > --- > Greg: I reworded this PATCH's commit message. It's hopefully clear now > that this revert is OK only with the "add_legacy_fixed_of_cells". Much nicer, now applied, thanks! greg k-h
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 320d8ad2babe..bb0759ca12f1 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -560,7 +560,6 @@ static int mtd_nvmem_add(struct mtd_info *mtd) 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); diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 2710943f53c4..bf42b7e826db 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -935,7 +935,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) 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) { diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 1b81adebdb8b..e3930835235b 100644 --- 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;