mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/drivers/mtd/devices/Kconfig
 | |
| +++ b/drivers/mtd/devices/Kconfig
 | |
| @@ -102,6 +102,14 @@ config MTD_SPEAR_SMI
 | |
|  	help
 | |
|  	  This enable SNOR support on SPEAR platforms using SMI controller
 | |
|  
 | |
| +config M25PXX_PREFER_SMALL_SECTOR_ERASE
 | |
| +	bool "Prefer small sector erase"
 | |
| +	depends on MTD_M25P80
 | |
| +	default y
 | |
| +	help
 | |
| +	  This option enables use of the small erase sectors if that is
 | |
| +	  supported by the flash chip.
 | |
| +
 | |
|  config MTD_SST25L
 | |
|  	tristate "Support SST25L (non JEDEC) SPI Flash chips"
 | |
|  	depends on SPI_MASTER
 | |
| --- a/drivers/mtd/devices/m25p80.c
 | |
| +++ b/drivers/mtd/devices/m25p80.c
 | |
| @@ -90,6 +90,12 @@
 | |
|  
 | |
|  #define JEDEC_MFR(_jedec_id)	((_jedec_id) >> 16)
 | |
|  
 | |
| +#ifdef CONFIG_M25PXX_PREFER_SMALL_SECTOR_ERASE
 | |
| +#define PREFER_SMALL_SECTOR_ERASE 1
 | |
| +#else
 | |
| +#define PREFER_SMALL_SECTOR_ERASE 0
 | |
| +#endif
 | |
| +
 | |
|  /****************************************************************************/
 | |
|  
 | |
|  enum read_type {
 | |
| @@ -1192,7 +1198,7 @@ static int m25p_probe(struct spi_device
 | |
|  		flash->mtd._write = m25p80_write;
 | |
|  
 | |
|  	/* prefer "small sector" erase if possible */
 | |
| -	if (info->flags & SECT_4K) {
 | |
| +	if (PREFER_SMALL_SECTOR_ERASE && (info->flags & SECT_4K)) {
 | |
|  		flash->erase_opcode = OPCODE_BE_4K;
 | |
|  		flash->mtd.erasesize = 4096;
 | |
|  	} else if (info->flags & SECT_4K_PMC) {
 |