summaryrefslogtreecommitdiff
path: root/drivers/clk/samsung/clk-exynos5260.c
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2014-06-18 15:46:52 (GMT)
committerTomasz Figa <t.figa@samsung.com>2014-06-30 13:07:55 (GMT)
commitd5e136a21b2028fb1f45143ea7112d5869bfc6c7 (patch)
tree5515a38250e241056cf3538bbbf6deec37812765 /drivers/clk/samsung/clk-exynos5260.c
parentbdfcdf18c380a3c376b42709a89eb2cc52e95ae0 (diff)
downloadlinux-d5e136a21b2028fb1f45143ea7112d5869bfc6c7.tar.xz
clk: samsung: Register clk provider only after registering its all clocks
Ensure the clock provider is not registered until after all its related clocks were created and are ready to use. Currently there are races possible and any (of_)clk_get() call right after a clock provider's clk_init_cb callback call may fail. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Diffstat (limited to 'drivers/clk/samsung/clk-exynos5260.c')
-rw-r--r--drivers/clk/samsung/clk-exynos5260.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/clk/samsung/clk-exynos5260.c b/drivers/clk/samsung/clk-exynos5260.c
index 64596ba..ce3de97 100644
--- a/drivers/clk/samsung/clk-exynos5260.c
+++ b/drivers/clk/samsung/clk-exynos5260.c
@@ -206,6 +206,8 @@ void __init exynos5260_cmu_register_one(struct device_node *np,
if (cmu->clk_regs)
exynos5260_clk_sleep_init(reg_base, cmu->clk_regs,
cmu->nr_clk_regs);
+
+ samsung_clk_of_add_provider(np, ctx);
}