of_genpd_add_subdomain(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– of_genpd_add_subdomain(9) β€” Kernel API Manual, but make it make sense πŸ’–

okay so bestie, this is a page from the Kernel API Manual and it's all about of_genpd_add_subdomain β€” yeah that's a mouthful, but it's lowkey iconic once you get it. Let's get into it ✨


🌸 NAME 🌸

of_genpd_add_subdomain β€” Add a subdomain to an I/O PM domain. that's the whole vibe, that's the assignment πŸŽ€


✨ SYNOPSIS ✨

int of_genpd_add_subdomain (const struct of_phandle_args *parent_spec ,
const struct of_phandle_args *subdomain_spec );

two specs, one int. simple as that πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • parent_spec β€” the OF phandle args we use to look up the parent PM domain. like, who's the parent in this situation πŸ‘€
  • subdomain_spec β€” the OF phandle args we use to look up the subdomain. the baby of the family 🍼

πŸ’œ DESCRIPTION πŸ’œ

so basically it looks up a parent PM domain and a subdomain based on the phandle args you hand it, and then it adds the subdomain to the parent PM domain. a little family reunion, no cap 🫢

and if it fails? it returns a negative error code. so like, if you see a negative number coming back, that's not good energy, that's an error 😭 check it.


🌈 SEE ALSO 🌈

the kernel file this lives in, bestie:

  • ./drivers/pmdomain/core.c

and now the extended friend group (say hi to everyone, all of them, no skipping πŸ‘‘):

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), 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_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 a whole friend group and honestly? obsessed πŸ’€


aaaand that's the page πŸŽ€ this little beauty comes from the ./drivers/pmdomain source, dated October 2026, and yeah β€” the title is still of_genpd_add_subdomain(9) because some things never change, and that's on periodt πŸ’…βœ¨

πŸ“¦ where this page comes from