OMAP3: PM: ensure IO wakeups are properly disabled
authorKevin Hilman <khilman@ti.com>
Mon, 16 Aug 2010 06:21:19 +0000 (09:21 +0300)
committerTony Lindgren <tony@atomide.com>
Mon, 16 Aug 2010 06:22:05 +0000 (09:22 +0300)
commit58a5559e461a4ab945286dacef611d3c542c5fee
tree4be2990e686545c54f183143da331caf67a0a338
parentc66dd2660de534973303e2dd4f7784763bc9e549
OMAP3: PM: ensure IO wakeups are properly disabled

Commit 5a5f561 (convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes)
mistakenly removed the check for PER when disabling the IO chain.

During idle, if the PER powerdomain transitions into a lower state
and CORE does not, the IO pad wakeups are not being disabled in
the idle path after they are enabled. This can happen with the
lower C-states when using CPUidle for example.

This patch ensures that the check for disabling IO wakeups also checks
for PER transitions, matching the check done to enable IO wakeups.

Found when debugging PM/CPUidle related problems reported by Ameya
Palande <ameya.palande@nokia.com>.  Problems were triggered
particularily on boards with UART2 consoles (n900, Overo) since UART2
is in the PER powerdomain.

Tested on l-o master (omap3_defonfig + CONFIG_CPU_IDLE=y) as well
as with current PM branch.  Boards tested: n900, Overo, omap3evm.

Cc: Paul Walmsley <paul@pwsan.com>
Cc: Ameya Palande <ameya.palande@nokia.com>
Tested-by: Jarkko Nikula <jhnikula@gmail.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
[tony@atomide.com: updated description to clarify the transistion]
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/pm34xx.c