diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch new file mode 100644 index 00000000..b0af9e7f --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0005-OMAP2-hwmod-Follow-the-recomended-PRCM-sequence.patch @@ -0,0 +1,46 @@ +From 8fb6b7c488b31fbff5b81bdeea5dbb236342458b Mon Sep 17 00:00:00 2001 +From: Rajendra Nayak <rnayak@ti.com> +Date: Tue, 29 Mar 2011 22:37:43 +0530 +Subject: [PATCH 5/6] OMAP2+: hwmod: Follow the recomended PRCM sequence + +Follow the recomended PRCM sequence. +This still does not take care of Optional clocks. + +Signed-off-by: Rajendra Nayak <rnayak@ti.com> +--- + arch/arm/mach-omap2/omap_hwmod.c | 9 ++++++++- + 1 files changed, 8 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c +index e034294..fc0db0c 100644 +--- a/arch/arm/mach-omap2/omap_hwmod.c ++++ b/arch/arm/mach-omap2/omap_hwmod.c +@@ -1223,6 +1223,7 @@ static int _reset(struct omap_hwmod *oh) + static int _enable(struct omap_hwmod *oh) + { + int r; ++ int hwsup = 0; + + if (oh->_state != _HWMOD_STATE_INITIALIZED && + oh->_state != _HWMOD_STATE_IDLE && +@@ -1250,10 +1251,16 @@ static int _enable(struct omap_hwmod *oh) + omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED); + + _add_initiator_dep(oh, mpu_oh); ++ if (oh->_clk && oh->_clk->clkdm) { ++ hwsup = clkdm_is_idle(oh->_clk->clkdm); ++ clkdm_wakeup(oh->_clk->clkdm); ++ } + _enable_clocks(oh); +- + r = _wait_target_ready(oh); + if (!r) { ++ if (oh->_clk && oh->_clk->clkdm && hwsup) ++ clkdm_allow_idle(oh->_clk->clkdm); ++ + oh->_state = _HWMOD_STATE_ENABLED; + + /* Access the sysconfig only if the target is ready */ +-- +1.6.6.1 + |