genpd_sync_power_off(9)
π genpd_sync_power_off β from the Kernel API Manual, section (9)
okay so bestie, gather round, because this one is a sleeper hit. It's genpd_sync_power_off, and it lives in the Kernel API Manual at section 9 β very official, very demure.
β¨ NAME β¨
genpd_sync_power_off β Synchronously power off a PM domain and its parents. π«Ά
π SYNOPSIS π
void genpd_sync_power_off (struct generic_pm_domain *genpd , bool
use_lock , unsigned int depth );
like, that's the whole signature. no notes. π₯
πΈ ARGUMENTS πΈ
genpdβ PM domain to power off, if possible. (key words: if possible β girlie checks first, she's not reckless π )use_lockβ use the lock. that's it. that's the whole description. iconic brevity.depthβ nesting count for lockdep. it's giving "inception but for locks" π
π¦ DESCRIPTION π¦
So here's the vibe: this function checks if the given PM domain can be powered off β and it's specifically talking about during system suspend or hibernation, iykyk β and then it does that if so. β¨ And get this: also, in that case propagate to its parents. yes ma'am, the whole family tree gets the news. π
okay but fr fr, read this part twice: this function is only called in the"noirq"and"syscore"stages of system power transitions. And the"noirq"callbacks may be executed asynchronously, so in these cases the lock must be held. π not a suggestion, bestie β hold the lock.
π SEE ALSO π
Kernel file ./drivers/pmdomain/core.c β the mothership. π
And now, the extended genpd cinematic universe (all section 9, no cap):
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_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_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's the whole friend group. go say hi to all of them. π«Άπ
later bestie β this page came out of ./drivers/pmdomain, dated October 2026, and it'll be waiting for you under the very slay name genpd_sync_power_off(9). 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