intel_uncore...wake_for_reg(9)
β¨ intel_uncore_forcewake_for_reg β the Kernel API Manual page you didn't know you needed β¨
okay bestie, so this is from the Kernel API Manual and it's literally all about one little helper that tells you which forcewake domains you gotta wake up before you go poking at a register. no cap, that's the whole vibe. let's get into it π
πΈ NAME πΈ
intel_uncore_forcewake_for_reg β the function that tells you which forcewake domains are needed to access a register π
π¦ SYNOPSIS π¦
enum forcewake_domains intel_uncore_forcewake_for_reg (struct
intel_uncore *uncore , i915_reg_t reg , unsigned int op );
like yes, that's the whole signature, she's giving "long line wrapped by the manpage formatter" energy and we respect it π«Ά
π ARGUMENTS π
uncoreβ a pointer tostruct intel_uncore. your main character struct, the one holding all the uncore state πregβ the register in question. the one you're trying to slide into πopβ an operation bitmask made ofFW_REG_READand/orFW_REG_WRITE. tell it what you're planning to do and it'll match the vibe check π₯
β DESCRIPTION β
So what does she actually do? She returns a set of forcewake domains that you need to take β with, for example, intel_uncore_forcewake_get β so that the register you specified is actually accessible in the mode you specified. and when we say "mode" we mean read, write, or read/write, bestie π
Oh and the accessors in question? raw mmio accessors. raw. like, no fancy wrappers, just you and the hardware π€
π NOTE π
β οΈ listen up because this one's important β οΈ
On Gen6 and Gen7, the write forcewake domain (FORCEWAKE_RENDER) requires the callers to do FIFO management on their own β or risk losing writes π like, actually losing them. gone. not coming back. so handle your FIFO, fr fr π
π SEE ALSO π
the kernel file, aka where the magic lives:
- Kernel file
./drivers/gpu/drm/i915/intel_uncore.c
and the whole friend group of related functions, all iconic, all linked:
intel_uncore_forcewake_get(9)intel_uncore_forcewake_user_get(9)intel_uncore_forcewake_user_put(9)intel_uncore_forcewake_get__locked(9)intel_uncore_forcewake_put(9)intel_uncore_forcewake_flush(9)intel_uncore_forcewake_put__locked(9)__intel_wait_for_register_fw(9)__intel_wait_for_register(9)
and that's the page, bestie π§π this lil masterpiece comes to you from ./drivers/gpu/drm/i915, dated October 2026 β go forth and forcewake 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