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 <[email protected]>
---
  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;

Reply via email to