i3c_master_enec_locked(9)
π i3c_master_enec_locked β a Kernel API Manual moment π
okay so bestie, welcome to the Kernel API Manual entry for i3c_master_enec_locked(9) β yes that's the whole name, yes it's a mouthful, no we're not abbreviating it, it's iconic and we respect it. β¨
πΈ NAME πΈ
i3c_master_enec_locked β send an ENEC CCC command π¦
Like, that's it. That's the whole job. It sends an ENEC CCC command. Slay.
β¨ SYNOPSIS β¨
int i3c_master_enec_locked (struct i3c_master_controller *master , u8
addr , u8 evts );
Returns an int, takes three things, and honestly the signature is doing the absolute most with those line breaks but we love her anyway. π
π ARGUMENTS π
masterβ the master we're using to send frames on the bus. main character energy fr fr πaddrβ a valid I3C slave address, orI3C_BROADCAST_ADDRif you're feeling like talking to everyone at once. Not me picking the broadcast option just to make it everyone's problem πevtsβ events to disable. yep, that's what it says. we move. π
π«Ά DESCRIPTION π«Ά
So what it actually does: it sends an ENEC CCC command to enable some or all events coming from one specific slave β or, if addr is I3C_BROADCAST_ADDR, from all the devices. the way that one address field changes the whole scope of the operation?? lowkey powerful. β
β οΈ okay this part is the vibe check that matters: this function must be called with the bus lock held in write mode. no cap. don't skip the lock. the _locked in the name is not decorative, bestie ππ
π RETURN π
0β success, we ate, everything is fine and the bus is happy π- a negative error code β otherwise. and if you see that, something went sideways. ngl, that's the sad part of the story π
π SEE ALSO π
the whole friend group, and yes we're listing every single one of them because nobody gets left behind. periodt. π
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_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_request_ibi_locked(9),i3c_dev_free_ibi_locked(9)
iykyk, it's giving "read the whole API surface or else". πβ¨
and that's the page!! π§ source: ./drivers/i3c, version/date situation: October 2026 β mwah, love u, go hold that bus lock in write mode ππ
π
π¦ 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