Hello. On 06/20/2012 11:25 PM, Ralf Baechle wrote:
+#include <linux/clk.h>
+static LIST_HEAD(clocks); +static DEFINE_MUTEX(clocks_mutex); + +struct clk *clk_get(struct device *dev, const char *name) +{ + struct clk *c; + struct clk *ret = NULL; + + mutex_lock(&clocks_mutex); + list_for_each_entry(c, &clocks, node) { + if (!strcmp(c->name, name)) { + ret = c; + break; + } + } + mutex_unlock(&clocks_mutex); + + return ret; +} +EXPORT_SYMBOL(clk_get);
This redefines a function that already is declared in <linux/clk.h> and defined in drivers/clk/clkdev.c. Why?
Because he doesn't support clkdev? clkdev support is optional.
+int clk_register(struct clk *clk) +{ + mutex_lock(&clocks_mutex); + list_add(&clk->node, &clocks); + if (clk->ops->init) + clk->ops->init(clk); + mutex_unlock(&clocks_mutex); + + return 0; +} +EXPORT_SYMBOL(clk_register);
Same here.
Ralf
WBR, Sergei