Thread (57 messages) flat view 57 messages, 6 authors, 2012-09-17
STALE5081d

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

From: Turquette, Mike <hidden>
Date: 2012-07-04 06:18:42
Also in: linux-omap

On Tue, Jul 3, 2012 at 5:34 AM, Rajendra Nayak [off-list ref] wrote:
Hi Mike,


On Thursday 14 June 2012 06:16 PM, Rajendra Nayak wrote:
quoted
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<redacted>

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
quoted
---
  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;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help