ARM: OMAP4: CPUidle: Use coupled cpuidle states to implement SMP cpuidle.
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Sun, 25 Dec 2011 15:30:40 +0000 (21:00 +0530)
committerKevin Hilman <khilman@ti.com>
Wed, 25 Jul 2012 23:05:35 +0000 (16:05 -0700)
commitdd3ad97c5621aa853843dd5e6783ca787466158c
treef19ec4e619bf5987cfdbc73246af01e4413866c7
parent11d6ec2e488f5613ab380bee9dc9a67c54813b60
ARM: OMAP4: CPUidle: Use coupled cpuidle states to implement SMP cpuidle.

OMAP4 CPUDILE driver is converted mainly based on notes from the
coupled cpuidle patch series.

The changes include :
- Register both CPUs and C-states to cpuidle driver.
- Set struct cpuidle_device.coupled_cpus
- Set struct cpuidle_device.safe_state to non coupled state.
- Set CPUIDLE_FLAG_COUPLED in struct cpuidle_state.flags for each
  state that affects multiple cpus.
- Separate ->enter hooks for coupled & simple idle.
- CPU0 wait loop for CPU1 power transition.
- CPU1 wakeup mechanism for the idle exit.
- Enabling ARCH_NEEDS_CPU_IDLE_COUPLED for OMAP4.

Thanks to Kevin Hilman and Colin Cross on the suggestions/fixes
on the intermediate version of this patch.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/cpuidle44xx.c