mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From f4cf4e5db331a5ce69e3f0b21d322cac0f4e4b5d Mon Sep 17 00:00:00 2001
 | |
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | |
| 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 <rafal@milecki.pl>
 | |
| Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
 | |
| Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 | |
| Link: https://lore.kernel.org/r/20231023102759.31529-1-zajec5@gmail.com
 | |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | |
| ---
 | |
|  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
 | |
| @@ -531,7 +531,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
 | |
| @@ -936,7 +936,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;
 |