acpi_subsys_resume(9)
π acpi_subsys_resume β the kernel-API manual, bestie edition π
okay so this is a page from the Kernel API Manual (manual name: acpi_subsys_resume, section 9 β the fancy kernel-internals section, iykyk), and it's about one tiny little function that wakes your device back up. it's short, it's sweet, it's giving "little function, big responsibility." let's get into it β¨
πΈ NAME πΈ
acpi_subsys_resume β literally just: Resume device using ACPI. that's it. that's the whole vibe. your device is asleep, ACPI is the friend who goes "girl, wake UP" π«Ά
β¨ SYNOPSIS β¨
int acpi_subsys_resume (struct device *dev );
so it returns an int (because of course it does, every kernel function does), it's called acpi_subsys_resume, and it takes exactly one thing: a pointer to a struct device. no cap, that's the whole signature π
π ARGUMENTS π
devβ the Device to Resume. that's the one, that's the little guy you're bringing back to life. main character energy, honestly π
π¦ DESCRIPTION π¦
okay so here's what's actually happening, and it's lowkey elegant:
it uses ACPI to put the given device into the full-power state β but only if that device hasn't already been powered up during the early resume phase. like, if someone already woke it up earlier in the process, no need to double-dip, we're not doing redundant work in this house π
and then, on top of that, it carries out the generic resume procedure for the device β this is during the system's transition into the working state, so basically when everything's coming back online and we're all returning to our normal lives π«
so: full power (conditionally!) + generic resume = device is back, awake, and thriving. periodt π
nothing scary here, no undefined behaviour, no warnings, we're just being polite to hardware. still β conditional logic means "if it's already powered, skip that step," so don't go assuming it always flips the power state π
π₯ SEE ALSO π₯
buckle up bestie, this is the long one, but every single one of these is a real sibling function and they all deserve their moment π
the kernel file this lives in is ./drivers/acpi/device_pm.c and here's the whole friend group:
acpi_power_state_string(9)acpi_device_get_power(9)acpi_device_set_power(9)acpi_device_fix_up_power(9)acpi_device_fix_up_power_extended(9)acpi_device_fix_up_power_children(9)acpi_dev_power_up_children_with_adr(9)acpi_dev_power_state_for_wake(9)acpi_add_pm_notifier(9)acpi_remove_pm_notifier(9)acpi_dev_pm_get_state(9)acpi_pm_device_sleep_state(9)acpi_pm_notify_work_func(9)acpi_device_wakeup_enable(9)acpi_device_wakeup_disable(9)acpi_pm_set_device_wakeup(9)acpi_dev_pm_low_power(9)acpi_dev_pm_full_power(9)acpi_dev_suspend(9)acpi_dev_resume(9)acpi_subsys_runtime_suspend(9)acpi_subsys_runtime_resume(9)acpi_subsys_prepare(9)acpi_subsys_complete(9)acpi_subsys_suspend(9)acpi_subsys_suspend_late(9)acpi_subsys_suspend_noirq(9)acpi_subsys_resume_noirq(9)acpi_subsys_resume_early(9)acpi_subsys_freeze(9)acpi_subsys_restore_early(9)acpi_subsys_poweroff(9)acpi_subsys_poweroff_late(9)acpi_subsys_poweroff_noirq(9)acpi_dev_pm_detach(9)acpi_dev_pm_attach(9)acpi_storage_d3(9)acpi_dev_state_d0(9)
like, the whole suspend/resume/freeze/poweroff cinematic universe is right there. go read them, they're all icons π§
π the cute sign-off π
this page lives in ./drivers/acpi, and it's dated October 2026 β so yeah, it's from the future, and it's still serving π mwah, go wake up some hardware, bestie πΈπβ¨
π¦ 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