mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-09-20 22:52:00 +00:00
clk: also handle ENOENT in *_optional functions
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> Reviewed-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20230818-clk-fix-v1-3-49ec18f820bf@outlook.com
This commit is contained in:
parent
0755db477f
commit
c4b52fda69
1 changed files with 5 additions and 3 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue