diff options
-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 */ |