[PATCH v3 1/4] clk: bcm: rpi: Let V3D consumers manage clock rate

Melissa Wen mwen at igalia.com
Fri Jan 23 07:44:39 PST 2026



On 16/01/2026 17:19, Maíra Canal wrote:
> 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.
>
> This change enables the v3d driver to control the clock rate directly
> in its suspend/resume callbacks.

Acked-by: Melissa Wen <mwen at igalia.com>

>
> 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