Merge commit 'v2.6.27-rc1' into for-linus
[firefly-linux-kernel-4.4.55.git] / include / asm-sh / clock.h
index 608fda55c0ea729c615f35e2382186b24ce0c800..720dfab7b15e5b5605714a3511436fd27103e6d9 100644 (file)
@@ -5,6 +5,7 @@
 #include <linux/list.h>
 #include <linux/seq_file.h>
 #include <linux/clk.h>
+#include <linux/err.h>
 
 struct clk;
 
@@ -30,6 +31,7 @@ struct clk {
 
        unsigned long           rate;
        unsigned long           flags;
+       unsigned long           arch_flags;
 };
 
 #define CLK_ALWAYS_ENABLED     (1 << 0)
@@ -46,6 +48,22 @@ void clk_recalc_rate(struct clk *);
 int clk_register(struct clk *);
 void clk_unregister(struct clk *);
 
+static inline int clk_always_enable(const char *id)
+{
+       struct clk *clk;
+       int ret;
+
+       clk = clk_get(NULL, id);
+       if (IS_ERR(clk))
+               return PTR_ERR(clk);
+
+       ret = clk_enable(clk);
+       if (ret)
+               clk_put(clk);
+
+       return ret;
+}
+
 /* the exported API, in addition to clk_set_rate */
 /**
  * clk_set_rate_ex - set the clock rate for a clock source, with additional parameter