pm_runtime_disable(9)
π pm_runtime_disable β like, the Kernel API Manual, section 9, bestie
okay so welcome to pm_runtime_disable(9), the page where we learn how to tell the runtime PM framework to please stop touching this device for a sec π«Ά no cap, it's short, it's iconic, let's go.
β¨ NAME β¨
pm_runtime_disable β Disable runtime PM for a device. periodt. that's the whole vibe.
πΈ SYNOPSIS πΈ
void pm_runtime_disable (struct device *dev );
π ARGUMENTS π
devβ Target device. the main character of this whole operation π
π¦ DESCRIPTION π¦
So here's the tea β: this function prevents the runtime PM framework from working with dev by incrementing its "disable" counter. literally just bumping a number. lowkey elegant.
Now the spicy part π β if the counter is zero when this function runs and there is a pending runtime resume request for dev, it will be resumed. yes, it wakes up first. and if the counter is still zero at that point, all of the pending runtime PM requests for dev will be canceled and all runtime PM operations in progress involving it will be waited for to complete. so it drains the queue and waits for the in-flight stuff to finish. ngl, that's the responsible thing to do π
β οΈ okay important, bestie, don't skip this: for each invocation of this function fordev, there must be a matchingpm_runtime_enablecall, so that runtime PM is eventually enabled for it again. it's a counter, not a boolean β one disable per enable, fr fr. miss one and runtime PM for that device is stuck in the shadow realm π
π SEE ALSO π
Kernel file ./include/linux/pm_runtime.h β plus the whole friend group, which is honestly huge, so buckle up π:
pm_suspend_ignore_children(9)pm_runtime_get_noresume(9)pm_runtime_put_noidle(9)pm_runtime_suspended(9)pm_runtime_active(9)pm_runtime_status_suspended(9)pm_runtime_enabled(9)pm_runtime_blocked(9)pm_runtime_has_no_callbacks(9)pm_runtime_mark_last_busy(9)pm_runtime_is_irq_safe(9)pm_runtime_idle(9)pm_runtime_suspend(9)pm_runtime_autosuspend(9)pm_runtime_resume(9)pm_request_idle(9)pm_request_resume(9)pm_request_autosuspend(9)pm_runtime_get(9)pm_runtime_get_sync(9)pm_runtime_resume_and_get(9)pm_runtime_put(9)__pm_runtime_put_autosuspend(9)pm_runtime_put_autosuspend(9)pm_runtime_put_sync(9)pm_runtime_put_sync_suspend(9)pm_runtime_put_sync_autosuspend(9)pm_runtime_set_active(9)pm_runtime_set_suspended(9)pm_runtime_use_autosuspend(9)pm_runtime_dont_use_autosuspend(9)
and that's the page, bestie π§ from the ./include/linux corner of the world, dated October 2026 β go forth, increment your counters responsibly, and remember: every disable needs its enable πβ¨
π¦ 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