Message ID | 1435752784-30639-1-git-send-email-vitalya@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jul 01, 2015 at 01:13:03PM +0100, Vitaly Andrianov wrote: > If we enable psci support we don't need keystone_smp_ops anymore. You need them for existing users. > > Signed-off-by: Vitaly Andrianov <vitalya@ti.com> > --- > arch/arm/mach-keystone/Makefile | 2 ++ > arch/arm/mach-keystone/keystone.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile > index 25d9239..5cc5ca4 100644 > --- a/arch/arm/mach-keystone/Makefile > +++ b/arch/arm/mach-keystone/Makefile > @@ -3,7 +3,9 @@ obj-y := keystone.o smc.o > plus_sec := $(call as-instr,.arch_extension sec,+sec) > AFLAGS_smc.o :=-Wa,-march=armv7-a$(plus_sec) > > +ifneq ($(CONFIG_ARM_PSCI),y) > obj-$(CONFIG_SMP) += platsmp.o > +endif > > # PM domain driver for Keystone SOCs > obj-$(CONFIG_ARCH_KEYSTONE) += pm_domain.o > diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c > index e2880105..9cc489c 100644 > --- a/arch/arm/mach-keystone/keystone.c > +++ b/arch/arm/mach-keystone/keystone.c > @@ -105,7 +105,9 @@ DT_MACHINE_START(KEYSTONE, "Keystone") > #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) > .dma_zone_size = SZ_2G, > #endif > +#ifndef CONFIG_ARM_PSCI > .smp = smp_ops(keystone_smp_ops), > +#endif This will prevent building a kernel that supports PSCI and your legacy SMP bringup. I don't think this is necessary, given the code in setup_arch and the absence of mdesc->smp_init for keystone. A single kernel can support both, and it should support both. Thanks, Mark. > .init_machine = keystone_init, > .dt_compat = keystone_match, > .pv_fixup = keystone_pv_fixup, > -- > 1.9.1 >
On Wed, Jul 01, 2015 at 08:13:03AM -0400, Vitaly Andrianov wrote: > If we enable psci support we don't need keystone_smp_ops anymore. > > Signed-off-by: Vitaly Andrianov <vitalya@ti.com> However, this is not necessary. If you look at arch/arm/kernel/setup.c, it contains this: psci_init(); #ifdef CONFIG_SMP if (is_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(); smp_build_mpidr_hash(); } #endif So, the platforms' SMP ops won't be used even if they're provided when PSCI is available.
diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile index 25d9239..5cc5ca4 100644 --- a/arch/arm/mach-keystone/Makefile +++ b/arch/arm/mach-keystone/Makefile @@ -3,7 +3,9 @@ obj-y := keystone.o smc.o plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_smc.o :=-Wa,-march=armv7-a$(plus_sec) +ifneq ($(CONFIG_ARM_PSCI),y) obj-$(CONFIG_SMP) += platsmp.o +endif # PM domain driver for Keystone SOCs obj-$(CONFIG_ARCH_KEYSTONE) += pm_domain.o diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c index e2880105..9cc489c 100644 --- a/arch/arm/mach-keystone/keystone.c +++ b/arch/arm/mach-keystone/keystone.c @@ -105,7 +105,9 @@ DT_MACHINE_START(KEYSTONE, "Keystone") #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) .dma_zone_size = SZ_2G, #endif +#ifndef CONFIG_ARM_PSCI .smp = smp_ops(keystone_smp_ops), +#endif .init_machine = keystone_init, .dt_compat = keystone_match, .pv_fixup = keystone_pv_fixup,
If we enable psci support we don't need keystone_smp_ops anymore. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> --- arch/arm/mach-keystone/Makefile | 2 ++ arch/arm/mach-keystone/keystone.c | 2 ++ 2 files changed, 4 insertions(+)