[PATCH 04/13] clk: clk-private: Add DEFINE_CLK macro

Turquette, Mike mturquette at ti.com
Wed Apr 18 17:01:00 EDT 2012


On Tue, Apr 17, 2012 at 4:15 AM, Viresh Kumar <viresh.kumar at st.com> wrote:
> All macros used for creating different kind of clocks have similar code for
> initializing struct clk. This patch removes those redundant lines and create
> another macro DEFINE_CLK.
>
> Signed-off-by: Viresh Kumar <viresh.kumar at st.com>

Viresh,

I want to kill off these macros entirely in the future.  That said,
your patch reduces LoC and the macros will certainly be there in 3.5,
so I'll take this into my -next branch.

Thanks,
Mike

> ---
>  include/linux/clk-private.h |   59 ++++++++++++++----------------------------
>  1 files changed, 20 insertions(+), 39 deletions(-)
>
> diff --git a/include/linux/clk-private.h b/include/linux/clk-private.h
> index e7032fd..eeae7a3 100644
> --- a/include/linux/clk-private.h
> +++ b/include/linux/clk-private.h
> @@ -55,6 +55,18 @@ struct clk {
>  * alternative macro for static initialization
>  */
>
> +#define DEFINE_CLK(_name, _ops, _flags, _parent_names,         \
> +               _parents)                                       \
> +       static struct clk _name = {                             \
> +               .name = #_name,                                 \
> +               .ops = &_ops,                                   \
> +               .hw = &_name##_hw.hw,                           \
> +               .parent_names = _parent_names,                  \
> +               .num_parents = ARRAY_SIZE(_parent_names),       \
> +               .parents = _parents,                            \
> +               .flags = _flags,                                \
> +       }
> +
>  #define DEFINE_CLK_FIXED_RATE(_name, _flags, _rate,            \
>                                _fixed_rate_flags)              \
>        static struct clk _name;                                \
> @@ -66,15 +78,8 @@ struct clk {
>                .fixed_rate = _rate,                            \
>                .flags = _fixed_rate_flags,                     \
>        };                                                      \
> -       static struct clk _name = {                             \
> -               .name = #_name,                                 \
> -               .ops = &clk_fixed_rate_ops,                     \
> -               .hw = &_name##_hw.hw,                           \
> -               .parent_names = _name##_parent_names,           \
> -               .num_parents =                                  \
> -                       ARRAY_SIZE(_name##_parent_names),       \
> -               .flags = _flags,                                \
> -       };
> +       DEFINE_CLK(_name, clk_fixed_rate_ops, _flags,           \
> +                       _name##_parent_names, NULL);
>
>  #define DEFINE_CLK_GATE(_name, _parent_name, _parent_ptr,      \
>                                _flags, _reg, _bit_idx,         \
> @@ -95,16 +100,8 @@ struct clk {
>                .flags = _gate_flags,                           \
>                .lock = _lock,                                  \
>        };                                                      \
> -       static struct clk _name = {                             \
> -               .name = #_name,                                 \
> -               .ops = &clk_gate_ops,                           \
> -               .hw = &_name##_hw.hw,                           \
> -               .parent_names = _name##_parent_names,           \
> -               .num_parents =                                  \
> -                       ARRAY_SIZE(_name##_parent_names),       \
> -               .parents = _name##_parents,                     \
> -               .flags = _flags,                                \
> -       };
> +       DEFINE_CLK(_name, clk_gate_ops, _flags,                 \
> +                       _name##_parent_names, _name##_parents);
>
>  #define DEFINE_CLK_DIVIDER(_name, _parent_name, _parent_ptr,   \
>                                _flags, _reg, _shift, _width,   \
> @@ -126,16 +123,8 @@ struct clk {
>                .flags = _divider_flags,                        \
>                .lock = _lock,                                  \
>        };                                                      \
> -       static struct clk _name = {                             \
> -               .name = #_name,                                 \
> -               .ops = &clk_divider_ops,                        \
> -               .hw = &_name##_hw.hw,                           \
> -               .parent_names = _name##_parent_names,           \
> -               .num_parents =                                  \
> -                       ARRAY_SIZE(_name##_parent_names),       \
> -               .parents = _name##_parents,                     \
> -               .flags = _flags,                                \
> -       };
> +       DEFINE_CLK(_name, clk_divider_ops, _flags,              \
> +                       _name##_parent_names, _name##_parents);
>
>  #define DEFINE_CLK_MUX(_name, _parent_names, _parents, _flags, \
>                                _reg, _shift, _width,           \
> @@ -151,16 +140,8 @@ struct clk {
>                .flags = _mux_flags,                            \
>                .lock = _lock,                                  \
>        };                                                      \
> -       static struct clk _name = {                             \
> -               .name = #_name,                                 \
> -               .ops = &clk_mux_ops,                            \
> -               .hw = &_name##_hw.hw,                           \
> -               .parent_names = _parent_names,                  \
> -               .num_parents =                                  \
> -                       ARRAY_SIZE(_parent_names),              \
> -               .parents = _parents,                            \
> -               .flags = _flags,                                \
> -       };
> +       DEFINE_CLK(_name, clk_mux_ops, _flags, _parent_names,   \
> +                       _parents);
>
>  /**
>  * __clk_init - initialize the data structures in a struct clk
> --
> 1.7.9
>


More information about the linux-arm-kernel mailing list