Commit 1e1fab0b authored by Tero Kristo's avatar Tero Kristo Committed by Lokesh Vutla
Browse files

clk: fix assigned-clocks to pass with deferring provider



If a clock provider is not ready for assigning default rates/parents
during its probe, it may return -EPROBE_DEFER directly from xlate.
Handle this special case properly by skipping the entry and adjusting the
return value to pass. The defaults will be handled properly in post probe
phase then.
Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
Signed-off-by: default avatarTero Kristo <kristo@kernel.org>
parent c319572a
......@@ -241,6 +241,15 @@ static int clk_set_default_parents(struct udevice *dev, int stage)
ret = clk_get_by_indexed_prop(dev, "assigned-clocks",
index, &clk);
/*
* If the clock provider is not ready yet, let it handle
* the re-programming later.
*/
if (ret == -EPROBE_DEFER) {
ret = 0;
continue;
}
if (ret) {
debug("%s: could not get assigned clock %d for %s\n",
__func__, index, dev_read_name(dev));
......@@ -309,6 +318,15 @@ static int clk_set_default_rates(struct udevice *dev, int stage)
ret = clk_get_by_indexed_prop(dev, "assigned-clocks",
index, &clk);
/*
* If the clock provider is not ready yet, let it handle
* the re-programming later.
*/
if (ret == -EPROBE_DEFER) {
ret = 0;
continue;
}
if (ret) {
dev_dbg(dev,
"could not get assigned clock %d (err = %d)\n",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment