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 omap3: rx51: Add SDRAM init 2009-11-22 10:24:33 -08:00
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-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
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
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 OMAP2xxx clock: move the DPLL+CORE composite clock code into mach-omap2/clkt2xxx_dpllcore.c 2010-01-26 20:13:06 -07:00
clkt2xxx_osc.c OMAP2xxx clock: move osc_clk code into mach-omap2/clkt2xxx_osc.c 2010-01-28 18:13:49 -07:00
clkt2xxx_sys.c OMAP2xxx clock: move sys_clk code into mach-omap2/clkt2xxx_sys.c 2010-01-28 18:13:49 -07:00
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 OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clkt_clksel.c OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clkt_dpll.c OMAP2/3/4 clock: fix DPLL multiplier value errors; also copyrights, includes, documentation 2010-02-24 12:15:03 -07:00
clock2xxx.c OMAP2/3 clock: combine OMAP2 & 3 boot-time MPU rate change code 2010-02-24 17:45:15 -07:00
clock2xxx.h OMAP2 clock: split OMAP2420, OMAP2430 clock data into their own files 2010-02-24 12:29:42 -07:00
clock3xxx_data.c OMAP3: Fix a cpu type check problem 2010-08-16 09:21:19 +03:00
clock3xxx.c OMAP2/3 clock: combine OMAP2 & 3 boot-time MPU rate change code 2010-02-24 17:45:15 -07:00
clock3xxx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock34xx.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock34xx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock36xx.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock36xx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock44xx_data.c OMAP4: clock: Fix multi-omap boot with reset un-used clocks 2010-06-16 19:01:33 +03:00
clock44xx.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07: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_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 OMAP2 clock: split OMAP2420, OMAP2430 clock data into their own files 2010-02-24 12:29:42 -07:00
clock3517.c OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock3517.h OMAP3/4 clock: split into per-chip family files 2010-02-24 12:16:15 -07:00
clock_common_data.c OMAP3 clock: rename RATE_IN_343X, RATE_IN_3430ES2 to match reality 2010-05-20 12:31:07 -06:00
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
clockdomain.c OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
clockdomains44xx.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
clockdomains.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08: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
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 OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
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
control.c OMAP3 PRCM: convert OMAP3 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:05 -06:00
cpuidle34xx.c OMAP3: cpuidle: Add valid field into C-state parameter passing 2010-02-23 11:05:02 -08:00
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 omap2/3: Fix initcalls for multi-omap 2010-02-15 09:27:05 -08:00
gpmc-nand.c omap3 nand: cleanup virtual address usages 2010-08-02 15:30:38 +03:00
gpmc-onenand.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpmc-smc91x.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
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 OMAP2/3: IRQ: ensure valid base address 2010-02-03 08:48:06 -08:00
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
mux34xx.c omap: mux: Remove unncessary parens from mux34xx.c 2010-07-05 16:31:36 +03:00
mux34xx.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
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
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
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_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
omap_hwmod.c OMAP2+: hwmod/device: update documentation and copyright 2010-07-26 16:34:33 -06: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
opp2xxx.h omap2/3: Multiboot compile fixes to compile in omap2 and omap3 2010-02-15 09:26:55 -08:00
opp2420_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
opp2430_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -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
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
powerdomain.c OMAP2: powerdomain: Add break in switch statement 2010-08-03 10:21:07 +03:00
powerdomains24xx.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
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
powerdomains.h OMAP2+ powerdomains/clockdomains: prepare for multi-OMAP configs 2010-01-29 10:14:23 -07: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
prm44xx.h OMAP4: PRCM: Add offset defines for all PRM registers 2010-05-20 12:31:12 -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 OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
prm.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
sdram-hynix-h8mbx00u0mer-0em.h omap3: zoom: Introduce zoom3 board support 2009-11-22 10:24:33 -08:00
sdram-micron-mt46h32m32lf-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdram-numonyx-m65kxxxxam.h omap3: SDRC: add timing data for Numonyx M65KxxxxAM 2010-02-17 17:23:20 -08:00
sdram-qimonda-hyb18m512160af-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc2xxx.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc.c omap2/3/4: ioremap omap_globals module 2010-02-23 10:57:40 -08:00
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
serial.c omap2/3/4: serial: errata i202: fix for MDR1 access 2010-08-02 13:18:12 +03:00
sleep24xx.S omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sleep34xx.S fix typos concerning "acquire" 2010-06-16 18:03:15 +02:00
sram34xx.S OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
sram242x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
sram243x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
timer-gp.c OMAP4: clock: Remove clock hacks from timer-gp.c 2010-02-24 17:45:17 -07:00
timer-mpu.c omap4: Use irq line defines from irq-44xx.h 2010-02-23 15:29:08 -08:00
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