@@ -302,6 +302,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
* and it's up to the individual driver to perform any validation.
* @min_speed_hz: Lowest supported transfer speed
* @max_speed_hz: Highest supported transfer speed
+ * @max_msg_size: maximum supported message size
* @flags: other constraints relevant to this driver
* @bus_lock_spinlock: spinlock for SPI bus locking
* @bus_lock_mutex: mutex for SPI bus locking
@@ -417,6 +418,9 @@ struct spi_master {
u32 min_speed_hz;
u32 max_speed_hz;
+ /* maximum message size */
+ size_t max_msg_size;
+
/* other constraints relevant to this driver */
u16 flags;
#define SPI_MASTER_HALF_DUPLEX BIT(0) /* can't do full duplex */
@@ -556,6 +560,11 @@ static inline void spi_master_put(struct spi_master *master)
put_device(&master->dev);
}
+static inline size_t spi_master_get_max_msg_size(struct spi_master *master)
+{
+ return master->max_msg_size;
+}
+
/* PM calls that need to be issued by the driver */
extern int spi_master_suspend(struct spi_master *master);
extern int spi_master_resume(struct spi_master *master);
Add a member to spi_master allowing to better handle SPI chips with a message size HW limit. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- v2: add accessor include/linux/spi/spi.h | 9 +++++++++ 1 file changed, 9 insertions(+)