genpd_restore_noirq(9)
π genpd_restore_noirq(9) β bestie edition
okay so this is a page from the Kernel API Manual (yes, the kernel has lore, and yes, we're reading it together π«Ά). It's short, it's sweet, and it's literally about waking a device back up after a hibernation glow-up. Let's get into it β¨
πΈ NAME
genpd_restore_noirq β the moment a device in an I/O PM domain starts its restore arc. main character energy fr π
β SYNOPSIS
int genpd_restore_noirq (struct device *dev );
that's it. one function, one argument, one int coming back at you. no cap π
π¦ ARGUMENTS
devβ the device we're resuming. like, the one actually coming back to life. it's giving "rise and shine" π
π DESCRIPTION
okay so here's the vibe check: this function makes sure the domain will be in the same power state as before the hibernation the system is resuming from β same state, no surprises, everything matching like a coordinated outfit π β and then it starts the device if necessary. that's the whole gig. it's not doing extra, it's not overstepping, it's just getting that power state back in line and nudging the device awake if it needs the nudge. iconic behaviour honestly πβ¨
π₯ SEE ALSO
the friend group. the whole squad. every single one of them is here and they all deserve a shoutout π«Άπ
Kernel file ./drivers/pmdomain/core.cdev_pm_genpd_set_performance_state(9)dev_pm_genpd_set_next_wakeup(9)dev_pm_genpd_get_next_hrtimer(9)dev_pm_genpd_set_hwmode(9)dev_pm_genpd_get_hwmode(9)dev_pm_genpd_rpm_always_on(9)dev_pm_genpd_is_on(9)pm_genpd_inc_rejected(9)genpd_queue_power_off_work(9)genpd_power_off(9)genpd_power_on(9)genpd_power_off_work_fn(9)__genpd_runtime_suspend(9)__genpd_runtime_resume(9)genpd_runtime_suspend(9)genpd_runtime_resume(9)genpd_power_off_unused(9)genpd_sync_power_off(9)genpd_sync_power_on(9)genpd_prepare(9)genpd_finish_suspend(9)genpd_suspend_noirq(9)genpd_finish_resume(9)genpd_resume_noirq(9)genpd_freeze_noirq(9)genpd_thaw_noirq(9)genpd_poweroff_noirq(9)genpd_complete(9)dev_pm_genpd_suspend(9)dev_pm_genpd_resume(9)pm_genpd_add_device(9)pm_genpd_remove_device(9)dev_pm_genpd_add_notifier(9)dev_pm_genpd_remove_notifier(9)pm_genpd_add_subdomain(9)pm_genpd_remove_subdomain(9)pm_genpd_init(9)pm_genpd_remove(9)struct of_genpd_provider(9)genpd_xlate_simple(9)genpd_xlate_onecell(9)genpd_add_provider(9)of_genpd_add_provider_simple(9)of_genpd_add_provider_onecell(9)of_genpd_del_provider(9)genpd_get_from_provider(9)of_genpd_add_child_ids(9)of_genpd_remove_child_ids(9)of_genpd_add_device(9)of_genpd_add_subdomain(9)of_genpd_remove_subdomain(9)of_genpd_remove_last(9)genpd_dev_pm_detach(9)genpd_dev_pm_attach(9)genpd_dev_pm_attach_by_id(9)genpd_dev_pm_attach_by_name(9)of_genpd_parse_idle_states(9)of_genpd_sync_state(9)
ngl that's a lot of cross-references and you should lowkey go read them all. iykyk π§
π sign-off
and that's the page!! this lil drop lives over in ./drivers/pmdomain (the core.c file in there is where the magic happens, no cap), stamped October 2026, and yes it's part of the Kernel API Manual set π slay, go restore some devices 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