Re: of_clk_add_(hw_)providers multipule times for one node?
From: Masahiro Yamada <hidden>
Date: 2016-08-25 04:23:11
Also in:
lkml
Hi Stephen, 2016-08-25 3:08 GMT+09:00 Stephen Boyd [off-list ref]:
quoted hunk ↗ jump to hunk
(Please trim replies) On 08/24, Masahiro Yamada wrote:quoted
Looks like the whole of my series was rejected, but I was not sure why the following one was rejected. https://patchwork.kernel.org/patch/9236563/Replying to that patch would have been better.quoted
Could you explain why -EPROBE_DEFER should be returned if both .get_hw and .get are missing.That's just a bug. Perhaps this patch would be better, and look, it saves 5 lines. ---8<---- drivers/clk/clk.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 71cc56712666..d3d26148cdfb 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c@@ -3174,19 +3174,14 @@ __of_clk_get_hw_from_provider(struct of_clk_provider *provider, struct of_phandle_args *clkspec) { struct clk *clk; - struct clk_hw *hw = ERR_PTR(-EPROBE_DEFER); - if (provider->get_hw) { - hw = provider->get_hw(clkspec, provider->data); - } else if (provider->get) { - clk = provider->get(clkspec, provider->data); - if (!IS_ERR(clk)) - hw = __clk_get_hw(clk); - else - hw = ERR_CAST(clk); - } + if (provider->get_hw) + return provider->get_hw(clkspec, provider->data); - return hw; + clk = provider->get(clkspec, provider->data); + if (IS_ERR(clk)) + return ERR_CAST(clk); + return __clk_get_hw(clk); } struct clk *__of_clk_get_from_provider(struct of_phandle_args *clkspec,
Good. Could you post it as a patch file? Thanks! -- Best Regards Masahiro Yamada