pm_request_autosuspend(9)
β¨ pm_request_autosuspend(9) β¨
okay bestie, welcome to the pm_request_autosuspend page π this one lives in the Kernel API Manual (that's the 9 section, kernel API girlies rise π«Ά), and ngl it's short, sweet, and kind of iconic? like it does one job and does it slayfully β¨
It's the one that bumps a device's last access time and queues up an autosuspend for later. main character energy fr fr π
πΈ NAME πΈ
pm_request_autosuspend β updates the last access time, and then queues up an autosuspend of a device. that's the whole vibe π
π SYNOPSIS π
int pm_request_autosuspend (struct device *dev );
π¦ ARGUMENTS π¦
devβ the target device π― like, the device you're doing this to. the one getting the autosuspend treatment.
π DESCRIPTION π
So here's the tea β: this function updates the last access time of a device, and then it queues up a work item so that an equivalent pm_runtime_autosuspend for dev runs asynchronously. lowkey, that's it. that's the whole function. it's giving "set it and forget it" β¨
note the word asynchronously β it gets queued as a work item, it doesn't happen right this second. respect the queue bestie π
β RETURN β
the return values, and honestly there are a lot of them, so buckle up π
1β Success! π and specifically: the device was already suspended. so like, success but it was already chilling.0β Success. plain and simple, no notes π-EINVALβ Runtime PM error π-EACCESβ Runtime PM is disabled π-EAGAINβ the Runtime PM usage counter is non-zero, or a Runtime PM status change is ongoing π-EBUSYβ the Runtime PMchild_countis non-zero πΆ like, the children said not yet-EPERMβ Device PM QoS resume latency is0π«-EINPROGRESSβ a suspend is already in progress β³ we're already doing this!!-ENOSYSβCONFIG_PMis not enabled π no config, no service
π SEE ALSO π
this list is LONG bestie, grab a snack π β and heads up, it's all sourced from the kernel file ./include/linux/pm_runtime.h:
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_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_disable(9)pm_runtime_use_autosuspend(9)pm_runtime_dont_use_autosuspend(9)
and that's the whole page!! π§ no cap, go autosuspend something responsibly π
sign-off time: this lil masterpiece comes to you from ./include/linux π and it's dated October 2026 ποΈ β it's giving future icon. mwah π periodt π
π¦ 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