genpd_complete(9)
π genpd_complete(9) π
okay so bestie, welcome to the Kernel API Manual β¨ this one's a tiny lil function but she's important, trust. no cap.
πΈ NAME πΈ
genpd_complete β literally completes the power transition of a device that lives in a power domain. that's the whole vibe. π
β¨ SYNOPSIS β¨
void genpd_complete (struct device *dev );
that's it. one arg. no return value (she's void, she gives nothing back and honestly? iconic). π
π ARGUMENTS π
devβ the device whose transition we're completing. like, the main character of this whole operation π«Ά
π¦ DESCRIPTION π¦
so what she actually does: she completes a power transition of a device β specifically during a system-wide power transition, so like the big group-chat-wide event, not just a lil one-on-one runtime thing β and she does it under the assumption that the device's pm_domain field points to the domain member of an object of type struct generic_pm_domain representing a power domain consisting of I/O devices.
read that again. it's giving "trust me bro, that pointer is valid." π so like, if you're calling this, your pm_domain better be pointing at the right thing, because she's operating on the assumption it does. no vibe check built in, no cap. π
π₯ SEE ALSO π₯
the kernel file this lives in:
./drivers/pmdomain/core.c
and now the entire squad, because she does not roll alone π :
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_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)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, bestie. go read them too, iykyk π§
π reminder: the description said "under the assumption" β she's not checking your pointer for you. that's on you. periodt.
and that's a wrap, bestie! π this page came from ./drivers/pmdomain (the source, slay) and it's dated October 2026, and you'll find it filed under genpd_complete(9) in your friendly neighborhood kernel man pages. 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