clk: samsung: fix pm init on non-dt platforms
authorHeiko Stueber <heiko@sntech.de>
Mon, 18 Mar 2013 04:43:52 +0000 (13:43 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Thu, 28 Mar 2013 05:46:18 +0000 (14:46 +0900)
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>
drivers/clk/samsung/clk.c

index d36cdd511761952b66dc06147abe95857e5f600e..ca04b9e61588a9b33ab14ab4aef3fd13bb90685c 100644 (file)
@@ -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 */