
On 8/17/23 13:04, Yang Xiwen via B4 Relay wrote:
From: Yang Xiwen forbidden405@outlook.com
If the device does not specify any clocks in device tree, these functions will return PTR_ERR(-ENOENT). This is not the intended behavior and does not comply with linux kernel CCF. Fix that by returning NULL under such circumstances instead.
Signed-off-by: Yang Xiwen forbidden405@outlook.com
include/clk.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/include/clk.h b/include/clk.h index d91285235f..f95da0838d 100644 --- a/include/clk.h +++ b/include/clk.h @@ -223,9 +223,11 @@ struct clk *devm_clk_get(struct udevice *dev, const char *id); static inline struct clk *devm_clk_get_optional(struct udevice *dev, const char *id) {
- int ret; struct clk *clk = devm_clk_get(dev, id);
- if (PTR_ERR(clk) == -ENODATA)
ret = PTR_ERR(clk);
if (ret == -ENODATA || ret == -ENOENT) return NULL;
return clk;
@@ -335,7 +337,7 @@ static inline int clk_get_by_name_optional(struct udevice *dev, int ret;
ret = clk_get_by_name(dev, name, clk);
- if (ret == -ENODATA)
if (ret == -ENODATA || ret == -ENOENT) return 0;
return ret;
@@ -359,7 +361,7 @@ static inline int clk_get_by_name_nodev_optional(ofnode node, const char *name, int ret;
ret = clk_get_by_name_nodev(node, name, clk);
- if (ret == -ENODATA)
if (ret == -ENODATA || ret == -ENOENT) return 0;
return ret;
Reviewed-by: Sean Anderson seanga2@gmail.com