dm: spi: Avoid setting the speed with every transfer
Only set the speed if it has changed from last time. Since the speed will be 0 when the device is probed it will always be changed on the first transfer after the device is probed. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									172a31bf87
								
							
						
					
					
						commit
						60e2809a84
					
				|  | @ -63,9 +63,12 @@ int spi_claim_bus(struct spi_slave *slave) | ||||||
| 	} | 	} | ||||||
| 	if (!speed) | 	if (!speed) | ||||||
| 		speed = 100000; | 		speed = 100000; | ||||||
| 	ret = spi_set_speed_mode(bus, speed, slave->mode); | 	if (speed != slave->speed) { | ||||||
| 	if (ret) | 		ret = spi_set_speed_mode(bus, speed, slave->mode); | ||||||
| 		return ret; | 		if (ret) | ||||||
|  | 			return ret; | ||||||
|  | 		slave->speed = speed; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	return ops->claim_bus ? ops->claim_bus(dev) : 0; | 	return ops->claim_bus ? ops->claim_bus(dev) : 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -100,6 +100,8 @@ struct dm_spi_slave_platdata { | ||||||
|  * @dev:		SPI slave device |  * @dev:		SPI slave device | ||||||
|  * @max_hz:		Maximum speed for this slave |  * @max_hz:		Maximum speed for this slave | ||||||
|  * @mode:		SPI mode to use for this slave (see SPI mode flags) |  * @mode:		SPI mode to use for this slave (see SPI mode flags) | ||||||
|  |  * @speed:		Current bus speed. This is 0 until the bus is first | ||||||
|  |  *			claimed. | ||||||
|  * @bus:		ID of the bus that the slave is attached to. For |  * @bus:		ID of the bus that the slave is attached to. For | ||||||
|  *			driver model this is the sequence number of the SPI |  *			driver model this is the sequence number of the SPI | ||||||
|  *			bus (bus->seq) so does not need to be stored |  *			bus (bus->seq) so does not need to be stored | ||||||
|  | @ -117,6 +119,7 @@ struct spi_slave { | ||||||
| #ifdef CONFIG_DM_SPI | #ifdef CONFIG_DM_SPI | ||||||
| 	struct udevice *dev;	/* struct spi_slave is dev->parentdata */ | 	struct udevice *dev;	/* struct spi_slave is dev->parentdata */ | ||||||
| 	uint max_hz; | 	uint max_hz; | ||||||
|  | 	uint speed; | ||||||
| 	uint mode; | 	uint mode; | ||||||
| #else | #else | ||||||
| 	unsigned int bus; | 	unsigned int bus; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue