omap_hwmod_fix_mpu_rt_idx(9)
π omap_hwmod_fix_mpu_rt_idx β Kernel API Manual, bestie edition β¨
okay so real talk, this one lives in the Kernel API Manual (section 9, the big-brained kernel-dev section), and it's one of those tiny little fixer-upper functions that exists purely because hardware is messy. let's get into it π«Ά
πΈ NAME πΈ
omap_hwmod_fix_mpu_rt_idx β the little glow-up function that fixes up mpu_rt_idx register offsets β¨
π SYNOPSIS π
void omap_hwmod_fix_mpu_rt_idx (struct omap_hwmod *oh , struct
device_node *np , struct resource *res );
it returns void, so likeβ¦ no return value, no drama, she just goes in and does the thing π
π¦ ARGUMENTS π¦
ohβ astruct omap_hwmod *. that's the hwmod in question, the main character of this whole situation πnpβ astruct device_node *. the device tree node, iykyk π³resβstruct resource *, and ngl the original docs literally say -- undescribed -- π so likeβ¦ we don't have a description for this one, and I'm not about to invent one, that's not the vibe. we move π
π DESCRIPTION π
okay so what she does: she fixes up module register offsets for modules that have an mpu_rt_idx. that's literally the whole job. lowkey iconic for how specific it is π₯
and it's only needed for cpsw when the interconnect target module is defined in device tree while still using legacy hwmod platform data for the rev, sysc and syss registers. yes, that's a very specific crossover situation β device tree and legacy platform data coexisting, it's giving "two eras of kernel code holding hands" π
π¨ important note, fr fr: this can be removed when all cpsw hwmod platform data has been dropped. so she's on borrowed time, besties. she's a transitional icon, a bridge function, and one day she will be deleted πποΈ
β SEE ALSO β
there's a whole group chat of related stuff, and yes, I'm listing every single one because we don't skip people here π
kernel file: ./arch/arm/mach-omap2/omap_hwmod.c
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)_add_initiator_dep(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_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)
and that's the whole page, bestie π she's short, she's sweet, she's a temporary shim and she knows it. this cutie came from ./arch/arm/mach-omap2, dated October 2026 β mwah, love that for her πβ¨πΈ
π¦ 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