pm_runtime_..._autosuspend(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« pm_runtime_..._autosuspend(9) πŸ’«

okay so this is the Kernel API Manual page for pm_runtime_put_sync_autosuspend β€” and it’s giving β€œdrop the usage counter and maybe autosuspend” energy, no cap πŸ’….

🌸 NAME 🌸

pm_runtime_put_sync_autosuspend β€” update the last access time of a device, drop the device usage counter, and autosuspend if it’s 0. 🫢

πŸ’… SYNOPSIS πŸ’…

int pm_runtime_put_sync_autosuspend (struct device *dev );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” target device πŸ‘€

πŸ’– DESCRIPTION πŸ’–

okay so this one updates the last access time of dev, then decrements the runtime PM usage counter of dev. if that counter turns out to be equal to 0, it sets up autosuspend of dev or suspends it synchronously β€” depending on whether or not autosuspend has been enabled for it ✨.

🚨 bestie, important: the runtime PM usage counter of dev remains decremented in all cases, even if it returns an error code. fr fr.

πŸŒ€ RETURN πŸŒ€

  • 1 β€” Success. Usage counter dropped to zero, but device was already suspended. πŸŽ‰
  • 0 β€” Success. πŸ‘‘
  • -EINVAL β€” Runtime PM error. 😭
  • -EACCES β€” Runtime PM disabled. πŸ™ˆ
  • -EAGAIN β€” Runtime PM usage counter became non-zero or Runtime PM status change ongoing. πŸŒͺ️
  • -EBUSY β€” Runtime PM child_count non-zero. πŸ’€
  • -EPERM β€” Device PM QoS resume latency 0. 🚫
  • -EINPROGRESS β€” Suspend already in progress. ⏳
  • -ENOSYS β€” CONFIG_PM not enabled. 🧚
Other values and conditions for the above values are possible as returned by Runtime PM suspend callbacks. iykyk πŸ’œ

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file: ./include/linux/pm_runtime.h β€” plus the whole bestie roll call: 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_set_active(9), pm_runtime_set_suspended(9), pm_runtime_disable(9), pm_runtime_use_autosuspend(9), pm_runtime_dont_use_autosuspend(9). obsessed with this list tbh πŸ’…


mwah πŸ’– source: ./include/linux; date: October 2026; page: pm_runtime_..._autosuspend(9) β€” that’s the whole Kernel API Manual moment, bye bestie πŸŽ€

πŸ“¦ where this page comes from