|
@@ -19,6 +19,17 @@
|
|
|
|
|
|
static void (*tegra_hotplug_shutdown)(void);
|
|
|
|
|
|
+int tegra_cpu_kill(unsigned cpu)
|
|
|
+{
|
|
|
+ cpu = cpu_logical_map(cpu);
|
|
|
+
|
|
|
+ /* Clock gate the CPU */
|
|
|
+ tegra_wait_cpu_in_reset(cpu);
|
|
|
+ tegra_disable_cpu_clock(cpu);
|
|
|
+
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* platform-specific code to shutdown a CPU
|
|
|
*
|
|
@@ -26,18 +37,12 @@ static void (*tegra_hotplug_shutdown)(void);
|
|
|
*/
|
|
|
void __ref tegra_cpu_die(unsigned int cpu)
|
|
|
{
|
|
|
- cpu = cpu_logical_map(cpu);
|
|
|
-
|
|
|
/* Clean L1 data cache */
|
|
|
tegra_disable_clean_inv_dcache();
|
|
|
|
|
|
/* Shut down the current CPU. */
|
|
|
tegra_hotplug_shutdown();
|
|
|
|
|
|
- /* Clock gate the CPU */
|
|
|
- tegra_wait_cpu_in_reset(cpu);
|
|
|
- tegra_disable_cpu_clock(cpu);
|
|
|
-
|
|
|
/* Should never return here. */
|
|
|
BUG();
|
|
|
}
|