diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mtd/cfi_flash.c | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index dd394a81f..0909fe715 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -744,8 +744,12 @@ static void flash_add_byte (flash_info_t * info, cfiword_t * cword, uchar c)  static flash_sect_t find_sector (flash_info_t * info, ulong addr)  {  	static flash_sect_t saved_sector = 0; /* previously found sector */ +	static flash_info_t *saved_info = 0; /* previously used flash bank */  	flash_sect_t sector = saved_sector; +	if ((info != saved_info) || (sector >= info->sector_count)) +		sector = 0; +  	while ((info->start[sector] < addr)  			&& (sector < info->sector_count - 1))  		sector++; @@ -757,6 +761,7 @@ static flash_sect_t find_sector (flash_info_t * info, ulong addr)  		sector--;  	saved_sector = sector; +	saved_info = info;  	return sector;  } |