genpd_sync_power_on(9)
β¨ genpd_sync_power_on β¨
okay so bestie, welcome to the Kernel API Manual, section 9 β today's main character is genpd_sync_power_on, and she is literally the girl who turns the lights on π‘
πΈ NAME πΈ
genpd_sync_power_on β synchronously power on a PM domain and its parents. yes, and its parents, she's respectful like that π«Ά
π SYNOPSIS π
void genpd_sync_power_on (struct generic_pm_domain *genpd , bool
use_lock , unsigned int depth );
notice the void? she does the work and gives you nothing back. no return value, no drama, no notes π
π¦ ARGUMENTS π¦
genpdβ the PM domain you want to power on. this is the girl. the whole point. π₯use_lockβ use the lock. that's it, that's the whole vibe. pass whether you're locking or not πdepthβ nesting count for lockdep. it's for the lock detective, so she knows how deep in the stack we're vibing. keep it accurate or things get weird π
π DESCRIPTION π
okay so listen β this function is only called in the "noirq" and "syscore" stages of system power transitions. only those two. no cap π«Ά
and here's the tea π: the "noirq" callbacks may be executed asynchronously, so in these cases the lock must be held.
β οΈ fr fr, it's giving "consequences". the lock must be held in those asynchronous "noirq" cases. don't skip it, bestie, that's not a vibe check you wanna fail π
π SEE ALSO π
she runs with a huge friend group, and honestly? iconic. every single one of them, coming through π
- Kernel file
./drivers/pmdomain/core.cβ the source file, the mothership π
the dev_pm_genpd_* girlies β¨
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)dev_pm_genpd_suspend(9)dev_pm_genpd_resume(9)dev_pm_genpd_add_notifier(9)dev_pm_genpd_remove_notifier(9)
the genpd_* core crew π
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_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)
the setup / teardown squad π§
pm_genpd_add_device(9)pm_genpd_remove_device(9)pm_genpd_add_subdomain(9)pm_genpd_remove_subdomain(9)pm_genpd_init(9)pm_genpd_remove(9)
the device-tree / provider besties πΈ
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)
the attach/detach & idle-states cuties π
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 group chat right there and they all ate π
π a little sign-off π
this whole thing lives in ./drivers/pmdomain, dated October 2026, and yeah that's the version/date stamp bestie β picture me blowing a kiss to the kernel docs π«Άβ¨ bye, go hold that lock π
π¦ 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