diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-07-21 13:20:20 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:46:56 -0800 |
commit | 8ac36475b868259c52608e2d62d0d9fb3bcd0505 (patch) | |
tree | c2d8d273eecba0e697935e9604d5f94c1efd7b44 /arch/arm/mach-tegra/hotplug.c | |
parent | 5b5f0382c47f1b697761e8406530ea7abf8f6455 (diff) |
ARM: tegra: Add Tegra 3 CPU hotplug support
Change-Id: Ie43f4efdf884a916c6bc9737157091c35dc44501
Signed-off-by: Scott Williams <scwilliams@nvidia.com>
DW: Split into logical changes
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Rebase-Id: R1f023651504a7d336f7e98921f6372bee0aa1341
Diffstat (limited to 'arch/arm/mach-tegra/hotplug.c')
-rw-r--r-- | arch/arm/mach-tegra/hotplug.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c index a0b99b87cda8..36fcf591bfe7 100644 --- a/arch/arm/mach-tegra/hotplug.c +++ b/arch/arm/mach-tegra/hotplug.c @@ -16,6 +16,7 @@ #include <mach/iomap.h> +#include "gic.h" #include "sleep.h" #define CPU_CLOCK(cpu) (0x1<<(8+cpu)) @@ -58,6 +59,18 @@ void platform_cpu_die(unsigned int cpu) #ifdef CONFIG_ARCH_TEGRA_2x_SOC /* Place the current CPU in reset. */ tegra2_hotplug_shutdown(); +#else + /* Disable GIC CPU interface for this CPU. */ + tegra_gic_cpu_disable(); + + /* Tegra3 enters LPx states via WFI - do not propagate legacy IRQs + to CPU core to avoid fall through WFI; then GIC output will be + enabled, however at this time - CPU is dying - no interrupt should + have affinity to this CPU. */ + tegra_gic_pass_through_disable(); + + /* Shut down the current CPU. */ + tegra3_hotplug_shutdown(); #endif /* |