clk_pm_runtime_get_all(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to the clk_pm_runtime_get_all(9) page from the Kernel API Manual ✨ this one is a runtime-PM anti-deadlock baddie and she ate πŸ’…

πŸ’– NAME πŸ’–

clk_pm_runtime_get_all β€” runtime "get" all clk provider devices, no cap πŸ‘‘


✨ SYNOPSIS ✨

int clk_pm_runtime_get_all (void );

πŸŽ€ ARGUMENTS πŸŽ€

  • void β€” no arguments. literally none. not a single little guy. 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the whole move here is: call clk_pm_runtime_get on all runtime PM enabled clks in the clk tree so that disabling unused clks avoids a deadlock. yes, deadlock. the final boss of "why is my kernel stuck" energy πŸ’€

the deadlock situation is giving: a device is runtime PM resuming/suspending, and the runtime PM callback is trying to grab the prepare_lock for something like clk_prepare_enable, while clk_disable_unused_subtree holds the prepare_lock and is trying to runtime PM resume/suspend the device as well. circular wait vibes, absolutely not iconic 😭


πŸ”’ CONTEXT πŸ”’

acquires the 'clk_rpm_list_lock' and returns with the lock held on success. otherwise the lock is released on failure. no sneaky half-held lock energy, bestie πŸ”


⭐ RETURN ⭐

  • 0 on success
  • negative errno otherwise

that's the whole mood. success = 0, anything else = negative errno 🫑


🌈 SEE ALSO 🌈

the whole squad, in original order, no skips:


okay that's the page, bestie πŸ’– source/version stamp: ./drivers/clk; date on this cutie: October 2026; and yes, it's still the clk_pm_runtime_get_all(9) manual page. bye bestie, go get all those clks 🫢✨

πŸ“¦ where this page comes from