0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <linux/init.h>
0011 #include <asm/cacheflush.h>
0012 #include <asm/smp_plat.h>
0013 #include "common.h"
0014
0015 extern unsigned long shmobile_smp_fn[];
0016 extern unsigned long shmobile_smp_arg[];
0017 extern unsigned long shmobile_smp_mpidr[];
0018
0019 void shmobile_smp_hook(unsigned int cpu, unsigned long fn, unsigned long arg)
0020 {
0021 shmobile_smp_fn[cpu] = 0;
0022 flush_cache_all();
0023
0024 shmobile_smp_mpidr[cpu] = cpu_logical_map(cpu);
0025 shmobile_smp_fn[cpu] = fn;
0026 shmobile_smp_arg[cpu] = arg;
0027 flush_cache_all();
0028 }
0029
0030 #ifdef CONFIG_HOTPLUG_CPU
0031 bool shmobile_smp_cpu_can_disable(unsigned int cpu)
0032 {
0033 return true;
0034 }
0035 #endif