linux-stable-rt/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
Kconfig omap4: Add OMAP4 Panda Support 2010-08-02 13:18:05 +03:00
Makefile omap: Fix sev instruction usage for multi-omap 2010-08-16 09:22:04 +03:00
Makefile.boot
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 omap2/3: Fix DEBUG_LL for omap zoom2/3 2010-05-03 17:53:08 -07:00
board-zoom-peripherals.c omap3: zoom2/3 / 3630sdp: Don't init always all uarts 2010-03-15 16:34:17 -05:00
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 OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
clkt2xxx_dpllcore.c
clkt2xxx_osc.c
clkt2xxx_sys.c
clkt2xxx_virt_prcm_set.c OMAP2 clock: fix recursive spinlock attempt when CONFIG_CPU_FREQ=y 2010-05-20 12:31:14 -06:00
clkt34xx_dpll3m2.c
clkt_clksel.c OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clkt_dpll.c
clock.c OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clock.h OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-05-21 14:46:51 -07:00
clock2430.c
clock2430_data.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-05-21 14:46:51 -07:00
clock3517.c
clock3517.h
clock_common_data.c OMAP3 clock: rename RATE_IN_343X, RATE_IN_3430ES2 to match reality 2010-05-20 12:31:07 -06:00
clockdomain.c OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
clockdomains.h
clockdomains44xx.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
cm-regbits-24xx.h OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
cm-regbits-34xx.h OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
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 OMAP4: hwmod & CM: Implement the omap4_cm_wait_module_ready function 2010-05-20 12:31:08 -06:00
cm4xxx.c OMAP4: hwmod & CM: Implement the omap4_cm_wait_module_ready function 2010-05-20 12:31:08 -06:00
cm44xx.h OMAP4: PRCM: Add offset defines for all CM registers 2010-05-20 12:31:12 -06:00
control.c OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
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
mailbox.c omap: mailbox: reorganize headers 2010-08-04 15:50:20 +03:00
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 omap4: Move SOC specific code from board file 2010-05-20 11:17:51 -07:00
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 OMAP3: PM: Add milliseconds interface to suspend wakeup timer 2010-05-12 09:39:00 -07:00
pm.c OMAP: PM: create omap_devices for MPU, DSP, L3 2010-07-26 16:34:31 -06:00
pm.h OMAP3: PM: Add milliseconds interface to suspend wakeup timer 2010-05-12 09:39:00 -07:00
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 OMAP4 powerdomain: Support LOWPOWERSTATECHANGE for powerdomains 2010-05-20 12:31:13 -06:00
prcm-common.h OMAP4: PRCM: Remove duplicate definition of base addresses 2010-05-20 12:31:12 -06:00
prcm.c OMAP2+ PRCM: convert remaining PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
prm-regbits-24xx.h OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
prm-regbits-34xx.h OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
prm-regbits-44xx.h
prm.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
prm44xx.h OMAP4: PRCM: Add offset defines for all PRM registers 2010-05-20 12:31:12 -06:00
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