[PATCH 02/29] clk: Add CLK_IS_BASIC flag to identify basic clocks

Turquette, Mike mturquette at ti.com
Wed Jul 4 02:18:42 EDT 2012


On Tue, Jul 3, 2012 at 5:34 AM, Rajendra Nayak <rnayak at ti.com> wrote:
> Hi Mike,
>
>
> On Thursday 14 June 2012 06:16 PM, Rajendra Nayak wrote:
>>
>> Most platforms end up using a mix of basic clock types and
>> some which use clk_hw_foo struct for filling in custom platform
>> information when the clocks don't fit into basic types supported.
>>
>> In platform code, its useful to know if a clock is using a basic
>> type or clk_hw_foo, which helps platforms know if they can
>> safely use to_clk_hw_foo to derive the clk_hw_foo pointer from
>> clk_hw.
>>
>> Mark all basic clocks with a CLK_IS_BASIC flag.
>>
>> Signed-off-by: Rajendra Nayak<rnayak at ti.com>
>
>
> While you have already pulled all of my other patches touching
> the Common Clk framework, which were part of this series, this is
> one patch where there hasn't been any discussion. Do you have any
> thoughts on this patch?
> See 'Patch 15/29:  ARM: omap: clk: list all clk_hw_omap clks to
> enable/disable autoidle' how I use this to create a clk_hw_omap
> specific list to handle clock autoidle in OMAP.
>

Hi Rajendra,

I don't have any outstanding review comments for this patch and I've
taken it into clk-next.  Pull the latest and you'll find it there.

Thanks,
Mike

> regards,
> Rajendra
>
>> ---
>>   drivers/clk/clk-divider.c      |    2 +-
>>   drivers/clk/clk-fixed-factor.c |    2 +-
>>   drivers/clk/clk-fixed-rate.c   |    2 +-
>>   drivers/clk/clk-gate.c         |    2 +-
>>   drivers/clk/clk-mux.c          |    2 +-
>>   include/linux/clk-private.h    |    2 +-
>>   include/linux/clk-provider.h   |    1 +
>>   7 files changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
>> index e4911ee..53f9dd7 100644
>> --- a/drivers/clk/clk-divider.c
>> +++ b/drivers/clk/clk-divider.c
>> @@ -266,7 +266,7 @@ struct clk *clk_register_divider(struct device *dev,
>> const char *name,
>>
>>         init.name = name;
>>         init.ops =&clk_divider_ops;
>> -       init.flags = flags;
>> +       init.flags = flags | CLK_IS_BASIC;
>>         init.parent_names = (parent_name ?&parent_name: NULL);
>>
>>         init.num_parents = (parent_name ? 1 : 0);
>>
>> diff --git a/drivers/clk/clk-fixed-factor.c
>> b/drivers/clk/clk-fixed-factor.c
>> index c8c003e..a489985 100644
>> --- a/drivers/clk/clk-fixed-factor.c
>> +++ b/drivers/clk/clk-fixed-factor.c
>> @@ -82,7 +82,7 @@ struct clk *clk_register_fixed_factor(struct device
>> *dev, const char *name,
>>
>>         init.name = name;
>>         init.ops =&clk_fixed_factor_ops;
>> -       init.flags = flags;
>> +       init.flags = flags | CLK_IS_BASIC;
>>         init.parent_names =&parent_name;
>>
>>         init.num_parents = 1;
>>
>> diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c
>> index cbd2462..7e14645 100644
>> --- a/drivers/clk/clk-fixed-rate.c
>> +++ b/drivers/clk/clk-fixed-rate.c
>> @@ -63,7 +63,7 @@ struct clk *clk_register_fixed_rate(struct device *dev,
>> const char *name,
>>
>>         init.name = name;
>>         init.ops =&clk_fixed_rate_ops;
>> -       init.flags = flags;
>> +       init.flags = flags | CLK_IS_BASIC;
>>         init.parent_names = (parent_name ?&parent_name: NULL);
>>
>>         init.num_parents = (parent_name ? 1 : 0);
>>
>> diff --git a/drivers/clk/clk-gate.c b/drivers/clk/clk-gate.c
>> index 578465e..15114fe 100644
>> --- a/drivers/clk/clk-gate.c
>> +++ b/drivers/clk/clk-gate.c
>> @@ -130,7 +130,7 @@ struct clk *clk_register_gate(struct device *dev,
>> const char *name,
>>
>>         init.name = name;
>>         init.ops =&clk_gate_ops;
>> -       init.flags = flags;
>> +       init.flags = flags | CLK_IS_BASIC;
>>         init.parent_names = (parent_name ?&parent_name: NULL);
>>
>>         init.num_parents = (parent_name ? 1 : 0);
>>
>> diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c
>> index fd36a8e..508c032 100644
>> --- a/drivers/clk/clk-mux.c
>> +++ b/drivers/clk/clk-mux.c
>> @@ -106,7 +106,7 @@ struct clk *clk_register_mux(struct device *dev, const
>> char *name,
>>
>>         init.name = name;
>>         init.ops =&clk_mux_ops;
>> -       init.flags = flags;
>> +       init.flags = flags | CLK_IS_BASIC;
>>         init.parent_names = parent_names;
>>         init.num_parents = num_parents;
>>
>> diff --git a/include/linux/clk-private.h b/include/linux/clk-private.h
>> index 2479239..0835bda 100644
>> --- a/include/linux/clk-private.h
>> +++ b/include/linux/clk-private.h
>> @@ -64,7 +64,7 @@ struct clk {
>>                 .parent_names = _parent_names,                  \
>>                 .num_parents = ARRAY_SIZE(_parent_names),       \
>>                 .parents = _parents,                            \
>> -               .flags = _flags,                                \
>> +               .flags = _flags | CLK_IS_BASIC,                 \
>>         }
>>
>>   #define DEFINE_CLK_FIXED_RATE(_name, _flags, _rate,           \
>> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
>> index aa63aca..4b94f59 100644
>> --- a/include/linux/clk-provider.h
>> +++ b/include/linux/clk-provider.h
>> @@ -25,6 +25,7 @@
>>   #define CLK_SET_RATE_PARENT   BIT(2) /* propagate rate change up one
>> level */
>>   #define CLK_IGNORE_UNUSED     BIT(3) /* do not gate even if unused */
>>   #define CLK_IS_ROOT           BIT(4) /* root clk, has no parent */
>> +#define CLK_IS_BASIC           BIT(5) /* Basic clk, can't do a
>> to_clk_foo() */
>>
>>   struct clk_hw;
>>
>



More information about the linux-arm-kernel mailing list