aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/blackfin/mach-bf561/hotplug.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf561/hotplug.c b/arch/blackfin/mach-bf561/hotplug.c
index 42fc085629c7..0123117b8ff2 100644
--- a/arch/blackfin/mach-bf561/hotplug.c
+++ b/arch/blackfin/mach-bf561/hotplug.c
@@ -7,6 +7,7 @@
7 7
8#include <linux/smp.h> 8#include <linux/smp.h>
9#include <asm/blackfin.h> 9#include <asm/blackfin.h>
10#include <asm/cacheflush.h>
10#include <mach/pll.h> 11#include <mach/pll.h>
11 12
12int hotplug_coreb; 13int hotplug_coreb;
@@ -14,8 +15,16 @@ int hotplug_coreb;
14void platform_cpu_die(void) 15void platform_cpu_die(void)
15{ 16{
16 unsigned long iwr; 17 unsigned long iwr;
18
17 hotplug_coreb = 1; 19 hotplug_coreb = 1;
18 20
21 /*
22 * When CoreB wakes up, the code in _coreb_trampoline_start cannot
23 * turn off the data cache. This causes the CoreB failed to boot.
24 * As a workaround, we invalidate all the data cache before sleep.
25 */
26 blackfin_invalidate_entire_dcache();
27
19 /* disable core timer */ 28 /* disable core timer */
20 bfin_write_TCNTL(0); 29 bfin_write_TCNTL(0);
21 30