diff options
author | Scott Williams <scwilliams@nvidia.com> | 2011-07-21 13:20:20 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 00:55:44 -0700 |
commit | 30755961b6502f87d6016de3f107b241aa5f0486 (patch) | |
tree | b9d5d4db52df0a7d795789a0629c7e813d535b9d /arch/arm/mach-tegra/hotplug.c | |
parent | d7dadd19ab3d26e65558d2aca0788a967a94a11e (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 | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c index 8a02bc47dab5..682e0eabe204 100644 --- a/arch/arm/mach-tegra/hotplug.c +++ b/arch/arm/mach-tegra/hotplug.c @@ -16,6 +16,7 @@ #include <asm/cacheflush.h> #include <asm/smp_plat.h> +#include "gic.h" #include "sleep.h" static void (*tegra_hotplug_shutdown)(void); @@ -43,6 +44,17 @@ void tegra_cpu_die(unsigned int cpu) /* Flush the L1 data cache. */ flush_cache_all(); +#ifndef CONFIG_ARCH_TEGRA_2x_SOC + /* 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(); +#endif + /* Shut down the current CPU. */ tegra_hotplug_shutdown(); |