]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/linux/spi/spi.h
spi: Split bus and I/O locking
[linux.git] / include / linux / spi / spi.h
index 7b53af4ba5f8c8272fa1ba2bb9c68dbd28fe5a17..072cb2aa24139981b0459eaa8f01d28406b384b4 100644 (file)
@@ -312,8 +312,9 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
  * @flags: other constraints relevant to this driver
  * @max_transfer_size: function that returns the max transfer size for
  *     a &spi_device; may be %NULL, so the default %SIZE_MAX will be used.
+ * @io_mutex: mutex for physical bus access
  * @bus_lock_spinlock: spinlock for SPI bus locking
- * @bus_lock_mutex: mutex for SPI bus locking
+ * @bus_lock_mutex: mutex for exclusion of multiple callers
  * @bus_lock_flag: indicates that the SPI bus is locked for exclusive use
  * @setup: updates the device mode and clocking records used by a
  *     device's SPI controller; protocol code may call this.  This
@@ -446,6 +447,9 @@ struct spi_master {
         */
        size_t (*max_transfer_size)(struct spi_device *spi);
 
+       /* I/O mutex */
+       struct mutex            io_mutex;
+
        /* lock and mutex for SPI bus locking */
        spinlock_t              bus_lock_spinlock;
        struct mutex            bus_lock_mutex;