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@xxxxxxxxxxxxxx> > > --- > > 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 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox