i3c_dev_request_ibi_locked(9)
π i3c_dev_request_ibi_locked(9) π
okay so bestie, welcome to the Kernel API Manual β this one's about i3c_dev_request_ibi_locked, and it's genuinely such a vibe once you get it. let's go π
β¨ NAME β¨
i3c_dev_request_ibi_locked β request an IBI π¦
πΈ SYNOPSIS πΈ
int i3c_dev_request_ibi_locked (struct i3c_dev_desc *dev , const struct
i3c_ibi_setup *req );
like, that's the whole signature, no notes π
π ARGUMENTS π
devβ the device we should enable IBIs for, bestie. that's the main character of this whole function ngl.reqβ the setup requested for this IBI. it's giving "here's my whole plan" energy β¨
π DESCRIPTION π
okay so this function is literally responsible for pre-allocating all the resources you'll need to process IBIs coming from dev. it's doing the prep work so future-you doesn't have to ππ«Ά
but listen β and this is the important part β when this function returns, the IBI is not enabled yet. it stays un-enabled until you call i3c_device_enable_ibi. so like... don't be out here acting surprised that nothing's firing yet, that's literally the deal, no cap π₯
β CONTEXT β
must be called with mutex_lock(dev->desc->ibi_lock) held. periodt. π like if you're not holding that lock, you're not doing this, that's the vibe check π
π RETURN π
returns 0 in case of success, and a negative error core otherwise (yes, core β that's what it says, i'm just the messenger bestie ππ β obviously it means error code, but we keep it 100% accurate here).
π¦ SEE ALSO π¦
the whole squad, and i mean the whole squad π β plus the kernel file ./drivers/i3c/master.c:
i3c_bus_maintenance_lock(9)i3c_bus_maintenance_unlock(9)i3c_bus_normaluse_lock(9)i3c_bus_normaluse_unlock(9)i3c_master_queue_hotjoin(9)i3c_master_send_ccc_cmd_locked(9)i3c_master_get_free_addr(9)i3c_master_setaasa_locked(9)i3c_master_entdaa_locked(9)i3c_master_enec_disec_locked(9)i3c_master_disec_locked(9)i3c_master_enec_locked(9)i3c_master_defslvs_locked(9)i3c_master_reattach_i3c_dev_locked(9)i3c_master_has_wakeup_enabled_devs(9)i3c_master_dma_map_single(9)i3c_master_dma_unmap_single(9)i3c_master_set_info(9)i3c_master_bus_init(9)__i3c_master_add_i3c_dev_locked(9)i3c_master_add_i3c_dev_locked(9)i3c_master_do_daa_ext(9)i3c_master_do_daa(9)i3c_master_queue_ibi(9)i3c_generic_ibi_free_pool(9)i3c_generic_ibi_alloc_pool(9)i3c_generic_ibi_get_free_slot(9)i3c_generic_ibi_recycle_slot(9)i3c_master_register(9)i3c_master_unregister(9)i3c_dev_disable_ibi_locked(9)i3c_dev_enable_ibi_locked(9)i3c_dev_free_ibi_locked(9)
ngl that's a lot of friends but every single one of them earned their spot π
and that's the page!! mwah π«Ά from ./drivers/i3c, dated October 2026 β go forth and lock your mutex, bestie πΈβ¨π¦
π¦ 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