i3c_dev_enable_ibi_locked(9)
π i3c_dev_enable_ibi_locked(9) π
okay so bestie, welcome to the Kernel API Manual, section 9 β this is the page for i3c_dev_enable_ibi_locked, and yes she's a locked-variant girlie, we'll get to that π
β¨ NAME β¨
i3c_dev_enable_ibi_locked β turn on IBIs from one specific device, and you gotta be holding the lock already, no cap π
π¦ SYNOPSIS π¦
int i3c_dev_enable_ibi_locked (struct i3c_dev_desc *dev );
πΈ ARGUMENTS πΈ
devβ the device on which IBIs should be enabled. that's the one, the main character of this call π
π DESCRIPTION π
okay so here's the vibe: this function enables IBIs coming from a specific device, and then it waits for all pending IBIs to be processed before it dips. so it's not just flipping a switch and running away, it's actually sticking around to make sure the queue is handled. iconic behavior honestly π«Ά
fr fr though, you should call this on a device where i3c_device_request_ibi has already succeeded. like, that's the prerequisite, don't skip it π
β οΈ heads up bestie: IBIs from this device might be received before this function returns to its caller. so don't be shocked if stuff starts arriving while you're still inside the call β that's just how she is π
π₯ CONTEXT π₯
must be called with mutex_lock(dev->desc->ibi_lock) held. that's the whole reason for the _locked in her name, iykyk π
β RETURN β
0 on success, or a negative error code on failure. simple as that bestie π
π SEE ALSO π
kernel file ./drivers/i3c/master.c, plus the whole friend group of related functions:
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_request_ibi_locked(9)i3c_dev_free_ibi_locked(9)
and that's the tea, bestie π this page lives in ./drivers/i3c, stamped October 2026, and it's filed under i3c_dev_enable_ibi_locked(9) forever and ever. go hold that lock and 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