mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	spi: core: Use master->max_speed_hz as transfer speed when xfer->speed_hz > master->max_speed_hz
When xfer->speed_hz is greater than master->max_speed_hz, it's generally safe to use master->max_speed_hz as transfer speed. Thus use master->max_speed_hz as transfer speed rather than return error when xfer->speed_hz > master->max_speed_hz. Signed-off-by: Axel Lin <axel.lin@ingics.com> Tested-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
		
							parent
							
								
									6ea312936d
								
							
						
					
					
						commit
						a6f87fad7b
					
				
					 1 changed files with 6 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -1653,12 +1653,13 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)
 | 
			
		|||
		message->frame_length += xfer->len;
 | 
			
		||||
		if (!xfer->bits_per_word)
 | 
			
		||||
			xfer->bits_per_word = spi->bits_per_word;
 | 
			
		||||
		if (!xfer->speed_hz) {
 | 
			
		||||
 | 
			
		||||
		if (!xfer->speed_hz)
 | 
			
		||||
			xfer->speed_hz = spi->max_speed_hz;
 | 
			
		||||
			if (master->max_speed_hz &&
 | 
			
		||||
			    xfer->speed_hz > master->max_speed_hz)
 | 
			
		||||
				xfer->speed_hz = master->max_speed_hz;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (master->max_speed_hz &&
 | 
			
		||||
		    xfer->speed_hz > master->max_speed_hz)
 | 
			
		||||
			xfer->speed_hz = master->max_speed_hz;
 | 
			
		||||
 | 
			
		||||
		if (master->bits_per_word_mask) {
 | 
			
		||||
			/* Only 32 bits fit in the mask */
 | 
			
		||||
| 
						 | 
				
			
			@ -1687,9 +1688,6 @@ static int __spi_validate(struct spi_device *spi, struct spi_message *message)
 | 
			
		|||
		if (xfer->speed_hz && master->min_speed_hz &&
 | 
			
		||||
		    xfer->speed_hz < master->min_speed_hz)
 | 
			
		||||
			return -EINVAL;
 | 
			
		||||
		if (xfer->speed_hz && master->max_speed_hz &&
 | 
			
		||||
		    xfer->speed_hz > master->max_speed_hz)
 | 
			
		||||
			return -EINVAL;
 | 
			
		||||
 | 
			
		||||
		if (xfer->tx_buf && !xfer->tx_nbits)
 | 
			
		||||
			xfer->tx_nbits = SPI_NBITS_SINGLE;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue