pm_genpd_remove(9)
π pm_genpd_remove(9) β from the Kernel API Manual, bestie β¨
okay so this is page pm_genpd_remove(9) out of the Kernel API Manual, and it's literally the "how do I get rid of a generic I/O PM domain" page π yes we're doing removal today, main character energy only.
πΈ NAME πΈ
pm_genpd_remove β Remove a generic I/O PM domain. that's it. that's the whole vibe. bye bye domain π
β¨ SYNOPSIS β¨
int pm_genpd_remove (struct generic_pm_domain *genpd );
it returns an int, it takes exactly one pointer, no cap π«Ά
π¦ ARGUMENTS π¦
genpdβ Pointer to PM domain that is to be removed. like, the domain you're sending to the shadow realm. this is your target, bestie π
π DESCRIPTION π
so to actually remove the PM domain, this function does two things, and honestly? efficient queen behavior:
- Removes the PM domain as a subdomain to any parent domains, if it was added. (note the if it was added β we're not out here detaching things that were never attached, okay? π)
- Removes the PM domain from the list of registered PM domains.
and now the part where you gotta listen, because this is the vibe check π β the PM domain will only be removed if all of these are true:
- the associated provider has been removed,
- it is not a parent to any other PM domain,
- and it has no devices associated with it.
so if it's still somebody's parent, or still got devices hanging onto it, or the provider's still around β no removal for you, bestie. the function is not gonna force it. it's giving "respect the boundaries" energy ππ
β SEE ALSO β
Kernel file ./drivers/pmdomain/core.c β that's the source, go read it, iykyk π§
and the whole extended friend group of related pages, in order, no skips:
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)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)
and that's the page!! π this lil drop is from ./drivers/pmdomain and it's dated October 2026 β so go forth, remove that domain only when it's truly ready to go, and slay ππ«Άπ
π¦ 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