linux_dsm_epyc7002/arch/arm
Joseph Lo 1d328606c6 ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode
The "powered-down" cpuidle mode of Tegra20 needs the CPU0 be the last one
core to go into this mode before other core. The coupled cpuidle framework
can help to sync the MPCore to coupled state then go into "powered-down"
idle mode together. The driver can just assume the MPCore come into
"powered-down" mode at the same time. No need to take care if the CPU_0
goes into this mode along and only can put it into safe idle mode (WFI).

The powered-down state of Tegra20 requires power gating both CPU cores.
When the secondary CPU requests to enter powered-down state, it saves
its own contexts and then enters WFI for waiting CPU0 in the same state.
When the CPU0 requests powered-down state, it attempts to put the secondary
CPU into reset to prevent it from waking up. Then power down both CPUs
together and power off the cpu rail.

Be aware of that, you may see the legacy power state "LP2" in the code
which is exactly the same meaning of "CPU power down".

Based on the work by:
Colin Cross <ccross@android.com>
Gary King <gking@nvidia.com>

Signed-off-by: Joseph Lo <josephl@nvidia.com>
Acked-by: Colin Cross <ccross@android.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-01-28 11:20:38 -07:00
..
boot ARM: tegra: add clocks properties to USB PHY nodes 2013-01-28 11:20:05 -07:00
common Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
configs arm: mvebu: Use dw-apb-uart instead of ns16650 as UART driver 2013-01-06 17:41:14 +00:00
crypto
include ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
kernel Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
lib ARM: export default read_current_timer 2012-10-09 20:24:36 +02:00
mach-at91 ARM: at91: fix board-rm9200-dt after sys_timer conversion 2013-01-14 10:14:04 -08:00
mach-bcm ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-bcm2835 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-clps711x ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-cns3xxx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-davinci Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-dove Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-ebsa110 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-ep93xx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-exynos Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-footbridge ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-gemini ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-h720x ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-highbank Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-imx Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-integrator ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-iop13xx Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-iop32x ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-iop33x ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-ixp4xx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-kirkwood Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-ks8695 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-l7200/include/mach
mach-lpc32xx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mmp Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-msm Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-mv78xx0 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-mvebu ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mxs ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-netx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-nomadik Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-omap1 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-omap2 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-orion5x Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-picoxcell ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-prima2 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-pxa Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-realview ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-rpc ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-s3c24xx Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-s3c64xx Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-s3c2410
mach-s3c2412 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s3c2440 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s5p64x0 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-s5pc100 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-s5pv210 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-sa1100 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-shark ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-shmobile ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-socfpga ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-spear3xx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-spear6xx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-spear13xx ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-sunxi Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-tegra ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode 2013-01-28 11:20:38 -07:00
mach-u300 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-ux500 Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-versatile Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-vexpress Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
mach-vt8500 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-w90x900 ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-zynq ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mm ARM: 7616/1: cache-l2x0: aurora: Use writel_relaxed instead of writel 2013-01-07 15:04:17 +00:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-12-12 18:07:07 -08:00
nwfpe
oprofile
plat-iop
plat-omap ARM: arm-soc fixes for 3.8-rc 2013-01-08 18:53:56 -08:00
plat-orion ARM: arm-soc: Updates for Marvell mvebu/kirkwood 2012-12-14 14:54:26 -08:00
plat-pxa ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
plat-s3c24xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
plat-samsung Merge remote-tracking branch 'korg_arm-soc/timer/cleanup' into for-3.9/cleanup 2013-01-28 10:20:34 -07:00
plat-spear ARM: SPEAr3xx: Shirq: Move shirq controller out of plat/ 2012-11-26 16:55:33 +05:30
plat-versatile ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
tools ARM: boot: Fix usage of kecho 2012-11-12 23:22:54 +01:00
vfp ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set 2012-10-29 10:04:05 +00:00
xen Features: 2012-12-13 14:29:16 -08:00
Kconfig ARM: tegra: move timer.c to drivers/clocksource/ 2013-01-28 10:21:21 -07:00
Kconfig-nommu
Kconfig.debug ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00
Makefile ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00