aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/samsung/clk-exynos4.c
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2014-06-18 11:46:52 -0400
committerTomasz Figa <t.figa@samsung.com>2014-06-30 09:07:55 -0400
commitd5e136a21b2028fb1f45143ea7112d5869bfc6c7 (patch)
tree5515a38250e241056cf3538bbbf6deec37812765 /drivers/clk/samsung/clk-exynos4.c
parentbdfcdf18c380a3c376b42709a89eb2cc52e95ae0 (diff)
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-exynos4.c')
-rw-r--r--drivers/clk/samsung/clk-exynos4.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c
index 7f4a473a7ad7..b08d310bd1bd 100644
--- a/drivers/clk/samsung/clk-exynos4.c
+++ b/drivers/clk/samsung/clk-exynos4.c
@@ -1252,6 +1252,8 @@ static void __init exynos4_clk_init(struct device_node *np,
1252 1252
1253 exynos4_clk_sleep_init(); 1253 exynos4_clk_sleep_init();
1254 1254
1255 samsung_clk_of_add_provider(np, ctx);
1256
1255 pr_info("%s clocks: sclk_apll = %ld, sclk_mpll = %ld\n" 1257 pr_info("%s clocks: sclk_apll = %ld, sclk_mpll = %ld\n"
1256 "\tsclk_epll = %ld, sclk_vpll = %ld, arm_clk = %ld\n", 1258 "\tsclk_epll = %ld, sclk_vpll = %ld, arm_clk = %ld\n",
1257 exynos4_soc == EXYNOS4210 ? "Exynos4210" : "Exynos4x12", 1259 exynos4_soc == EXYNOS4210 ? "Exynos4210" : "Exynos4x12",