spi_master
Regular
4.4
: ✅struct spi_master {
struct device dev;
struct list_head list;
s16 bus_num;
u16 num_chipselect;
u16 dma_alignment;
u16 mode_bits;
u32 bits_per_word_mask;
u32 min_speed_hz;
u32 max_speed_hz;
u16 flags;
spinlock_t bus_lock_spinlock;
struct mutex bus_lock_mutex;
bool bus_lock_flag;
int (*setup)(struct spi_device *);
int (*transfer)(struct spi_device *, struct spi_message *);
void (*cleanup)(struct spi_device *);
bool (*can_dma)(struct spi_master *, struct spi_device *, struct spi_transfer *);
bool queued;
struct kthread_worker kworker;
struct task_struct *kworker_task;
struct kthread_work pump_messages;
spinlock_t queue_lock;
struct list_head queue;
struct spi_message *cur_msg;
bool idling;
bool busy;
bool running;
bool rt;
bool auto_runtime_pm;
bool cur_msg_prepared;
bool cur_msg_mapped;
struct completion xfer_completion;
size_t max_dma_len;
int (*prepare_transfer_hardware)(struct spi_master *);
int (*transfer_one_message)(struct spi_master *, struct spi_message *);
int (*unprepare_transfer_hardware)(struct spi_master *);
int (*prepare_message)(struct spi_master *, struct spi_message *);
int (*unprepare_message)(struct spi_master *, struct spi_message *);
void (*set_cs)(struct spi_device *, bool);
int (*transfer_one)(struct spi_master *, struct spi_device *, struct spi_transfer *);
void (*handle_err)(struct spi_master *, struct spi_message *);
int *cs_gpios;
struct spi_statistics statistics;
struct dma_chan *dma_tx;
struct dma_chan *dma_rx;
void *dummy_rx;
void *dummy_tx;
};
4.8
: ✅struct spi_master {
struct device dev;
struct list_head list;
s16 bus_num;
u16 num_chipselect;
u16 dma_alignment;
u16 mode_bits;
u32 bits_per_word_mask;
u32 min_speed_hz;
u32 max_speed_hz;
u16 flags;
size_t (*max_transfer_size)(struct spi_device *);
struct mutex io_mutex;
spinlock_t bus_lock_spinlock;
struct mutex bus_lock_mutex;
bool bus_lock_flag;
int (*setup)(struct spi_device *);
int (*transfer)(struct spi_device *, struct spi_message *);
void (*cleanup)(struct spi_device *);
bool (*can_dma)(struct spi_master *, struct spi_device *, struct spi_transfer *);
bool queued;
struct kthread_worker kworker;
struct task_struct *kworker_task;
struct kthread_work pump_messages;
spinlock_t queue_lock;
struct list_head queue;
struct spi_message *cur_msg;
bool idling;
bool busy;
bool running;
bool rt;
bool auto_runtime_pm;
bool cur_msg_prepared;
bool cur_msg_mapped;
struct completion xfer_completion;
size_t max_dma_len;
int (*prepare_transfer_hardware)(struct spi_master *);
int (*transfer_one_message)(struct spi_master *, struct spi_message *);
int (*unprepare_transfer_hardware)(struct spi_master *);
int (*prepare_message)(struct spi_master *, struct spi_message *);
int (*unprepare_message)(struct spi_master *, struct spi_message *);
int (*spi_flash_read)(struct spi_device *, struct spi_flash_read_message *);
bool (*flash_read_supported)(struct spi_device *);
void (*set_cs)(struct spi_device *, bool);
int (*transfer_one)(struct spi_master *, struct spi_device *, struct spi_transfer *);
void (*handle_err)(struct spi_master *, struct spi_message *);
int *cs_gpios;
struct spi_statistics statistics;
struct dma_chan *dma_tx;
struct dma_chan *dma_rx;
void *dummy_rx;
void *dummy_tx;
int (*fw_translate_cs)(struct spi_master *, unsigned int);
};
4.10
: ✅struct spi_master {
struct device dev;
struct list_head list;
s16 bus_num;
u16 num_chipselect;
u16 dma_alignment;
u16 mode_bits;
u32 bits_per_word_mask;
u32 min_speed_hz;
u32 max_speed_hz;
u16 flags;
size_t (*max_transfer_size)(struct spi_device *);
size_t (*max_message_size)(struct spi_device *);
struct mutex io_mutex;
spinlock_t bus_lock_spinlock;
struct mutex bus_lock_mutex;
bool bus_lock_flag;
int (*setup)(struct spi_device *);
int (*transfer)(struct spi_device *, struct spi_message *);
void (*cleanup)(struct spi_device *);
bool (*can_dma)(struct spi_master *, struct spi_device *, struct spi_transfer *);
bool queued;
struct kthread_worker kworker;
struct task_struct *kworker_task;
struct kthread_work pump_messages;
spinlock_t queue_lock;
struct list_head queue;
struct spi_message *cur_msg;
bool idling;
bool busy;
bool running;
bool rt;
bool auto_runtime_pm;
bool cur_msg_prepared;
bool cur_msg_mapped;
struct completion xfer_completion;
size_t max_dma_len;
int (*prepare_transfer_hardware)(struct spi_master *);
int (*transfer_one_message)(struct spi_master *, struct spi_message *);
int (*unprepare_transfer_hardware)(struct spi_master *);
int (*prepare_message)(struct spi_master *, struct spi_message *);
int (*unprepare_message)(struct spi_master *, struct spi_message *);
int (*spi_flash_read)(struct spi_device *, struct spi_flash_read_message *);
bool (*flash_read_supported)(struct spi_device *);
void (*set_cs)(struct spi_device *, bool);
int (*transfer_one)(struct spi_master *, struct spi_device *, struct spi_transfer *);
void (*handle_err)(struct spi_master *, struct spi_message *);
int *cs_gpios;
struct spi_statistics statistics;
struct dma_chan *dma_tx;
struct dma_chan *dma_rx;
void *dummy_rx;
void *dummy_tx;
int (*fw_translate_cs)(struct spi_master *, unsigned int);
};
4.13
: Absent ⚠️
4.15
: Absent ⚠️
4.18
: Absent ⚠️
5.0
: Absent ⚠️
5.3
: Absent ⚠️
5.4
: Absent ⚠️
5.8
: Absent ⚠️
5.11
: Absent ⚠️
5.13
: Absent ⚠️
5.15
: Absent ⚠️
5.19
: Absent ⚠️
6.2
: Absent ⚠️
6.5
: Absent ⚠️
6.8
: Absent ⚠️
arm64
: Absent ⚠️
armhf
: Absent ⚠️
ppc64el
: Absent ⚠️
riscv64
: Absent ⚠️
aws
: Absent ⚠️
azure
: Absent ⚠️
gcp
: Absent ⚠️
lowlatency
: Absent ⚠️
Regular
4.4
and 4.8
⚠️size_t (*max_transfer_size)(struct spi_device *)
struct mutex io_mutex
int (*spi_flash_read)(struct spi_device *, struct spi_flash_read_message *)
bool (*flash_read_supported)(struct spi_device *)
int (*fw_translate_cs)(struct spi_master *, unsigned int)
4.8
and 4.10
⚠️size_t (*max_message_size)(struct spi_device *)