mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From e8d0e03fcc00e871ecf963838d99b91b992252ea Mon Sep 17 00:00:00 2001
 | 
						|
From: Maxime Ripard <maxime@cerno.tech>
 | 
						|
Date: Mon, 11 Jul 2022 15:58:36 +0200
 | 
						|
Subject: [PATCH] clk: bcm: rpi: Create helper to retrieve private data
 | 
						|
 | 
						|
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 | 18 ++++++++++--------
 | 
						|
 1 file changed, 10 insertions(+), 8 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/clk/bcm/clk-raspberrypi.c
 | 
						|
+++ b/drivers/clk/bcm/clk-raspberrypi.c
 | 
						|
@@ -75,6 +75,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;
 | 
						|
@@ -187,8 +193,7 @@ static int raspberrypi_clock_property(st
 | 
						|
 
 | 
						|
 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;
 | 
						|
@@ -205,8 +210,7 @@ static int raspberrypi_fw_is_prepared(st
 | 
						|
 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;
 | 
						|
@@ -222,8 +226,7 @@ static unsigned long raspberrypi_fw_get_
 | 
						|
 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;
 | 
						|
@@ -240,8 +243,7 @@ static int raspberrypi_fw_set_rate(struc
 | 
						|
 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;
 | 
						|
 
 | 
						|
 	/*
 |