aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2013-07-17 11:03:25 -0400
committerMike Turquette <mturquette@linaro.org>2014-01-17 15:37:07 -0500
commit0385c58207771efed179670549573fb779c15dc9 (patch)
treedc3ff05644e8b8fed19e65d1ad13ba3407d1fccc /arch/arm
parent924f9498acb004d8cb704a008f1060fad604ccca (diff)
ARM: OMAP3: hwmod: initialize clkdm from clkdm_name
DT clocks are mostly missing clkdm info now, and this causes an issue with counter32k which makes its slave idlemode wrong and prevents core idle. Fixed by initializing the hwmod clkdm pointers for omap3 also which makes sure the clkdm flag matching logic works properly. This patch also changes the return value for _init_clkdm to 0 for incorrect clkdm_name, as this a warning, not a fatal error. Signed-off-by: Tero Kristo <t-kristo@ti.com> Tested-by: Nishanth Menon <nm@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index cc24c95b77e5..433fe2f9278c 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1578,7 +1578,7 @@ static int _init_clkdm(struct omap_hwmod *oh)
1578 if (!oh->clkdm) { 1578 if (!oh->clkdm) {
1579 pr_warning("omap_hwmod: %s: could not associate to clkdm %s\n", 1579 pr_warning("omap_hwmod: %s: could not associate to clkdm %s\n",
1580 oh->name, oh->clkdm_name); 1580 oh->name, oh->clkdm_name);
1581 return -EINVAL; 1581 return 0;
1582 } 1582 }
1583 1583
1584 pr_debug("omap_hwmod: %s: associated to clkdm %s\n", 1584 pr_debug("omap_hwmod: %s: associated to clkdm %s\n",
@@ -4237,6 +4237,7 @@ void __init omap_hwmod_init(void)
4237 soc_ops.assert_hardreset = _omap2_assert_hardreset; 4237 soc_ops.assert_hardreset = _omap2_assert_hardreset;
4238 soc_ops.deassert_hardreset = _omap2_deassert_hardreset; 4238 soc_ops.deassert_hardreset = _omap2_deassert_hardreset;
4239 soc_ops.is_hardreset_asserted = _omap2_is_hardreset_asserted; 4239 soc_ops.is_hardreset_asserted = _omap2_is_hardreset_asserted;
4240 soc_ops.init_clkdm = _init_clkdm;
4240 } else if (cpu_is_omap44xx() || soc_is_omap54xx() || soc_is_dra7xx()) { 4241 } else if (cpu_is_omap44xx() || soc_is_omap54xx() || soc_is_dra7xx()) {
4241 soc_ops.enable_module = _omap4_enable_module; 4242 soc_ops.enable_module = _omap4_enable_module;
4242 soc_ops.disable_module = _omap4_disable_module; 4243 soc_ops.disable_module = _omap4_disable_module;