[RFC PATCH] clk: fix clk_get_rate() always return ulong

Julien Masson jmasson at baylibre.com
Fri Aug 26 12:31:15 CEST 2022


According to clk_ops struct definition, the callback `get_rate()`
return current clock rate value as ulong.
`clk_get_rate()` should handle the clock rate returned as ulong also.

Otherwise we may have invalid/truncated clock rate value returned by
`clk_get_rate()`.

`log_ret` has also been removed since it use an `int` in the macro
definition.

Signed-off-by: Julien Masson <jmasson at baylibre.com>
---
 drivers/clk/clk-uclass.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index b89c77bf79..446f7c49b8 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -469,7 +469,7 @@ void clk_free(struct clk *clk)
 ulong clk_get_rate(struct clk *clk)
 {
 	const struct clk_ops *ops;
-	int ret;
+	ulong ret;
 
 	debug("%s(clk=%p)\n", __func__, clk);
 	if (!clk_valid(clk))
@@ -481,7 +481,7 @@ ulong clk_get_rate(struct clk *clk)
 
 	ret = ops->get_rate(clk);
 	if (ret)
-		return log_ret(ret);
+		return ret;
 
 	return 0;
 }
-- 
2.37.2



More information about the U-Boot mailing list