diff options
author | Heiko Stueber <heiko@sntech.de> | 2013-03-18 00:43:52 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-03-28 01:46:18 -0400 |
commit | 2466196d3e4f1fbe902ca8480bf4a03db78572b2 (patch) | |
tree | 7c63d1b18efbd2e9b2d1cc0a50d22212cfeffacd /drivers/clk/samsung/clk.c | |
parent | 798ed613f5db7f61a7773412b9a6bc3d37d17ecb (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>
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, | |||
57 | unsigned long nr_rdump) | 57 | unsigned long nr_rdump) |
58 | { | 58 | { |
59 | reg_base = base; | 59 | reg_base = base; |
60 | if (!np) | ||
61 | return; | ||
62 | |||
63 | #ifdef CONFIG_OF | ||
64 | clk_table = kzalloc(sizeof(struct clk *) * nr_clks, GFP_KERNEL); | ||
65 | if (!clk_table) | ||
66 | panic("could not allocate clock lookup table\n"); | ||
67 | |||
68 | clk_data.clks = clk_table; | ||
69 | clk_data.clk_num = nr_clks; | ||
70 | of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); | ||
71 | #endif | ||
72 | 60 | ||
73 | #ifdef CONFIG_PM_SLEEP | 61 | #ifdef CONFIG_PM_SLEEP |
74 | if (rdump && nr_rdump) { | 62 | if (rdump && nr_rdump) { |
@@ -87,6 +75,19 @@ void __init samsung_clk_init(struct device_node *np, void __iomem *base, | |||
87 | register_syscore_ops(&samsung_clk_syscore_ops); | 75 | register_syscore_ops(&samsung_clk_syscore_ops); |
88 | } | 76 | } |
89 | #endif | 77 | #endif |
78 | |||
79 | if (!np) | ||
80 | return; | ||
81 | |||
82 | #ifdef CONFIG_OF | ||
83 | clk_table = kzalloc(sizeof(struct clk *) * nr_clks, GFP_KERNEL); | ||
84 | if (!clk_table) | ||
85 | panic("could not allocate clock lookup table\n"); | ||
86 | |||
87 | clk_data.clks = clk_table; | ||
88 | clk_data.clk_num = nr_clks; | ||
89 | of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); | ||
90 | #endif | ||
90 | } | 91 | } |
91 | 92 | ||
92 | /* add a clock instance to the clock lookup table used for dt based lookup */ | 93 | /* add a clock instance to the clock lookup table used for dt based lookup */ |