clk: bcm: rpi: Create helper to retrieve private data
authorMaxime Ripard <maxime@cerno.tech>
Mon, 11 Jul 2022 13:58:36 +0000 (15:58 +0200)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:33:29 +0000 (11:33 +0000)
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.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/clk/bcm/clk-raspberrypi.c

index f3a8ba6..4c7d9b8 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;
@@ -177,8 +183,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;
@@ -195,8 +200,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;
@@ -212,8 +216,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;
@@ -230,8 +233,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;
 
        /*