clk: samsung: fix pm init on non-dt platforms

A patch from »clk: samsung: pm fixes and multiple aliases« in state Mainline for linux-kernel

From: Heiko Stuebner <heiko@...> Date: Sun, 10 Mar 2013 13:12:53 +0100

Commit-Message

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@...>

Patch-Comment

changes since v1: instead of removing the np check, move the pm init above it, as suggested by Thomas Abraham. When removing the np check the dt code is wrongly entered on non-dt machines if dt support is enabled in the kernel drivers/clk/samsung/clk.c | 25 +++++++++++++------------ 1 files changed, 13 insertions(+), 12 deletions(-)

Statistics

  • 13 lines added
  • 12 lines removed

Changes

-------------------------- drivers/clk/samsung/clk.c ---------------------------
index d36cdd5..ca04b9e 100644
@@ -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 */
 
 

Recent Patches

About Us

Sed lacus. Donec lectus. Nullam pretium nibh ut turpis. Nam bibendum. In nulla tortor, elementum vel, tempor at, varius non, purus. Mauris vitae nisl nec metus placerat consectetuer.

Read More...