summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/setup.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2013-05-22 10:52:32 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-05-22 10:53:20 +0100
commit78ecad0183bd7e49131da2b5aa82bee017db1cf0 (patch)
tree4059732146dd410d134fbc9eddfbb3f79ef509a5 /arch/arm/kernel/setup.c
parentf150abe1012f2fc7d444d33d651db32435038c11 (diff)
parentb382b940f821784107ca22de3455bb90e4512557 (diff)
Merge tag '3.10-rc2-psci-ops-11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen into devel-stable
Pull psci_smp_ops support from Stefano Stabellini: It contains the generic PSCI patch and the smp_init patch that we discussed so much about. I think it would be helpful for other people if you could create a stable branch with these patches so that SoC devs can base their work on it.
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r--arch/arm/kernel/setup.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index ea5cd6e3beb6..a1a2fbaaa31c 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -37,6 +37,7 @@
#include <asm/cputype.h>
#include <asm/elf.h>
#include <asm/procinfo.h>
+#include <asm/psci.h>
#include <asm/sections.h>
#include <asm/setup.h>
#include <asm/smp_plat.h>
@@ -809,9 +810,15 @@ void __init setup_arch(char **cmdline_p)
unflatten_device_tree();
arm_dt_init_cpu_maps();
+ psci_init();
#ifdef CONFIG_SMP
if (is_smp()) {
- smp_set_ops(mdesc->smp);
+ if (!mdesc->smp_init || !mdesc->smp_init()) {
+ if (psci_smp_available())
+ smp_set_ops(&psci_smp_ops);
+ else if (mdesc->smp)
+ smp_set_ops(mdesc->smp);
+ }
smp_init_cpus();
}
#endif