]> www.infradead.org Git - users/hch/misc.git/commitdiff
clk: bcm: rpi: Create helper to retrieve private data
authorMaxime Ripard <mripard@kernel.org>
Thu, 16 Jan 2025 16:24:11 +0000 (16:24 +0000)
committerStephen Boyd <sboyd@kernel.org>
Thu, 16 Jan 2025 21:27:12 +0000 (13:27 -0800)
The RaspberryPi firmware clocks driver uses in several instances a
container_of to retrieve the struct raspberrypi_clk_data from a pointer
to struct clk_hw. Let's create a small function to avoid duplicating it
all over the place.

Acked-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Link: https://lore.kernel.org/r/20250116-bcm2712-clk-updates-v1-4-10bc92ffbf41@raspberrypi.com
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/bcm/clk-raspberrypi.c

index 9f716b2223ae14b52208beb69b519ca9a633d37b..b12d867202077021a474bf6519beb7ab8ff9dc4f 100644 (file)
@@ -56,6 +56,12 @@ struct raspberrypi_clk_data {
        struct raspberrypi_clk *rpi;
 };
 
+static inline
+const struct raspberrypi_clk_data *clk_hw_to_data(const struct clk_hw *hw)
+{
+       return container_of(hw, struct raspberrypi_clk_data, hw);
+}
+
 struct raspberrypi_clk_variant {
        bool            export;
        char            *clkdev;
@@ -176,8 +182,7 @@ static int raspberrypi_clock_property(struct rpi_firmware *firmware,
 
 static int raspberrypi_fw_is_prepared(struct clk_hw *hw)
 {
-       struct raspberrypi_clk_data *data =
-               container_of(hw, struct raspberrypi_clk_data, hw);
+       const struct raspberrypi_clk_data *data = clk_hw_to_data(hw);
        struct raspberrypi_clk *rpi = data->rpi;
        u32 val = 0;
        int ret;
@@ -194,8 +199,7 @@ static int raspberrypi_fw_is_prepared(struct clk_hw *hw)
 static unsigned long raspberrypi_fw_get_rate(struct clk_hw *hw,
                                             unsigned long parent_rate)
 {
-       struct raspberrypi_clk_data *data =
-               container_of(hw, struct raspberrypi_clk_data, hw);
+       const struct raspberrypi_clk_data *data = clk_hw_to_data(hw);
        struct raspberrypi_clk *rpi = data->rpi;
        u32 val = 0;
        int ret;
@@ -211,8 +215,7 @@ static unsigned long raspberrypi_fw_get_rate(struct clk_hw *hw,
 static int raspberrypi_fw_set_rate(struct clk_hw *hw, unsigned long rate,
                                   unsigned long parent_rate)
 {
-       struct raspberrypi_clk_data *data =
-               container_of(hw, struct raspberrypi_clk_data, hw);
+       const struct raspberrypi_clk_data *data = clk_hw_to_data(hw);
        struct raspberrypi_clk *rpi = data->rpi;
        u32 _rate = rate;
        int ret;
@@ -229,8 +232,7 @@ static int raspberrypi_fw_set_rate(struct clk_hw *hw, unsigned long rate,
 static int raspberrypi_fw_dumb_determine_rate(struct clk_hw *hw,
                                              struct clk_rate_request *req)
 {
-       struct raspberrypi_clk_data *data =
-               container_of(hw, struct raspberrypi_clk_data, hw);
+       const struct raspberrypi_clk_data *data = clk_hw_to_data(hw);
        struct raspberrypi_clk_variant *variant = data->variant;
 
        /*