stm32h7_spi_read_rxfifo(9)
π stm32h7_spi_read_rxfifo β a Kernel API Manual moment
okay bestie, welcome to the Kernel API Manual, where we read manpages for breakfast and slay π. This one is short and sweet and honestly kind of iconic.
β¨ NAME β¨
stm32h7_spi_read_rxfifo β literally just: read bytes in the Receive Data Register π¦
β¨ SYNOPSIS β¨
void stm32h7_spi_read_rxfifo (struct stm32_spi *spi );
that's it. that's the whole function signature. no return value, she returns void, she's mysterious, she's lowkey about it π
β¨ ARGUMENTS β¨
spiβ pointer to the spi controller data structure. that's the whole thing, bestie β you hand her the controller struct and she goes to work π«Ά
β¨ DESCRIPTION β¨
So what does she actually do? She writes into rx_buf, and the amount she writes depends on how many bytes are still remaining (ngl, this is the important safety bit) β and the reason is so she doesn't write beyond the end of rx_buf ππ. Like, no buffer overrun today, we're being responsible in this group chat.
fr fr, that "remaining bytes" check is the whole personality of this function β it's the guardrail, not a detail. do not skip it, do not "clean it up", do not pass go π
β¨ SEE ALSO β¨
okay this is the part where the manpage dumps her entire friend group on us, and we're gonna list every single one because nobody gets left behind ππ
- the kernel file itself:
./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)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)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, that's a lot of siblings but every one of them is valid and we respect them all π§π
and that's the whole page, babes β sourced straight from ./drivers/spi, dated October 2026, in the Kernel API Manual. periodt. go read some registers, you've got this πΈπ
π¦ 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