Inconsistency in clk framework
Russell King - ARM Linux
linux at arm.linux.org.uk
Wed Dec 19 04:26:36 EST 2012
On Wed, Dec 19, 2012 at 05:10:33PM +1300, Tony Prisk wrote:
> Hi Mike,
>
> In attempting to remove some IS_ERR_OR_NULL references, it was pointed
> out that clk_get() can return NULL if CONFIG_HAVE_CLK is not defined.
That is correct - but why is that a problem? As far as users are
concerned, NULL is a valid clock. If HAVE_CLK is undefined, do you
want all your drivers to suddenly stop working?
> This seems to contradict the kernel docs associated with the normal
> clk_get (when HAVE_CLK is defined) which states:
>
> * Returns a struct clk corresponding to the clock producer, or
> * valid IS_ERR() condition containing errno.
>
> Wouldn't a return code of ERR_PTR(-ENOENT) make more sense and be inline
> with the empty of_ versions as well (which return -ENOENT when CONFIG_OF
> is undefined).
No.
> Also, I noticed that clk_get_sys() doesn't appear to be defined in clk.h
> when HAVE_CLK is undefined - is this correct?
It was never promoted to an official API because its only platform code
which should be using it; no device driver (which should have a struct
device to pass into clk_get()) should ever use clk_get_sys().
More information about the linux-arm-kernel
mailing list