__spi_pump_messages(9)
π
__spi_pump_messages(9) β like, the Kernel API Manual bestie β¨
okay so real talk, this is the __spi_pump_messages(9) page from the Kernel API Manual and it is so much less scary than the name makes it sound, i promise π«Ά
πΈ NAME πΈ
__spi_pump_messages β the function that literally processes the SPI message queue, no cap π
β¨ SYNOPSIS β¨
void __spi_pump_messages (struct spi_controller *ctlr , bool in_kthread
);
π ARGUMENTS π
ctlrβ the controller whose queue we're processing π like, this is the one doing the workin_kthreadβtrueif we're currently in the context of the message pump thread π§΅ (iykyk)
π¦ DESCRIPTION π¦
So what this function does is: it checks whether there's any SPI message sitting in the queue that needs processing, and if there is?? it calls out to the driver to initialize the hardware and transfer each message β¨ main character energy fr fr
the way that it gets called is lowkey important tho β it's called both from the kthread itself and from inside spi_sync π and the queue extraction handling at the top of the function is what should deal with that safely π‘οΈ like don't worry, it's handled, that's literally its job
π SEE ALSO π
Kernel file ./drivers/spi/spi.c β and here's the whole squad, not me listing all 45 of them π but like, every single one, periodt:
__spi_register_driver(9)spi_alloc_device(9)spi_add_device(9)spi_new_device(9)spi_unregister_device(9)spi_register_board_info(9)spi_res_alloc(9)spi_res_free(9)spi_res_add(9)spi_res_release(9)spi_finalize_current_transfer(9)spi_pump_messages(9)spi_take_timestamp_pre(9)spi_take_timestamp_post(9)spi_set_thread_rt(9)spi_get_next_queued_message(9)spi_finalize_current_message(9)spi_queued_transfer(9)spi_flush_queue(9)of_register_spi_devices(9)spi_new_ancillary_device(9)devm_spi_new_ancillary_device(9)acpi_spi_count_resources(9)acpi_spi_device_alloc(9)spi_target_abort(9)__spi_alloc_controller(9)__devm_spi_alloc_controller(9)spi_get_gpio_descs(9)spi_register_controller(9)devm_spi_register_controller(9)spi_unregister_controller(9)spi_replace_transfers(9)spi_split_transfers_maxsize(9)spi_split_transfers_maxwords(9)spi_set_cs_timing(9)spi_setup(9)spi_optimize_message(9)spi_unoptimize_message(9)devm_spi_optimize_message(9)spi_async(9)spi_sync(9)spi_sync_locked(9)spi_bus_lock(9)spi_bus_unlock(9)spi_write_then_read(9)
okay that's the whole page bestie, go read some kernel source, you're gonna slay π§π
sign-off time: this lil page came from ./drivers/spi, dated October 2026, and it's the __spi_pump_messages(9) manual page β that's the whole footer, mwah ππΈ
π¦ 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