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>
This commit is contained in:
parent
798ed613f5
commit
2466196d3e
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue