From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755553AbcHXSSH (ORCPT ); Wed, 24 Aug 2016 14:18:07 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43125 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755056AbcHXSSE (ORCPT ); Wed, 24 Aug 2016 14:18:04 -0400 Date: Wed, 24 Aug 2016 11:08:06 -0700 From: Stephen Boyd To: Masahiro Yamada Cc: Rob Herring , linux-clk , Michael Turquette , Linux Kernel Mailing List Subject: Re: of_clk_add_(hw_)providers multipule times for one node? Message-ID: <20160824180806.GE19826@codeaurora.org> References: <20160804212553.GB15690@codeaurora.org> <20160808233711.GA2996@codeaurora.org> <20160810230845.GH2996@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (Please trim replies) On 08/24, Masahiro Yamada wrote: > > 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. > > 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, > > > Is there a way to register an OF clk provider without .get(_hw), > but fill it later or something? > No. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project