diff options
Diffstat (limited to 'arch/blackfin/mach-common/smp.c')
-rw-r--r-- | arch/blackfin/mach-common/smp.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c index 93eab6146079..3b8ebaee77f2 100644 --- a/arch/blackfin/mach-common/smp.c +++ b/arch/blackfin/mach-common/smp.c | |||
@@ -43,8 +43,13 @@ | |||
43 | #include <asm/processor.h> | 43 | #include <asm/processor.h> |
44 | #include <asm/ptrace.h> | 44 | #include <asm/ptrace.h> |
45 | #include <asm/cpu.h> | 45 | #include <asm/cpu.h> |
46 | #include <asm/time.h> | ||
46 | #include <linux/err.h> | 47 | #include <linux/err.h> |
47 | 48 | ||
49 | /* | ||
50 | * Anomaly notes: | ||
51 | * 05000120 - we always define corelock as 32-bit integer in L2 | ||
52 | */ | ||
48 | struct corelock_slot corelock __attribute__ ((__section__(".l2.bss"))); | 53 | struct corelock_slot corelock __attribute__ ((__section__(".l2.bss"))); |
49 | 54 | ||
50 | void __cpuinitdata *init_retx_coreb, *init_saved_retx_coreb, | 55 | void __cpuinitdata *init_retx_coreb, *init_saved_retx_coreb, |
@@ -352,7 +357,7 @@ int __cpuinit __cpu_up(unsigned int cpu) | |||
352 | 357 | ||
353 | static void __cpuinit setup_secondary(unsigned int cpu) | 358 | static void __cpuinit setup_secondary(unsigned int cpu) |
354 | { | 359 | { |
355 | #if !(defined(CONFIG_TICK_SOURCE_SYSTMR0) || defined(CONFIG_IPIPE)) | 360 | #if !defined(CONFIG_TICKSOURCE_GPTMR0) |
356 | struct irq_desc *timer_desc; | 361 | struct irq_desc *timer_desc; |
357 | #endif | 362 | #endif |
358 | unsigned long ilat; | 363 | unsigned long ilat; |
@@ -364,16 +369,13 @@ static void __cpuinit setup_secondary(unsigned int cpu) | |||
364 | bfin_write_ILAT(ilat); | 369 | bfin_write_ILAT(ilat); |
365 | CSYNC(); | 370 | CSYNC(); |
366 | 371 | ||
367 | /* Reserve the PDA space for the secondary CPU. */ | ||
368 | reserve_pda(); | ||
369 | |||
370 | /* Enable interrupt levels IVG7-15. IARs have been already | 372 | /* Enable interrupt levels IVG7-15. IARs have been already |
371 | * programmed by the boot CPU. */ | 373 | * programmed by the boot CPU. */ |
372 | bfin_irq_flags |= IMASK_IVG15 | | 374 | bfin_irq_flags |= IMASK_IVG15 | |
373 | IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | | 375 | IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | |
374 | IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; | 376 | IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; |
375 | 377 | ||
376 | #if defined(CONFIG_TICK_SOURCE_SYSTMR0) || defined(CONFIG_IPIPE) | 378 | #if defined(CONFIG_TICKSOURCE_GPTMR0) |
377 | /* Power down the core timer, just to play safe. */ | 379 | /* Power down the core timer, just to play safe. */ |
378 | bfin_write_TCNTL(0); | 380 | bfin_write_TCNTL(0); |
379 | 381 | ||