omap_cm_wait_module_idle(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… omap_cm_wait_module_idle β€” like, the kernel-API-manual one, bestie

Okay so bestie, picture this: it's a 9-section man page, it lives in the Kernel API Manual, and its whole personality is waiting for a module to chill out. Yes, really. Let's get into it 🫢


✨ NAME ✨

omap_cm_wait_module_idle β€” wait for a module to enter idle or standby

Literally what it says on the tin: you sit there, patiently, until the module stops being clocked. Main character energy for a function that just… waits. πŸ’…


🌸 SYNOPSIS 🌸

int omap_cm_wait_module_idle (u8 part , s16 prcm_mod , u16 idlest_reg ,
       u8 idlest_shift );

Four args, one int back. No cap, that's the whole signature. πŸŽ€


πŸ¦‹ ARGUMENTS πŸ¦‹

  • part β€” the PRCM partition. Which chunk of the PRCM we're talking about, that's it, that's the vibe.
  • prcm_mod β€” the PRCM module offset. Where the module lives in the register map, lowkey the address-y bit.
  • idlest_reg β€” the CM_IDLESTx register. The lil' status register we're gonna stare at until it tells us what we wanna hear πŸ‘€
  • idlest_shift β€” the shift of the bit in the CM_IDLEST* register to check. Like, which specific bit in that register is the one we care about. (Note the description below says idlest_id instead of idlest_reg β€” that's the original's business, not mine, iykyk πŸ™ˆ)

πŸ”₯ DESCRIPTION πŸ”₯

So what does it do? It waits for the PRCM to indicate that the module identified by (prcm_mod, idlest_id, idlest_shift) is no longer clocked. That's it. That's the whole function. Clock go bye-bye, we celebrate ✨

Returns:

  • 0 β€” slay, success, the module went idle πŸŽ‰
  • -EBUSY β€” the module doesn't enable in time 😭 (yes, the man page says "enable" here even though we're waiting for idle β€” I don't make the rules, I just report them, fr fr)
  • -EINVAL β€” invalid, because either:
    • no per-SoC wait_module_idle function pointer has been registered 🫠, or
    • the idlest register is unknown on the SoC πŸ’€
Heads up bestie: that -EINVAL case is the one that'll bite you if your SoC support isn't wired up. No function pointer registered = no vibes = no waiting. Periodt.

🌈 SEE ALSO 🌈

Go read them, they're all in the clique 🧚


And that's the page! Big kiss to ./arch/arm/mach-omap2 for hosting this whole situation back in October 2026 β€” source and date both accounted for, we love a documented footer ⭐ Byeee! πŸ“

πŸ“¦ where this page comes from