 946bfd59a6
			
		
	
	946bfd59a6
	
	
	
		
			
			Refactoring of bcm47xx_nvram driver. It's used by bcm47xx and bcm53xx.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 1c48eee5b2)
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From fb009cbdd0693bd633f11e99526617b3d392cfad Mon Sep 17 00:00:00 2001
 | |
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | |
| Date: Mon, 8 Mar 2021 10:03:16 +0100
 | |
| Subject: [PATCH] firmware: bcm47xx_nvram: rename finding function and its
 | |
|  variables
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| 1. Use "bcm47xx_" function name prefix for consistency
 | |
| 2. It takes flash start as argument so s/iobase/flash_start/
 | |
| 3. "off" was used for finding flash end so just call it "flash_size"
 | |
| 
 | |
| Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | |
| Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
 | |
| ---
 | |
|  drivers/firmware/broadcom/bcm47xx_nvram.c | 24 ++++++++++++-----------
 | |
|  1 file changed, 13 insertions(+), 11 deletions(-)
 | |
| 
 | |
| --- a/drivers/firmware/broadcom/bcm47xx_nvram.c
 | |
| +++ b/drivers/firmware/broadcom/bcm47xx_nvram.c
 | |
| @@ -48,11 +48,13 @@ static u32 find_nvram_size(void __iomem
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| -/* Probe for NVRAM header */
 | |
| -static int nvram_find_and_copy(void __iomem *iobase, u32 lim)
 | |
| +/**
 | |
| + * bcm47xx_nvram_find_and_copy - find NVRAM on flash mapping & copy it
 | |
| + */
 | |
| +static int bcm47xx_nvram_find_and_copy(void __iomem *flash_start, size_t res_size)
 | |
|  {
 | |
|  	struct nvram_header __iomem *header;
 | |
| -	u32 off;
 | |
| +	size_t flash_size;
 | |
|  	u32 size;
 | |
|  
 | |
|  	if (nvram_len) {
 | |
| @@ -61,25 +63,25 @@ static int nvram_find_and_copy(void __io
 | |
|  	}
 | |
|  
 | |
|  	/* TODO: when nvram is on nand flash check for bad blocks first. */
 | |
| -	off = FLASH_MIN;
 | |
| -	while (off <= lim) {
 | |
| +	flash_size = FLASH_MIN;
 | |
| +	while (flash_size <= res_size) {
 | |
|  		/* Windowed flash access */
 | |
| -		size = find_nvram_size(iobase + off);
 | |
| +		size = find_nvram_size(flash_start + flash_size);
 | |
|  		if (size) {
 | |
| -			header = (struct nvram_header *)(iobase + off - size);
 | |
| +			header = (struct nvram_header *)(flash_start + flash_size - size);
 | |
|  			goto found;
 | |
|  		}
 | |
| -		off <<= 1;
 | |
| +		flash_size <<= 1;
 | |
|  	}
 | |
|  
 | |
|  	/* Try embedded NVRAM at 4 KB and 1 KB as last resorts */
 | |
| -	header = (struct nvram_header *)(iobase + 4096);
 | |
| +	header = (struct nvram_header *)(flash_start + 4096);
 | |
|  	if (header->magic == NVRAM_MAGIC) {
 | |
|  		size = NVRAM_SPACE;
 | |
|  		goto found;
 | |
|  	}
 | |
|  
 | |
| -	header = (struct nvram_header *)(iobase + 1024);
 | |
| +	header = (struct nvram_header *)(flash_start + 1024);
 | |
|  	if (header->magic == NVRAM_MAGIC) {
 | |
|  		size = NVRAM_SPACE;
 | |
|  		goto found;
 | |
| @@ -124,7 +126,7 @@ int bcm47xx_nvram_init_from_mem(u32 base
 | |
|  	if (!iobase)
 | |
|  		return -ENOMEM;
 | |
|  
 | |
| -	err = nvram_find_and_copy(iobase, lim);
 | |
| +	err = bcm47xx_nvram_find_and_copy(iobase, lim);
 | |
|  
 | |
|  	iounmap(iobase);
 | |
|  
 |