summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Stueber <heiko@sntech.de>2013-03-18 13:43:52 +0900
committerKukjin Kim <kgene.kim@samsung.com>2013-03-28 14:46:18 +0900
commit2466196d3e4f1fbe902ca8480bf4a03db78572b2 (patch)
tree7c63d1b18efbd2e9b2d1cc0a50d22212cfeffacd
parent798ed613f5db7f61a7773412b9a6bc3d37d17ecb (diff)
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>
-rw-r--r--drivers/clk/samsung/clk.c25
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 */