diff options
author | Rajendra Nayak <rnayak@ti.com> | 2010-09-21 10:28:30 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-09-21 17:28:30 -0400 |
commit | 9980ce53c97392a3dbdc9d1ac3e455d79b4167ed (patch) | |
tree | a1d43a68184659dcadf42010e3d292a1e1b9bd94 /arch/arm/mach-omap2/omap_hwmod.c | |
parent | 96835af970e5d6aeedf868e53590a947be5e4a7a (diff) |
OMAP: hwmod: Enable module wakeup if in smartidle
If a module's OCP slave port is programmed to be in smartidle,
its also necessary that they have module level wakeup enabled.
Update _sysc_enable in hwmod framework to do this.
The thread "[PATCH 7/8] : Hwmod api changes" archived here:
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg34212.html
has additional technical information on the rationale of this patch.
Sergei Shtylyov <sshtylyov@mvista.com> identified an indentation
problem with this patch - thanks, Sergei.
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Partha Basak <p-basak2@ti.com>
Signed-off-by: BenoƮt Cousson <b-cousson@ti.com>
[paul@pwsan.com: revised patch description]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Sergei Shtylyov <sshtylyov@mvista.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index f320cfb911d5..d694067e6e9a 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -691,8 +691,6 @@ static void _sysc_enable(struct omap_hwmod *oh) | |||
691 | _set_module_autoidle(oh, idlemode, &v); | 691 | _set_module_autoidle(oh, idlemode, &v); |
692 | } | 692 | } |
693 | 693 | ||
694 | /* XXX OCP ENAWAKEUP bit? */ | ||
695 | |||
696 | /* | 694 | /* |
697 | * XXX The clock framework should handle this, by | 695 | * XXX The clock framework should handle this, by |
698 | * calling into this code. But this must wait until the | 696 | * calling into this code. But this must wait until the |
@@ -703,6 +701,10 @@ static void _sysc_enable(struct omap_hwmod *oh) | |||
703 | _set_clockactivity(oh, oh->class->sysc->clockact, &v); | 701 | _set_clockactivity(oh, oh->class->sysc->clockact, &v); |
704 | 702 | ||
705 | _write_sysconfig(v, oh); | 703 | _write_sysconfig(v, oh); |
704 | |||
705 | /* If slave is in SMARTIDLE, also enable wakeup */ | ||
706 | if ((sf & SYSC_HAS_SIDLEMODE) && !(oh->flags & HWMOD_SWSUP_SIDLE)) | ||
707 | _enable_wakeup(oh); | ||
706 | } | 708 | } |
707 | 709 | ||
708 | /** | 710 | /** |