mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From: Felix Fietkau <nbd@nbd.name>
 | |
| Date: Fri, 23 Feb 2018 17:12:16 +0100
 | |
| Subject: [PATCH] mtd: m25p80: allow fallback from spi_flash_read to regular
 | |
|  SPI transfer
 | |
| 
 | |
| Some flash controllers, e.g. on the ath79 platform can support a fast
 | |
| flash read via memory mapping, but only if the flash chip is in
 | |
| 3-byte address mode.
 | |
| 
 | |
| Since spi_flash_read_supported does not have access to the same data as
 | |
| spi_flash_read, the driver can't detect an unsupported call until m25p80
 | |
| has decided to use spi_flash_read.
 | |
| 
 | |
| Allow the driver to indicate a fallback to a regular SPI transfer by
 | |
| returning -EOPNOTSUPP
 | |
| 
 | |
| Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | |
| ---
 | |
| 
 | |
| --- a/drivers/mtd/devices/m25p80.c
 | |
| +++ b/drivers/mtd/devices/m25p80.c
 | |
| @@ -155,9 +155,11 @@ static ssize_t m25p80_read(struct spi_no
 | |
|  		msg.data_nbits = m25p80_rx_nbits(nor);
 | |
|  
 | |
|  		ret = spi_flash_read(spi, &msg);
 | |
| -		if (ret < 0)
 | |
| -			return ret;
 | |
| -		return msg.retlen;
 | |
| +		if (ret != -EOPNOTSUPP) {
 | |
| +			if (ret < 0)
 | |
| +				return ret;
 | |
| +			return msg.retlen;
 | |
| +		}
 | |
|  	}
 | |
|  
 | |
|  	spi_message_init(&m);
 |