genpd_prepare(9)
π genpd_prepare(9) β the Kernel API Manual page you actually wanna read
okay so bestie, welcome to the Kernel API Manual entry for genpd_prepare. it's a tiny little function with a big job and i'm gonna walk you through it like we're on facetime π«Ά
β¨ NAME β¨
genpd_prepare β start the power transition of a device that lives in a PM domain. literally its whole personality π
πΈ SYNOPSIS πΈ
int genpd_prepare (struct device *dev );
yes that's it. one arg. no cap. π
π¦ ARGUMENTS π¦
devβ the device you're starting the transition of. that's the one. hand it over and let genpd do its thing β¨
π₯ DESCRIPTION π₯
so here's the tea: genpd_prepare kicks off a power transition of a device β and to be clear, this happens during a system-wide power transition, not just any random tuesday π
and it does this under the assumption that the device's pm_domain field points to the domain member of an object of type struct generic_pm_domain β which represents a PM domain consisting of I/O devices. π§
bestie pls note: it literally says "under the assumption" β so this function is trusting you to have set things up right. it's not out here double-checking your work. main character energy, but also, be careful π
π SEE ALSO π
first up, the source of truth β the kernel file itself:
./drivers/pmdomain/core.c
and now the whole friend group π (yes, all of them, i'm not skipping a single one):
dev_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_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_restore_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)
like, that is an iconic amount of cross-references and every single one of them ate π π₯
and that's the whole page bestie β go forth and transition those power domains responsibly π¦β¨
this gem comes to you from the ./drivers/pmdomain source tree, dated October 2026 β see you in the next release, mwah π
π¦ 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