linux/arch/arm/mach-omap2
Kevin Hilman 58a5559e46 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>
2010-08-16 09:22:05 +03:00
..
include/mach omap: Use CONFIG_SMP for test_for_ipi and test_for_ltirq 2010-08-16 09:22:04 +03:00
board-2430sdp.c
board-3430sdp.c
board-3630sdp.c
board-4430sdp.c
board-am3517evm.c
board-apollon.c
board-cm-t35.c
board-devkit8000.c
board-flash.c
board-generic.c
board-h4.c
board-igep0020.c
board-ldp.c
board-n8x0.c
board-omap3beagle.c
board-omap3evm.c
board-omap3pandora.c
board-omap3stalker.c
board-omap3touchbook.c
board-omap4panda.c
board-overo.c
board-rx51-peripherals.c
board-rx51-sdram.c
board-rx51-video.c
board-rx51.c
board-zoom-debugboard.c
board-zoom-peripherals.c
board-zoom2.c
board-zoom3.c
clkt2xxx_apll.c
clkt2xxx_dpllcore.c
clkt2xxx_osc.c
clkt2xxx_sys.c
clkt2xxx_virt_prcm_set.c
clkt34xx_dpll3m2.c
clkt_clksel.c
clkt_dpll.c
clock.c
clock.h
clock2xxx.c
clock2xxx.h
clock3xxx.c
clock3xxx.h
clock3xxx_data.c
clock34xx.c
clock34xx.h
clock36xx.c
clock36xx.h
clock44xx.h
clock44xx_data.c
clock2420_data.c
clock2430.c
clock2430_data.c
clock3517.c
clock3517.h
clock_common_data.c
clockdomain.c
clockdomains.h
clockdomains44xx.h
cm-regbits-24xx.h
cm-regbits-34xx.h
cm-regbits-44xx.h
cm.c
cm.h
cm4xxx.c
cm44xx.h
control.c
cpuidle34xx.c
devices.c
dpll3xxx.c
emu.c
gpmc-nand.c
gpmc-onenand.c
gpmc-smc91x.c
gpmc.c
hsmmc.c
hsmmc.h
i2c.c
id.c
io.c
iommu2.c
irq.c
Kconfig
mailbox.c
Makefile omap: Fix sev instruction usage for multi-omap 2010-08-16 09:22:04 +03:00
Makefile.boot
mcbsp.c
mux.c
mux.h
mux34xx.c
mux34xx.h
mux2420.c
mux2420.h
mux2430.c
mux2430.h
omap-headsmp.S
omap-hotplug.c
omap-iommu.c
omap-smp.c omap: Fix sev instruction usage for multi-omap 2010-08-16 09:22:04 +03:00
omap4-common.c
omap44xx-smc.S
omap_hwmod.c
omap_hwmod_3xxx_data.c
omap_hwmod_2420_data.c
omap_hwmod_2430_data.c
omap_hwmod_common_data.c
omap_hwmod_common_data.h
opp2xxx.h
opp2420_data.c
opp2430_data.c
pm-debug.c
pm.c
pm.h
pm24xx.c
pm34xx.c OMAP3: PM: ensure IO wakeups are properly disabled 2010-08-16 09:22:05 +03:00
pm44xx.c
powerdomain.c
powerdomains.h
powerdomains24xx.h
powerdomains34xx.h
powerdomains44xx.h
prcm-common.h
prcm.c
prm-regbits-24xx.h
prm-regbits-34xx.h
prm-regbits-44xx.h
prm.h
prm44xx.h
sdram-hynix-h8mbx00u0mer-0em.h
sdram-micron-mt46h32m32lf-6.h
sdram-numonyx-m65kxxxxam.h
sdram-qimonda-hyb18m512160af-6.h
sdrc.c
sdrc.h
sdrc2xxx.c
serial.c
sleep24xx.S
sleep34xx.S
sram34xx.S
sram242x.S
sram243x.S
timer-gp.c
timer-mpu.c
usb-ehci.c
usb-fs.c
usb-musb.c
usb-tusb6010.c