genpd_power_off(9)
β¨ genpd_power_off(9) β Kernel API Manual, bestie edition π
Okay so welcome to the Kernel API Manual page for genpd_power_off(9). We are lowkey in the PM domain corner of the kernel, where the whole goal is: everybody asleep? subdomains off? cool, cut the power. Let's go. π«Ά
πΈ NAME πΈ
genpd_power_off β Remove power from a given PM domain. π€β‘
π§Ύ SYNOPSIS π§Ύ
void genpd_power_off (struct generic_pm_domain *genpd , bool one_dev_on
, unsigned int depth );
π§© ARGUMENTS π§©
genpdβ the PM domain to power down. Bye, power! πone_dev_onβ If invoked from genpd's->runtime_suspend|resumecallback, the RPM status of the related device is in an intermediate state, not yet turned intoRPM_SUSPENDED. This meansgenpd_power_offmust allow one device to not beRPM_SUSPENDED, while it tries to power off the PM domain. So yeah, one device gets a little hall pass in that exact callback situation. πdepthβ nesting count forlockdep. Gotta keep lockdep happy. π
π DESCRIPTION π
If all of the genpd's devices have been suspended and all of its subdomains have been powered down, remove power from genpd. That's the vibe check: every device suspended, every subdomain powered down, and then the domain can actually power off. No skipping steps, bestie. β¨
π SEE ALSO π
Kernel file: ./drivers/pmdomain/core.c β that's where the source lives. π§
The whole reference crew:
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_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_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)
That's the whole squad, no cap. π
Okay that's the page, bestie! Source/version corner: ./drivers/pmdomain, dated October 2026, and we're back at genpd_power_off(9). Stay powered (or don't, depending on the domain π) β 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