[PATCH] clk: Add is_enabled callback
Sascha Hauer
s.hauer at pengutronix.de
Tue Mar 19 06:36:49 EDT 2013
On Sat, Mar 16, 2013 at 10:58:54AM +0400, Alexander Shiyan wrote:
> > This allows us to better detect whether a clk is enabled or not.
> >
> > - If we can ask a clk, ask it. If it's enabled, go on and ask parents
> > - If we can't ask it, but it can be enabled, depend on the enable_count.
> > if it's positive, go on and ask parents
> > - If we can't ask it and it cannot be enabled, assume it is enabled
> > and ask parents.
> >
> > This makes the CLK_ALWAYS_ENABLED unnecessary, since the fixed clk now
> > always returns 1 in its is_enabled callback.
> >
> > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > ---
> > drivers/clk/clk-fixed.c | 2 +-
> > drivers/clk/clk-gate.c | 14 ++++++++++++
> > drivers/clk/clk.c | 61 +++++++++++++++++++++++++++++++++++++------------
> > include/linux/clk.h | 4 ++--
> > 4 files changed, 63 insertions(+), 18 deletions(-)
> >
> > diff --git a/drivers/clk/clk-fixed.c b/drivers/clk/clk-fixed.c
> > +
> > + if (val & (1 << g->shift))
> > + return 1;
> > + else
> > + return 0;
> > +}
>
> Make it simper, like:
> return !!(readl(g->reg) & (1 << g->shift));
>
Hm, do you find this simpler to read? The compiler will most likely
produce the same result.
> > unsigned int div;
> > @@ -202,6 +200,8 @@ struct clk *clk_mux(const char *name, void __iomem *reg,
> > struct clk *clk_gate(const char *name, const char *parent, void __iomem *reg,
> > u8 shift);
> >
> > +int clk_is_enabled_always(struct clk *clk);
>
> Used only in clk-fixed.c, is it really need to be declared global?
No, you're right. Will make this a local function in clk-fixed.c
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list