| 
				
			 | 
			
			 | 
			@@ -1826,6 +1826,9 @@ bool SPIClass::transfer(const void *buf, void *retbuf, size_t count, EventRespon | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					event_responder.triggerEvent(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return true; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				// lets clear cache before we update sizes... | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if ((uint32_t)buf >= 0x20200000u)  arm_dcache_flush((uint8_t *)buf, count); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if ((uint32_t)retbuf >= 0x20200000u)  arm_dcache_delete(retbuf, count); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				// Now handle the cases where the count > then how many we can output in one DMA request | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (count > MAX_DMA_COUNT) { | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -1841,7 +1844,6 @@ bool SPIClass::transfer(const void *buf, void *retbuf, size_t count, EventRespon | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (buf) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaTX->sourceBuffer((uint8_t*)write_data, count);   | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaTX->TCD->SLAST = 0;	// Finish with it pointing to next location | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if ((uint32_t)write_data >= 0x20200000u)  arm_dcache_flush(write_data, count); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} else { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaTX->source((uint8_t&)_transferWriteFill);   // maybe have setable value | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					DMAChanneltransferCount(_dmaTX, count); | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -1851,7 +1853,6 @@ bool SPIClass::transfer(const void *buf, void *retbuf, size_t count, EventRespon | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaRX->TCD->ATTR_SRC = 0;		//Make sure set for 8 bit mode... | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaRX->destinationBuffer((uint8_t*)retbuf, count); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaRX->TCD->DLASTSGA = 0;		// At end point after our bufffer | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if ((uint32_t)retbuf >= 0x20200000u)  arm_dcache_delete(retbuf, count); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} else { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						// Write  only mode | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					_dmaRX->TCD->ATTR_SRC = 0;		//Make sure set for 8 bit mode... |