stm32_spi_can_dma(9)
π stm32_spi_can_dma(9) π
Okay bestie, welcome to the Kernel API Manual β this one's a little kernel function called stm32_spi_can_dma, and honestly? It's giving "tiny gatekeeper with one job." Let's get into it π
β¨ NAME β¨
stm32_spi_can_dma β literally just: determine if the transfer is eligible for DMA use π«
πΈ SYNOPSIS πΈ
bool stm32_spi_can_dma (struct spi_controller *ctrl , struct spi_device
*spi_dev , struct spi_transfer *transfer );
It returns a bool, bestie β so it's a yes-or-no girlie, no in-between π
π¦ ARGUMENTS π¦
ctrlβ the controller interface π (the big boss of the SPI situation)spi_devβ pointer to the spi device π (your actual lil device)transferβ pointer to spi transfer π§ (the thing being moved, obviously)
π DESCRIPTION π
So here's the tea, fr fr:
If the driver has a fifo and the current transfer size is greater than the fifo size, use DMA. Otherwise, use DMA for a transfer longer than the defined DMA min bytes. No cap, that's the whole vibe check π₯
Lowkey a two-branch decision and it ate. Periodt. β
π SEE ALSO π
Kernel file ./drivers/spi/spi-stm32.c β and bestie, the friend group is huge, we're listing every single one π«Ά:
struct stm32_spi_reg(9)struct stm32_spi_regspec(9)struct stm32_spi_cfg(9)struct stm32_spi(9)stm32h7_spi_get_fifo_size(9)stm32f4_spi_get_bpw_mask(9)stm32f7_spi_get_bpw_mask(9)stm32h7_spi_get_bpw_mask(9)stm32mp25_spi_get_bpw_mask(9)stm32_spi_prepare_mbr(9)stm32h7_spi_prepare_fthlv(9)stm32f4_spi_write_tx(9)stm32f7_spi_write_tx(9)stm32h7_spi_write_txfifo(9)stm32f4_spi_read_rx(9)stm32f7_spi_read_rx(9)stm32h7_spi_read_rxfifo(9)stm32_spi_enable(9)stm32fx_spi_disable(9)stm32h7_spi_disable(9)stm32fx_spi_irq_event(9)stm32fx_spi_irq_thread(9)stm32h7_spi_irq_thread(9)stm32_spi_prepare_msg(9)stm32fx_spi_dma_tx_cb(9)stm32_spi_dma_rx_cb(9)stm32_spi_dma_config(9)stm32fx_spi_transfer_one_irq(9)stm32h7_spi_transfer_one_poll(9)stm32h7_spi_transfer_one_irq(9)stm32fx_spi_transfer_one_dma_start(9)stm32f7_spi_transfer_one_dma_start(9)stm32h7_spi_transfer_one_dma_start(9)stm32_spi_prepare_rx_dma_mdma_chaining(9)stm32_spi_transfer_one_dma(9)stm32f4_spi_set_bpw(9)stm32f7_spi_set_bpw(9)stm32h7_spi_set_bpw(9)stm32_spi_set_mbr(9)stm32_spi_communication_type(9)stm32fx_spi_set_mode(9)stm32h7_spi_set_mode(9)stm32h7_spi_data_idleness(9)stm32h7_spi_number_of_data(9)stm32_spi_transfer_one_setup(9)stm32_spi_can_poll(9)stm32_spi_transfer_one(9)stm32_spi_unprepare_msg(9)stm32fx_spi_config(9)stm32h7_spi_config(9)
Like I said. Enormous friend group. iykyk πβ¨
That's the whole page, bestie β she's short, she's sweet, and she knows exactly what she's about π
Sign-off time π: this lil beauty lives in ./drivers/spi, dated October 2026, and the whole thing is the stm32_spi_can_dma(9) page, manual and all. Slay π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms