All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH] clk: <linux/clk.h>: correct clk_get_parent() documentation
Date: Tue, 27 Apr 2021 19:03:54 +0100	[thread overview]
Message-ID: <20210427180354.GV1463@shell.armlinux.org.uk> (raw)
In-Reply-To: <9574eefa-84ed-8674-f575-be47d2a51a1c@infradead.org>

On Tue, Apr 27, 2021 at 10:07:04AM -0700, Randy Dunlap wrote:
> On 4/27/21 2:38 AM, Russell King - ARM Linux admin wrote:
> > On Mon, Apr 26, 2021 at 08:13:42PM -0700, Randy Dunlap wrote:
> >> Make the kernel-doc return value agree with both the stub implementation
> >> in <linux/clk.h> and the non-stub function in drivers/clk/clk.c.
> >>
> >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> >> Cc: Russell King <linux@armlinux.org.uk>
> >> Cc: linux-clk@vger.kernel.org
> >> ---
> >> There are several drivers that call clk_get_parent() and use its
> >> return value as though it returns an ERR_PTR(). I am working on a
> >> patch series to fix those.
> > 
> > The whole premise of the CLK API is that:
> > 
> > - clk values that IS_ERR() returns true are errors
> > - clk values that IS_ERR() returns false are valid
> > 
> > and that is that - nice, simple, easy to understand. So the
> > documentation is correct. If clk_get_parent() needs to return an
> > error, it does so by returning an error-pointer, not by returning
> > NULL.
> 
> Hm, so the 6 drivers that do this are OK then, if
> clk_get_parent() returns NULL?
> 
> 
> 	parent = clk_get_parent(clk);
> 	if (IS_ERR(parent)) {
> 		dev_err(cpu_dev, "Cannot get parent clock for CPU0\n");
> 		clk_put(clk);
> 		return PTR_ERR(parent);
> 	}
> 
> 	/* Get parent CPU frequency */
> 	base_frequency =  clk_get_rate(parent);
> 
> boom?

As I say, the premise is that only clocks where IS_ERR(clk) is true
are an error. Everything else must be treated as an acceptable clock.

Sometimes the NULL clock is used for "I don't have a clock", and that
must not cause the API to go "boom".

In the case of the CCF implementation, clk_get_rate(NULL) will return
0.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2021-04-27 18:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-27  3:13 [PATCH] clk: <linux/clk.h>: correct clk_get_parent() documentation Randy Dunlap
2021-04-27  9:38 ` Russell King - ARM Linux admin
2021-04-27 17:07   ` Randy Dunlap
2021-04-27 18:03     ` Russell King - ARM Linux admin [this message]
2021-04-27 18:10       ` Randy Dunlap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210427180354.GV1463@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.