Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3972863a authored by Chris Packham's avatar Chris Packham Committed by Gregory CLEMENT
Browse files

ARM: mvebu: use dt_fixup to provide fallback for enable-method



We need to maintain backwards compatibility with device trees that don't
define an enable method. At the same time we want the device tree to be
able to specify an enable-method and have it stick.

Previously by having smp assigned in the DT_MACHINE definition this
would be picked up by setup_arch() and override whatever
arm_dt_init_cpu_maps() had configured. Now we move the initial
assignment of default smp_ops to a dt_fixup and let
arm_dt_init_cpu_maps() override that if the device tree defines an
enable-method.

[olof@lixom.net: Wrap set_smp_ops() in CONFIG_SMP.]
Signed-off-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com> (on AX3)
Signed-off-by: default avatarGregory CLEMENT <gregory.clement@bootlin.com>
parent 5b394b2d
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -145,6 +145,13 @@ static void __init mvebu_dt_init(void)
		i2c_quirk();
}

static void __init armada_370_xp_dt_fixup(void)
{
#ifdef CONFIG_SMP
	smp_set_ops(smp_ops(armada_xp_smp_ops));
#endif
}

static const char * const armada_370_xp_dt_compat[] __initconst = {
	"marvell,armada-370-xp",
	NULL,
@@ -153,17 +160,12 @@ static const char * const armada_370_xp_dt_compat[] __initconst = {
DT_MACHINE_START(ARMADA_370_XP_DT, "Marvell Armada 370/XP (Device Tree)")
	.l2c_aux_val	= 0,
	.l2c_aux_mask	= ~0,
/*
 * The following field (.smp) is still needed to ensure backward
 * compatibility with old Device Trees that were not specifying the
 * cpus enable-method property.
 */
	.smp		= smp_ops(armada_xp_smp_ops),
	.init_machine	= mvebu_dt_init,
	.init_irq       = mvebu_init_irq,
	.restart	= mvebu_restart,
	.reserve        = mvebu_memblock_reserve,
	.dt_compat	= armada_370_xp_dt_compat,
	.dt_fixup	= armada_370_xp_dt_fixup,
MACHINE_END

static const char * const armada_375_dt_compat[] __initconst = {