[PATCH v3 1/4] clk: bcm: rpi: Let V3D consumers manage clock rate
Stefan Wahren
wahrenst at gmx.net
Sat Jan 24 05:24:28 PST 2026
Hi Maíra,
Am 16.01.26 um 21:19 schrieb Maíra Canal:
> Remove the `maximize` infrastructure and don't set `minimize` for the
> V3D clock, giving consumers full control over its rate.
>
> On some firmware versions, RPI_FIRMWARE_SET_CLOCK_STATE doesn't
> actually power off the clock. To achieve meaningful power consumption
> reduction, consumers need to set the clock rate to minimum before
> disabling it. Forcing the clock to maximum rate in the clock framework
> prevents this, as consumers don't have any flexibility over the clock
> rate.
not sure, if it's worth to document this important paragraph as a
comment in the driver?
Best regards
> This change enables the v3d driver to control the clock rate directly
> in its suspend/resume callbacks.
>
> Fixes: 6526402b9bac ("clk: bcm: rpi: Maximize V3D clock")
> Signed-off-by: Maíra Canal <mcanal at igalia.com>
> ---
> drivers/clk/bcm/clk-raspberrypi.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-raspberrypi.c
> index 1a9162f0ae31e330c46f6eafdd00350599b0eede..9783385d5859836898683209e320fcc928dfdc71 100644
> --- a/drivers/clk/bcm/clk-raspberrypi.c
> +++ b/drivers/clk/bcm/clk-raspberrypi.c
> @@ -68,7 +68,6 @@ struct raspberrypi_clk_variant {
> char *clkdev;
> unsigned long min_rate;
> bool minimize;
> - bool maximize;
> u32 flags;
> };
>
> @@ -136,7 +135,6 @@ raspberrypi_clk_variants[RPI_FIRMWARE_NUM_CLK_ID] = {
> },
> [RPI_FIRMWARE_V3D_CLK_ID] = {
> .export = true,
> - .maximize = true,
> },
> [RPI_FIRMWARE_PIXEL_CLK_ID] = {
> .export = true,
> @@ -387,9 +385,6 @@ static struct clk_hw *raspberrypi_clk_register(struct raspberrypi_clk *rpi,
> }
> }
>
> - if (variant->maximize)
> - variant->min_rate = max_rate;
> -
> if (variant->min_rate) {
> unsigned long rate;
>
>
More information about the linux-arm-kernel
mailing list