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 Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-3430sdp.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-3630sdp.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-4430sdp.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-am3517evm.c omap3: introduce omap3_map_io 2010-08-04 14:43:18 +03:00
board-apollon.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-cm-t35.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-devkit8000.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-flash.c omap3 flash: rename board-sdp-flash.c to be use by other boards 2010-08-02 15:43:29 +03:00
board-generic.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-h4.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-igep0020.c omap3: introduce omap3_map_io 2010-08-04 14:43:18 +03:00
board-ldp.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-n8x0.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-omap3beagle.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-omap3evm.c Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux 2010-08-08 10:02:59 -07:00
board-omap3pandora.c omap: pandora: pass wl1251 information to SDIO core 2010-08-11 08:59:04 -07:00
board-omap3stalker.c omap3: introduce omap3_map_io 2010-08-04 14:43:18 +03:00
board-omap3touchbook.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-omap4panda.c omap4: Add OMAP4 Panda Support 2010-08-02 13:18:05 +03:00
board-overo.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-rx51-peripherals.c Merge branch 'devel-misc' into omap-for-linus 2010-08-02 14:23:38 +03:00
board-rx51-sdram.c
board-rx51-video.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
board-rx51.c omap3: Unify omap2_set_globals_3[43,6x]x functions 2010-08-04 14:43:18 +03:00
board-zoom-debugboard.c
board-zoom-peripherals.c
board-zoom2.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
board-zoom3.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
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 OMAP3: Fix a cpu type check problem 2010-08-16 09:21:19 +03:00
clock34xx.c
clock34xx.h
clock36xx.c
clock36xx.h
clock44xx.h
clock44xx_data.c OMAP4: clock: Fix multi-omap boot with reset un-used clocks 2010-06-16 19:01:33 +03:00
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 OMAP24xx: CM: fix mask used for checking IDLEST status 2010-07-26 16:34:28 -06:00
cm.h
cm4xxx.c
cm44xx.h
control.c
cpuidle34xx.c
devices.c Merge branch 'v2.6.35-omap-mailbox-for-next' of git://gitorious.org/~doyu/lk/mainline into omap-for-linus 2010-08-04 16:10:38 +03:00
dpll3xxx.c fix typos concerning "hierarchy" 2010-06-16 18:03:14 +02:00
emu.c
gpmc-nand.c omap3 nand: cleanup virtual address usages 2010-08-02 15:30:38 +03:00
gpmc-onenand.c
gpmc-smc91x.c
gpmc.c omap3 nand: cleanup virtual address usages 2010-08-02 15:30:38 +03:00
hsmmc.c omap: pandora: pass wl1251 information to SDIO core 2010-08-11 08:59:04 -07:00
hsmmc.h omap: pandora: pass wl1251 information to SDIO core 2010-08-11 08:59:04 -07:00
i2c.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00
id.c omap3: id: fix 3630 rev detection 2010-08-16 09:21:19 +03:00
io.c Merge branch 'devel-map-io' into omap-for-linus 2010-08-04 14:43:45 +03:00
iommu2.c omap iommu: move iommu_disable at fault to the above layer 2010-06-29 07:55:07 +03:00
irq.c
Kconfig omap4: Add OMAP4 Panda Support 2010-08-02 13:18:05 +03:00
mailbox.c omap: mailbox: reorganize headers 2010-08-04 15:50:20 +03:00
Makefile omap: Fix sev instruction usage for multi-omap 2010-08-16 09:22:04 +03:00
Makefile.boot
mcbsp.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2010-08-08 10:01:46 -07:00
mux.c omap: mux: fix multipath gpio handling 2010-08-02 14:23:07 +03:00
mux.h omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
mux34xx.c omap: mux: Remove unncessary parens from mux34xx.c 2010-07-05 16:31:36 +03:00
mux34xx.h
mux2420.c omap: mux: Add data for 2420 2010-07-05 16:31:36 +03:00
mux2420.h omap: mux: Add data for 2420 2010-07-05 16:31:36 +03:00
mux2430.c omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
mux2430.h omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
omap-headsmp.S omap4: Add smc API to read AuxCoreBoot0 register 2010-08-02 13:18:18 +03:00
omap-hotplug.c omap4: hotplug: Add basic CPU hotplug support 2010-08-02 13:18:19 +03:00
omap-iommu.c omap iommu: update ducati mmu irq define name 2010-06-29 07:55:08 +03:00
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 omap4: Add smc API to read AuxCoreBoot0 register 2010-08-02 13:18:18 +03:00
omap_hwmod.c OMAP2+: hwmod/device: update documentation and copyright 2010-07-26 16:34:33 -06:00
omap_hwmod_3xxx_data.c OMAP3: hwmod data: add data for OMAP3 IVA2 2010-07-26 16:34:32 -06:00
omap_hwmod_2420_data.c OMAP2: hwmod data: add IVA1 (2420), IVA2 (2430) hwmods 2010-07-26 16:34:33 -06:00
omap_hwmod_2430_data.c OMAP2: hwmod data: add IVA1 (2420), IVA2 (2430) hwmods 2010-07-26 16:34:33 -06:00
omap_hwmod_common_data.c OMAP: hwmod data: add class for IVA hwmods 2010-07-26 16:34:31 -06:00
omap_hwmod_common_data.h OMAP: hwmod data: add class for IVA hwmods 2010-07-26 16:34:31 -06:00
opp2xxx.h
opp2420_data.c
opp2430_data.c
pm-debug.c
pm.c OMAP: PM: create omap_devices for MPU, DSP, L3 2010-07-26 16:34:31 -06:00
pm.h
pm24xx.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
pm34xx.c OMAP3: PM: ensure IO wakeups are properly disabled 2010-08-16 09:22:05 +03:00
pm44xx.c omap4: suspend: Add basic system suspend support 2010-08-02 13:18:18 +03:00
powerdomain.c OMAP2: powerdomain: Add break in switch statement 2010-08-03 10:21:07 +03:00
powerdomains.h
powerdomains24xx.h
powerdomains34xx.h omap: 3630: disable TLL SAR on 3630 ES1 2010-08-04 14:43:52 +03:00
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 omap2/3/4: serial: errata i202: fix for MDR1 access 2010-08-02 13:18:12 +03:00
sleep24xx.S
sleep34xx.S fix typos concerning "acquire" 2010-06-16 18:03:15 +02:00
sram34xx.S
sram242x.S
sram243x.S
timer-gp.c
timer-mpu.c
usb-ehci.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
usb-fs.c omap: mux: Make omap2 FS USB code use new mux functions 2010-07-05 16:31:38 +03:00
usb-musb.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
usb-tusb6010.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00