mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
clk: Dont return error when assigned-clocks is empty or missing
There is a chance that assigned-clock-rates is given and assigned-clocks could be empty. Dont return error in that case, because the probe of the corresponding driver will not be called at all if this fails. Better to continue to look for it and return 0. Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com> Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/a9a9d853e0ac396cd9b3577cce26279a75765711.1693384296.git.michal.simek@amd.com
This commit is contained in:
parent
e5e6b1ed6c
commit
99b46477e3
3 changed files with 32 additions and 1 deletions
|
@ -614,6 +614,22 @@
|
|||
clock-names = "fixed", "i2c", "spi", "uart2", "uart1";
|
||||
};
|
||||
|
||||
clk-test2 {
|
||||
compatible = "sandbox,clk-test";
|
||||
assigned-clock-rates = <321>;
|
||||
};
|
||||
|
||||
clk-test3 {
|
||||
compatible = "sandbox,clk-test";
|
||||
assigned-clocks = <&clk_sandbox 1>;
|
||||
};
|
||||
|
||||
clk-test4 {
|
||||
compatible = "sandbox,clk-test";
|
||||
assigned-clock-rates = <654>, <321>;
|
||||
assigned-clocks = <&clk_sandbox 1>;
|
||||
};
|
||||
|
||||
ccf: clk-ccf {
|
||||
compatible = "sandbox,clk-ccf";
|
||||
};
|
||||
|
|
|
@ -329,7 +329,13 @@ static int clk_set_default_rates(struct udevice *dev,
|
|||
dev_dbg(dev,
|
||||
"could not get assigned clock %d (err = %d)\n",
|
||||
index, ret);
|
||||
continue;
|
||||
/* Skip if it is empty */
|
||||
if (ret == -ENOENT) {
|
||||
ret = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* This is clk provider device trying to program itself
|
||||
|
|
|
@ -36,6 +36,15 @@ static int dm_test_clk_base(struct unit_test_state *uts)
|
|||
ut_asserteq(clk_is_match(&clk_method1, &clk_method2), true);
|
||||
ut_asserteq(clk_method1.id, clk_method2.id);
|
||||
|
||||
ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "clk-test2", &dev));
|
||||
ut_assertok(clk_set_defaults(dev, CLK_DEFAULTS_PRE));
|
||||
|
||||
ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "clk-test3", &dev));
|
||||
ut_assertok(clk_set_defaults(dev, CLK_DEFAULTS_PRE));
|
||||
|
||||
ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "clk-test4", &dev));
|
||||
ut_assertok(clk_set_defaults(dev, CLK_DEFAULTS_PRE));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue