]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks
authorMaíra Canal <mcanal@igalia.com>
Thu, 12 Mar 2026 21:34:23 +0000 (18:34 -0300)
committerStephen Boyd <sboyd@kernel.org>
Wed, 25 Mar 2026 02:06:09 +0000 (19:06 -0700)
commit672299736af6c398e867782708b7400957e62c76
tree09799d1a10235b1308fb4b74a3411db02e882f76
parentc369299895a591d96745d6492d4888259b004a9e
clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks

On current firmware versions, RPI_FIRMWARE_SET_CLOCK_STATE doesn't
actually power off the clock. To achieve meaningful power savings, the
clock rate must be set to the minimum before disabling. This might be
fixed in future firmware releases.

Rather than pushing rate management to clock consumers, handle it
directly in the clock framework's prepare/unprepare callbacks. In
unprepare, set the rate to the minimum before disabling the clock.
In prepare, for clocks marked with `maximize` (currently v3d),
restore the rate to the maximum after enabling.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/bcm/clk-raspberrypi.c