From 55b5448f8081916171398dc3e8d8802d5c7377fa Mon Sep 17 00:00:00 2001 From: Joseph Lo Date: Thu, 3 Jan 2013 14:42:59 +0800 Subject: [PATCH] --- yaml --- r: 355290 b: refs/heads/master c: 57886616ca7bff844a6427436d0c8faf74653f73 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-tegra/hotplug.c | 4 ++-- trunk/arch/arm/mach-tegra/sleep-tegra20.S | 3 --- trunk/arch/arm/mach-tegra/sleep-tegra30.S | 3 --- trunk/arch/arm/mach-tegra/sleep.S | 4 +++- trunk/arch/arm/mach-tegra/sleep.h | 1 + 6 files changed, 7 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index ef62f95d60bf..ce187738f7eb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 130bfed72c75a36c76ecc82d73818c6fccd2a468 +refs/heads/master: 57886616ca7bff844a6427436d0c8faf74653f73 diff --git a/trunk/arch/arm/mach-tegra/hotplug.c b/trunk/arch/arm/mach-tegra/hotplug.c index dca5141a2c31..d8c683b875d1 100644 --- a/trunk/arch/arm/mach-tegra/hotplug.c +++ b/trunk/arch/arm/mach-tegra/hotplug.c @@ -28,8 +28,8 @@ void __ref tegra_cpu_die(unsigned int cpu) { cpu = cpu_logical_map(cpu); - /* Flush the L1 data cache. */ - flush_cache_all(); + /* Clean L1 data cache */ + tegra_disable_clean_inv_dcache(); /* Shut down the current CPU. */ tegra_hotplug_shutdown(); diff --git a/trunk/arch/arm/mach-tegra/sleep-tegra20.S b/trunk/arch/arm/mach-tegra/sleep-tegra20.S index 72ce709799da..ad2ca07d0578 100644 --- a/trunk/arch/arm/mach-tegra/sleep-tegra20.S +++ b/trunk/arch/arm/mach-tegra/sleep-tegra20.S @@ -33,9 +33,6 @@ * should never return */ ENTRY(tegra20_hotplug_shutdown) - /* Turn off SMP coherency */ - exit_smp r4, r5 - /* Put this CPU down */ cpu_id r0 bl tegra20_cpu_shutdown diff --git a/trunk/arch/arm/mach-tegra/sleep-tegra30.S b/trunk/arch/arm/mach-tegra/sleep-tegra30.S index 562a8e7e413d..63a15bd9b653 100644 --- a/trunk/arch/arm/mach-tegra/sleep-tegra30.S +++ b/trunk/arch/arm/mach-tegra/sleep-tegra30.S @@ -32,9 +32,6 @@ * Should never return. */ ENTRY(tegra30_hotplug_shutdown) - /* Turn off SMP coherency */ - exit_smp r4, r5 - /* Powergate this CPU */ mov r0, #TEGRA30_POWER_HOTPLUG_SHUTDOWN bl tegra30_cpu_shutdown diff --git a/trunk/arch/arm/mach-tegra/sleep.S b/trunk/arch/arm/mach-tegra/sleep.S index 26afa7cbed11..addae357da3f 100644 --- a/trunk/arch/arm/mach-tegra/sleep.S +++ b/trunk/arch/arm/mach-tegra/sleep.S @@ -34,7 +34,7 @@ #include "flowctrl.h" #include "sleep.h" -#ifdef CONFIG_PM_SLEEP +#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PM_SLEEP) /* * tegra_disable_clean_inv_dcache * @@ -60,7 +60,9 @@ ENTRY(tegra_disable_clean_inv_dcache) ldmfd sp!, {r0, r4-r5, r7, r9-r11, pc} ENDPROC(tegra_disable_clean_inv_dcache) +#endif +#ifdef CONFIG_PM_SLEEP /* * tegra_sleep_cpu_finish(unsigned long v2p) * diff --git a/trunk/arch/arm/mach-tegra/sleep.h b/trunk/arch/arm/mach-tegra/sleep.h index 9821ee725420..56505c381ea8 100644 --- a/trunk/arch/arm/mach-tegra/sleep.h +++ b/trunk/arch/arm/mach-tegra/sleep.h @@ -106,6 +106,7 @@ #else void tegra_resume(void); int tegra_sleep_cpu_finish(unsigned long); +void tegra_disable_clean_inv_dcache(void); #ifdef CONFIG_HOTPLUG_CPU void tegra20_hotplug_init(void);