_add_initiator_dep(9)
π _add_initiator_dep β a whole kernel API manual moment (section 9, bestie) π
okay so picture this: you're deep in the kernel API manual, section 9, and you stumble on _add_initiator_dep. she's lowkey the bodyguard of the omap_hwmod world and honestly? she ate. let's get into it β¨
πΈ NAME πΈ
_add_initiator_dep β bestie's whole job is to prevent @oh from smart-idling while @init_oh is active. that's it. that's the gig. no cap π«Ά
π SYNOPSIS π
int _add_initiator_dep (struct omap_hwmod *oh , struct omap_hwmod *init_oh );
look at her go. two struct omap_hwmod * pointers, one int coming back. iconic behavior, honestly π
π¦ ARGUMENTS π¦
ohβstruct omap_hwmod *. the module we're protecting from idling. main character energy fr.init_ohβ-- undescribed --. and likeβ¦ yeah. the manpage literally just says-- undescribed --. the docs said "we don't know her" π so we're passing along exactly that, no inventing, no guessing, periodt.
β DESCRIPTION β
so here's the vibe check: _add_initiator_dep prevents the hardware module oh from entering idle while the hardware module initiator init_oh is active. ππ€
it's highkey useful when a module is gonna be accessed by a particular initiator. the manpage's own example, and i quote the energy not the letters: if a module will be accessed by the IVA, there should be a sleepdep between the IVA initiator and the module. iykyk π§
and now the important fine print, because we keep facts over feelings:
- only applies to modules in smart-idle mode. if you're not in smart-idle, this isn't your moment, sorry bestie π
- if the clockdomain is marked as not needing
autodeps, she returns0without doing anything β zero notes, straight out the door. π - otherwise, she returns
-EINVALupon error, or passes along theclkdm_add_sleepdepvalue upon success. π
β οΈ real talk:init_ohis-- undescribed --in the source docs. that's not me being lazy, that's the actual documentation, and we do not make up technical claims in this group chat. π
π₯ SEE ALSO π₯
this list is long long. like, get a snack, bestie, we're reading the whole thing π
Kernel file ./arch/arm/mach-omap2/omap_hwmod.c and then:
struct clkctrl_provider(9)struct omap_hwmod_reset(9)struct omap_hwmod_soc_ops(9)_update_sysc_cache(9)_write_sysconfig(9)_set_master_standbymode(9)_set_slave_idlemode(9)_set_clockactivity(9)_set_softreset(9)_clear_softreset(9)_wait_softreset_complete(9)_set_dmadisable(9)_set_module_autoidle(9)_enable_wakeup(9)_del_initiator_dep(9)_init_main_clk(9)_init_interface_clks(9)_init_opt_clks(9)_enable_clocks(9)_omap4_clkctrl_managed_by_clkfwk(9)_omap4_has_clkctrl_clock(9)_disable_clocks(9)_omap4_enable_module(9)_omap4_wait_target_disable(9)_save_mpu_port_index(9)_find_mpu_rt_port(9)_enable_sysc(9)_idle_sysc(9)_shutdown_sysc(9)_lookup(9)_init_clkdm(9)_init_clocks(9)_lookup_hardreset(9)_assert_hardreset(9)_deassert_hardreset(9)_read_hardreset(9)_are_all_hardreset_lines_asserted(9)_are_any_hardreset_lines_asserted(9)_omap4_disable_module(9)_ocp_softreset(9)_reset(9)_omap4_update_context_lost(9)_omap4_get_context_lost(9)_enable(9)_idle(9)_shutdown(9)of_dev_hwmod_lookup(9)omap_hwmod_fix_mpu_rt_idx(9)omap_hwmod_parse_module_range(9)_init_mpu_rt_base(9)_init(9)_setup_iclk_autoidle(9)_setup_reset(9)_setup_postsetup(9)_setup(9)_register(9)_add_link(9)_register_link(9)_omap2xxx_3xxx_wait_target_ready(9)_omap4_wait_target_ready(9)_omap2_assert_hardreset(9)_omap2_deassert_hardreset(9)_omap2_is_hardreset_asserted(9)_omap4_assert_hardreset(9)_omap4_deassert_hardreset(9)_omap4_is_hardreset_asserted(9)_omap4_disable_direct_prcm(9)_am33xx_deassert_hardreset(9)omap_hwmod_softreset(9)omap_hwmod_lookup(9)omap_hwmod_for_each(9)omap_hwmod_register_links(9)_ensure_mpu_hwmod_is_setup(9)omap_hwmod_setup_one(9)omap_hwmod_check_sysc(9)omap_hwmod_init_regbits(9)omap_hwmod_init_reg_offs(9)omap_hwmod_init_sysc_flags(9)omap_hwmod_init_idlemodes(9)omap_hwmod_check_module(9)omap_hwmod_allocate_module(9)omap_hwmod_init_module(9)omap_hwmod_setup_earlycon_flags(9)omap_hwmod_setup_all(9)omap_hwmod_enable(9)omap_hwmod_idle(9)omap_hwmod_shutdown(9)omap_hwmod_get_mpu_rt_va(9)omap_hwmod_assert_hardreset(9)omap_hwmod_deassert_hardreset(9)omap_hwmod_for_each_by_class(9)omap_hwmod_set_postsetup_state(9)omap_hwmod_init(9)
like i said. she has friends. π
π that's the whole page bestie β every flag, every return value, every reference, nothing skipped, nothing invented.
and finally, the cute sign-off π: this gem lives in ./arch/arm/mach-omap2, dated October 2026, and it's filed under _add_initiator_dep(9) β go forth and not-idle responsibly, 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