dev_pm_genp...next_hrtimer(9)
π dev_pm_genp...next_hrtimer(9) π
okay bestie, welcome to the Kernel API Manual β yes that's the manual name, we're fancy here β and today's main character is dev_pm_genp...next_hrtimer(9). buckle up, this one's a quick little baddie but she's important. β¨
πΈ NAME πΈ
dev_pm_genpd_get_next_hrtimer β she returns the next_hrtimer for the genpd. that's it, that's the whole job, and she does it flawlessly. π
π SYNOPSIS π
ktime_t dev_pm_genpd_get_next_hrtimer (struct device *dev );
literally just hand her a device and she hands you back a ktime_t. no cap. π«Ά
π¦ ARGUMENTS π¦
devβ a device that is attached to the genpd. that's the vibe check: it has to be attached, iykyk.
β¨ DESCRIPTION β¨
so here's the tea β β this routine should typically be called for a device at the point of when a GENPD_NOTIFY_PRE_OFF notification has been sent for it. that's the moment. that's her window. don't be weird about it. π
what she gives you back is the aggregated value of the genpd's next hrtimer, or KTIME_MAX if no valid value have been set. so if nothing's been set, you're not getting a cute little number, you're getting KTIME_MAX. periodt. π
π SEE ALSO π
the kernel file herself: ./drivers/pmdomain/core.c π§
and now, the entire group chat β every single one of her mutuals, no one left on read:
dev_pm_genpd_set_performance_state(9)dev_pm_genpd_set_next_wakeup(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_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 is a whole friend group and they all live in the same directory. obsessed. π₯
okay that's the page, bestie! π this iconic little slice of documentation is from the kernel source tree at ./drivers/pmdomain, dated October 2026, and we've got the manual name Kernel API Manual up top so you always know where you are. go forth, get that next_hrtimer, 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