diff options
author | Vaibhav Hiremath <hvaibhav@ti.com> | 2012-07-09 08:54:30 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2012-11-12 21:10:19 -0500 |
commit | b797be1d4c079e78a3cb4e95f4a74274a4aef9f5 (patch) | |
tree | 92bfd5da412f5c15456f77e535fd43df99db4353 | |
parent | 8577413c0a26e9bc0b412289640243f3b20f4517 (diff) |
ARM: OMAP2+: hwmod: Invoke init_clkdm before other init functions
Without this kernel would crash, since clkdm inside omap_hwmod
is accessed in some of the init functions like, _init_main_clk.
So call init_clkdm before _init_main_clk().
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Signed-off-by: Mike Turquette <mturquette@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index f38e4cefa2a5..c3d3e62a5ac2 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -1519,11 +1519,12 @@ static int _init_clocks(struct omap_hwmod *oh, void *data) | |||
1519 | 1519 | ||
1520 | pr_debug("omap_hwmod: %s: looking up clocks\n", oh->name); | 1520 | pr_debug("omap_hwmod: %s: looking up clocks\n", oh->name); |
1521 | 1521 | ||
1522 | if (soc_ops.init_clkdm) | ||
1523 | ret |= soc_ops.init_clkdm(oh); | ||
1524 | |||
1522 | ret |= _init_main_clk(oh); | 1525 | ret |= _init_main_clk(oh); |
1523 | ret |= _init_interface_clks(oh); | 1526 | ret |= _init_interface_clks(oh); |
1524 | ret |= _init_opt_clks(oh); | 1527 | ret |= _init_opt_clks(oh); |
1525 | if (soc_ops.init_clkdm) | ||
1526 | ret |= soc_ops.init_clkdm(oh); | ||
1527 | 1528 | ||
1528 | if (!ret) | 1529 | if (!ret) |
1529 | oh->_state = _HWMOD_STATE_CLKS_INITED; | 1530 | oh->_state = _HWMOD_STATE_CLKS_INITED; |