_set_dmadisable(9)
π
_set_dmadisable (9) β from the Kernel API Manual π
okay so bestie, drop everything, we're reading a Kernel API Manual page together and honestly? it's giving "tiny function, huge friend group". this one lives in the kernel section 9, and it's literally a one-liner with a whole personality. let's get into it π«Ά
β¨ NAME β¨
_set_dmadisable β set the OCP_SYSCONFIG.DMADISABLE bit in @v π
like, that's the whole job description. one bit. one vibe. periodt.
πΈ SYNOPSIS πΈ
int _set_dmadisable (struct omap_hwmod *oh );
yes she's an int-returning girlie who takes exactly one (1) argument. main character energy tbh π
π¦ ARGUMENTS π¦
ohβ astruct omap_hwmod *. that's it. that's the whole argument list. the hwmod in question, the one whose sysconfig bit we're about to touch π
π DESCRIPTION π
okay so picture this: the DMADISABLE bit is a semi-automatic bit β yes, semi, she does part of the work herself β and she lives in the sysconfig register of some modules. not all of them. some. iykyk β¨
here's the fun part π₯ when the DMA has to do read/write accesses, the hardware clears the DMADISABLE bit all by itself. she's autonomous. she's booked and busy. but β and this is the plot twist π β when the DMA has to stop for power management, software must set the DMADISABLE bit back to 1. that's your job now bestie, hardware isn't gonna do it for you.
so what does this function do? it sets the DMADISABLE bit in v for hwmod oh. simple as that π
return values, because we always check our return values:
- returns
-EINVALupon error π - returns
0upon success π
no in-between, no half-slay. iconic.
π SEE ALSO π
the friend group is massive, ngl. this file, ./arch/arm/mach-omap2/omap_hwmod.c, is one big group chat and here's literally everyone in it π«Ά (the original page also name-drops struct right after that path, so consider it mentioned π):
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_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_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)
ngl that's the longest SEE ALSO i've ever read and i ate it up πβ¨
and that's the whole page bestie!! this little cutie ships out of ./arch/arm/mach-omap2 β that's the source path, keep it in your notes π β dated October 2026, and the page itself is _set_dmadisable(9). go set that bit, love u, bye ππ¦πΈ
π¦ 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