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

Commit 28e8e29c authored by Marc Zyngier's avatar Marc Zyngier Committed by Arnd Bergmann
Browse files

ARM: consolidate pen_release instead of having per platform definitions



Almost each SMP platform defines pen_release to manage booting secondary
CPUs. This of course clashes with the single zImage effort.

Add the pen_release definition to the ARM SMP code, and remove all others.
This should only be used by platforms which lack any kind of CPU power
management...

Reported-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Acked-by: default avatarNicolas Pitre <nico@linaro.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent ac6c7998
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ struct secondary_data {
	void *stack;
};
extern struct secondary_data secondary_data;
extern volatile int pen_release;

extern int __cpu_disable(void);

+6 −0
Original line number Diff line number Diff line
@@ -51,6 +51,12 @@
 */
struct secondary_data secondary_data;

/*
 * control for which core is the next to come out of the secondary
 * boot "holding pen"
 */
volatile int __cpuinitdata pen_release = -1;

enum ipi_msg_type {
	IPI_TIMER = 2,
	IPI_RESCHEDULE,
+0 −2
Original line number Diff line number Diff line
@@ -23,8 +23,6 @@

#include "common.h"

extern volatile int pen_release;

static inline void cpu_enter_lowpower(void)
{
	unsigned int v;
+0 −7
Original line number Diff line number Diff line
@@ -39,13 +39,6 @@ extern void exynos4_secondary_startup(void);
#define CPU1_BOOT_REG		(samsung_rev() == EXYNOS4210_REV_1_1 ? \
				S5P_INFORM5 : S5P_VA_SYSRAM)

/*
 * control for which core is the next to come out of the secondary
 * boot "holding pen"
 */

volatile int __cpuinitdata pen_release = -1;

/*
 * Write pen_release in a way that is guaranteed to be visible to all
 * observers, irrespective of whether they're taking part in coherency
+0 −2
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@

#include "core.h"

extern volatile int pen_release;

static inline void cpu_enter_lowpower(void)
{
	/* Just flush the cache. Changing the coherency is not yet
Loading