[PATCH 2/2] clk: Generic support for fixed-rate clocks
Jeremy Kerr
jeremy.kerr at canonical.com
Mon Dec 13 07:35:37 EST 2010
Hi Sascha,
> > +extern struct clk_ops clk_fixed_ops;
> > +
> > +#define INIT_CLK_FIXED(name, r) { \
> > + .clk = INIT_CLK(name.clk, clk_fixed_ops), \
> > + .rate = (r) \
> > +}
>
> Is there any other valid usecase for this other than
>
> struct clk_fixed bla = INIT_CLK_FIXED(bla, rate);
>
> Otherwise I suggest to convert the macro to:
>
> #define INIT_CLK_FIXED(name, r) \
> struct clk_fixed name = { \
> .clk = INIT_CLK(name.clk, clk_fixed_ops), \
> .rate = (r) \
> }
>
> This way we do not have to specify the same name twice (and it has
> to be exactly the same name, otherwise it won't compile).
For the system-wide INIT_CLK* macros, I've intentionally made them initalisers
rather than declarators, so that we can use them in other declarators (ie, the
usage of INIT_CLK() above). This would be relevant if someone is using
clk_fixed in their struct - probably not likely, but good to be consistent.
But yes, it would be good to avoid having to specify the name twice - how
about adding a:
#define DEFINE_CLK_FIXED(name, r) \
struct clk_fixed name = INIT_CLK_FIXED(name, r)
- just like DEFINE_MUTEX and MUTEX_INITIALIZER.
Cheers,
Jeremy
More information about the linux-arm-kernel
mailing list