diff options
author | Andrey Panov <rockford@yandex.ru> | 2015-03-04 23:11:36 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-03-05 09:11:34 +0100 |
commit | 3f1aee73194dbd52820ea45e63aa5a542f36f012 (patch) | |
tree | 8875e8e6f876dbce781ccbed7f6b6f41ec03d71f /drivers/clk | |
parent | e3459c10ab9dbb91b73448bbbe3f1ea83881ecae (diff) | |
download | barebox-3f1aee73194dbd52820ea45e63aa5a542f36f012.tar.gz barebox-3f1aee73194dbd52820ea45e63aa5a542f36f012.tar.xz |
CLK: Check and do not allow to register clock twice
Signed-off-by: Andrey Panov <rockford@yandex.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/clk.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 584e2f3242..b77d0221c3 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -212,6 +212,16 @@ struct clk *clk_get_parent(struct clk *clk) int clk_register(struct clk *clk) { + struct clk *c; + + list_for_each_entry(c, &clks, list) { + if (!strcmp(c->name, clk->name)) { + pr_err("%s clk %s is already registered, skipping!\n", + __func__, clk->name); + return -EBUSY; + } + } + clk->parents = xzalloc(sizeof(struct clk *) * clk->num_parents); list_add_tail(&clk->list, &clks); |