mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	Fixes e.g. SPI flash access on BCM6358/BCM6368. Transfers < 256 bytes are not affected. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 39265
		
			
				
	
	
		
			32 lines
		
	
	
		
			880 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			880 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 4d8fa9d3d1fe1d70fe7d59537acf49797f6010a1 Mon Sep 17 00:00:00 2001
 | |
| From: Jonas Gorski <jogo@openwrt.org>
 | |
| Date: Sun, 1 Dec 2013 16:19:46 +0100
 | |
| Subject: [PATCH 2/2] spi/bcm63xx: don't reject reads >= 256 bytes
 | |
| 
 | |
| The rx_tail register is only 8 bit wide, so it will wrap around
 | |
| after 256 read bytes. This makes it rather meaningless, so drop any
 | |
| usage of it to not treat reads over 256 as failed.
 | |
| 
 | |
| Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | |
| ---
 | |
|  drivers/spi/spi-bcm63xx.c | 8 +-------
 | |
|  1 file changed, 1 insertion(+), 7 deletions(-)
 | |
| 
 | |
| --- a/drivers/spi/spi-bcm63xx.c
 | |
| +++ b/drivers/spi/spi-bcm63xx.c
 | |
| @@ -214,13 +214,7 @@ static int bcm63xx_txrx_bufs(struct spi_
 | |
|  	if (!timeout)
 | |
|  		return -ETIMEDOUT;
 | |
|  
 | |
| -	/* read out all data */
 | |
| -	rx_tail = bcm_spi_readb(bs, SPI_RX_TAIL);
 | |
| -
 | |
| -	if (do_rx && rx_tail != len)
 | |
| -		return -EIO;
 | |
| -
 | |
| -	if (!rx_tail)
 | |
| +	if (!do_rx)
 | |
|  		return 0;
 | |
|  
 | |
|  	len = 0;
 |