stm32_spi_transfer_one_dma(9)
π stm32_spi_transfer_one_dma β from the Kernel API Manual, bestie β¨
Okay so picture this: we're deep in the kernel, in the manual page for stm32_spi_transfer_one_dma(9), and honestly? It's giving "one job, done with DMA." Let me walk you through it π«Ά
β¨ NAME β¨
stm32_spi_transfer_one_dma β transfer a single spi_transfer using DMA
Like, one transfer. Singular. But it's doing it with DMA, so it's lowkey the cool one π
πΈ SYNOPSIS πΈ
int stm32_spi_transfer_one_dma (struct stm32_spi *spi , struct
spi_transfer *xfer );
Look at that signature. Two pointers, one int coming back at you. Slay π
π¦ ARGUMENTS π¦
spiβ pointer to the spi controller data structure. This is the main character, the controller itself, everything you need to know about the SPI hardware lives in here πxferβ pointer to thespi_transferstructure. The actual transfer you're pushing through. This is what we're moving β¨
π DESCRIPTION π
Here's the whole vibe check: it must return 0 if the transfer is finished, or 1 if the transfer is still in progress.
That's it. That's the rule. Not me making up a third option β it's 0 or 1, periodt. So when you call this you know where you stand: done, or still cooking π₯
No cap, that "must" is doing a lot of work in that sentence. Respect it.
π SEE ALSO π
Buckle up bestie, this is the friend group and it's huge π All from the kernel file ./drivers/spi/spi-stm32.c:
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)stm32_spi_can_dma(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)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. But every single one of them is invited to the party π§π
And that's the page, bestie β¨ This little gem lives in ./drivers/spi, and it's dated October 2026 β so like, future iconic. Go forth and transfer one SPI thing with DMA, you absolute legend π
ππ
π¦ 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