diff options
Diffstat (limited to 'drivers/mtd/cfi_flash.c')
| -rw-r--r-- | drivers/mtd/cfi_flash.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index 12647ef98..479075ccb 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -158,13 +158,13 @@ static uint flash_offset_cfi[2] = { FLASH_OFFSET_CFI, FLASH_OFFSET_CFI_ALT };  /* use CFG_MAX_FLASH_BANKS_DETECT if defined */  #ifdef CFG_MAX_FLASH_BANKS_DETECT -static ulong bank_base[CFG_MAX_FLASH_BANKS_DETECT] = CFG_FLASH_BANKS_LIST; -flash_info_t flash_info[CFG_MAX_FLASH_BANKS_DETECT];	/* FLASH chips info */ +# define CFI_MAX_FLASH_BANKS	CFG_MAX_FLASH_BANKS_DETECT  #else -static ulong bank_base[CFG_MAX_FLASH_BANKS] = CFG_FLASH_BANKS_LIST; -flash_info_t flash_info[CFG_MAX_FLASH_BANKS];		/* FLASH chips info */ +# define CFI_MAX_FLASH_BANKS	CFG_MAX_FLASH_BANKS  #endif +flash_info_t flash_info[CFI_MAX_FLASH_BANKS];	/* FLASH chips info */ +  /*   * Check if chip width is defined. If not, start detecting with 8bit.   */ @@ -1912,12 +1912,14 @@ unsigned long flash_init (void)  	char *s = getenv("unlock");  #endif +#define BANK_BASE(i)	(((unsigned long [CFI_MAX_FLASH_BANKS])CFG_FLASH_BANKS_LIST)[i]) +  	/* Init: no FLASHes known */  	for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) {  		flash_info[i].flash_id = FLASH_UNKNOWN; -		if (!flash_detect_legacy (bank_base[i], i)) -			flash_get_size (bank_base[i], i); +		if (!flash_detect_legacy (BANK_BASE(i), i)) +			flash_get_size (BANK_BASE(i), i);  		size += flash_info[i].size;  		if (flash_info[i].flash_id == FLASH_UNKNOWN) {  #ifndef CFG_FLASH_QUIET_TEST |