diff options
author | Heiko Stueber <heiko@sntech.de> | 2013-03-18 13:43:52 +0900 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-03-28 14:46:18 +0900 |
commit | 2466196d3e4f1fbe902ca8480bf4a03db78572b2 (patch) | |
tree | 7c63d1b18efbd2e9b2d1cc0a50d22212cfeffacd /drivers/clk/samsung/clk.c | |
parent | 798ed613f5db7f61a7773412b9a6bc3d37d17ecb (diff) | |
download | linux-2466196d3e4f1fbe902ca8480bf4a03db78572b2.tar.gz linux-2466196d3e4f1fbe902ca8480bf4a03db78572b2.tar.bz2 linux-2466196d3e4f1fbe902ca8480bf4a03db78572b2.zip |
clk: samsung: fix pm init on non-dt platforms
The clock_init function checked for a dt node, returning immediately
for non-dt machines. This let to the suspend init never being reached
on those non-DT machines.
So fix this by moving the pm init code above the check.
Signed-off-by: Heiko Stueber <heiko@sntech.de>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'drivers/clk/samsung/clk.c')
-rw-r--r-- | drivers/clk/samsung/clk.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c index d36cdd511761..ca04b9e61588 100644 --- a/drivers/clk/samsung/clk.c +++ b/drivers/clk/samsung/clk.c @@ -57,18 +57,6 @@ void __init samsung_clk_init(struct device_node *np, void __iomem *base, unsigned long nr_rdump) { reg_base = base; - if (!np) - return; - -#ifdef CONFIG_OF - clk_table = kzalloc(sizeof(struct clk *) * nr_clks, GFP_KERNEL); - if (!clk_table) - panic("could not allocate clock lookup table\n"); - - clk_data.clks = clk_table; - clk_data.clk_num = nr_clks; - of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); -#endif #ifdef CONFIG_PM_SLEEP if (rdump && nr_rdump) { @@ -87,6 +75,19 @@ void __init samsung_clk_init(struct device_node *np, void __iomem *base, register_syscore_ops(&samsung_clk_syscore_ops); } #endif + + if (!np) + return; + +#ifdef CONFIG_OF + clk_table = kzalloc(sizeof(struct clk *) * nr_clks, GFP_KERNEL); + if (!clk_table) + panic("could not allocate clock lookup table\n"); + + clk_data.clks = clk_table; + clk_data.clk_num = nr_clks; + of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); +#endif } /* add a clock instance to the clock lookup table used for dt based lookup */ |