[PATCH 01/13] clk: Add non CONFIG_HAVE_CLK routines

viresh kumar viresh.linux at gmail.com
Sat Apr 21 09:47:13 EDT 2012


On 4/21/12, Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:
> On Sat, Apr 21, 2012 at 05:17:28PM +0530, Viresh Kumar wrote:
>> Many drivers are shared between architectures that may or may not have
>> HAVE_CLK
>> selected for them. To remove compilation errors for them we enclose
>> clk_*()
>> calls in these drivers within #ifdef CONFIG_HAVE_CLK, #endif.
>
> All you're doing is making drivers buildable.  Drivers will not be usable
> with this (they'll error out because clk_get() will fail.)
>
> For example:
>
> -#ifndef CONFIG_HAVE_CLK
> -/* Dummy stub for clk framework */
> -#define clk_get(dev, id)       NULL
> -#define clk_put(clock)         do {} while (0)
> -#define clk_enable(clock)      do {} while (0)
> -#define clk_disable(clock)     do {} while (0)
> -#endif
> -
>
> along with your change in this patch changes the drivers behaviour.

I tried to take care of these issues, but unfortunately
i couldn't.

Patch numbers 6, 12 & 13 will actually break drivers. Will ask Andrew
to drop them.

> A better solution would be to assume that if HAVE_CLK is not set, then
> that means there's no control over clocks, and therefore the clk API
> should become totally transparent and non-failure inducing.  So, having
> clk_get() return NULL, and having all the other clk API functions ignore
> their argument (just like the macros above) is the right solution here.

Will leave these macros as is for mentioned patches.

--
viresh



More information about the linux-arm-kernel mailing list