disable_rpm_wakeref_asserts(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– disable_rpm_wakeref_asserts(9) β€” from the Kernel API Manual, bestie πŸ’–

okay so listen, this one's from the Kernel API Manual and it's genuinely a little niche but it's SO important, so buckle up πŸŽ€


✨ NAME ✨

disable_rpm_wakeref_asserts β€” bestie, it literally just turns off the RPM assert checks πŸ’…


🌸 SYNOPSIS 🌸

void disable_rpm_wakeref_asserts (struct intel_runtime_pm *rpm );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • rpm β€” the intel_runtime_pm structure. that's it, that's the whole argument 🫢

πŸ’œ DESCRIPTION πŸ’œ

so what this bad boy does is disable the asserts that check whether we're holding an RPM wakelock reference β€” like, it stops asking that question entirely. but bestie, key detail: the device-not-suspended checks stay fully enabled. we're not unplugging ALL the safety rails, just that one specific one πŸ™ˆ

it's meant to be used only in special circumstances, like the very specific case where our rule about the wakelock refcount wrt. the device power state doesn't hold. iykyk.

and what's the rule, you ask? okay so, per this rule: at any point where we access the HW or want to keep the HW in an active state, we must hold an RPM wakelock reference β€” and that reference has to be acquired via one of the intel_runtime_pm_get helpers. periodt. that's the law πŸ“œ

currently there are a few special spots where this rule doesn't hold:

  • the IRQ and suspend/resume handlers
  • the forcewake release timer
  • the GPU RPS and hangcheck works

All other users should avoid using this function. no cap, it's not for you unless you're literally one of those spots πŸ’€

🚨 okay and this part MATTERS: any calls to this function must have a symmetric call to enable_rpm_wakeref_asserts. symmetric. like, you turn it off, you turn it back on. do not leave it hanging 😭

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/gpu/drm/i915/intel_runtime_pm.h
  • enable_rpm_wakeref_asserts(9) β€” the other half of the symmetric-call situation, go read it 🧚

and that's the whole vibe, bestie! this page lives in ./drivers/gpu/drm/i915, it's dated October 2026, and it's part of the Kernel API Manual β€” slay, go forth and be symmetric with your calls πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from