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

Commit 06717352 authored by Russell King's avatar Russell King
Browse files

ARM: Provide common header for hard_smp_processor_id()



Provide a common header to read the SMP CPU number from the MPIDR.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 971acb9b
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
#ifndef ASMARM_SMP_MIDR_H
#define ASMARM_SMP_MIDR_H

#define hard_smp_processor_id()						\
	({								\
		unsigned int cpunum;					\
		__asm__("mrc p15, 0, %0, c0, c0, 5\n"			\
			: "=r" (cpunum));				\
		cpunum &= 0x0F;						\
	})

#endif
+1 −9
Original line number Original line Diff line number Diff line
#ifndef ASMARM_ARCH_SMP_H
#ifndef ASMARM_ARCH_SMP_H
#define ASMARM_ARCH_SMP_H
#define ASMARM_ARCH_SMP_H



#include <asm/hardware/gic.h>
#include <asm/hardware/gic.h>

#include <asm/smp_mpidr.h>
#define hard_smp_processor_id()			\
	({						\
		unsigned int cpunum;			\
		__asm__("mrc p15, 0, %0, c0, c0, 5"	\
			: "=r" (cpunum));		\
		cpunum &= 0x0F;				\
	})


/*
/*
 * We use IRQ1 as the IPI
 * We use IRQ1 as the IPI
+1 −8
Original line number Original line Diff line number Diff line
@@ -7,17 +7,10 @@
#define ASM_ARCH_SMP_H __FILE__
#define ASM_ARCH_SMP_H __FILE__


#include <asm/hardware/gic.h>
#include <asm/hardware/gic.h>
#include <asm/smp_mpidr.h>


extern void __iomem *gic_cpu_base_addr;
extern void __iomem *gic_cpu_base_addr;


#define hard_smp_processor_id()			\
	({						\
		unsigned int cpunum;			\
		__asm__("mrc p15, 0, %0, c0, c0, 5"	\
			: "=r" (cpunum));		\
		cpunum &= 0x03;				\
	})

/*
/*
 * We use IRQ1 as the IPI
 * We use IRQ1 as the IPI
 */
 */
+1 −9
Original line number Original line Diff line number Diff line
#ifndef ASMARM_ARCH_SMP_H
#ifndef ASMARM_ARCH_SMP_H
#define ASMARM_ARCH_SMP_H
#define ASMARM_ARCH_SMP_H



#include <asm/hardware/gic.h>
#include <asm/hardware/gic.h>

#include <asm/smp_mpidr.h>
#define hard_smp_processor_id()			\
	({						\
		unsigned int cpunum;			\
		__asm__("mrc p15, 0, %0, c0, c0, 5"	\
			: "=r" (cpunum));		\
		cpunum &= 0x0F;				\
	})


/*
/*
 * We use IRQ1 as the IPI
 * We use IRQ1 as the IPI
+1 −8
Original line number Original line Diff line number Diff line
@@ -10,18 +10,11 @@
#define ASMARM_ARCH_SMP_H
#define ASMARM_ARCH_SMP_H


#include <asm/hardware/gic.h>
#include <asm/hardware/gic.h>
#include <asm/smp_mpidr.h>


/* This is required to wakeup the secondary core */
/* This is required to wakeup the secondary core */
extern void u8500_secondary_startup(void);
extern void u8500_secondary_startup(void);


#define hard_smp_processor_id()				\
	({						\
		unsigned int cpunum;			\
		__asm__("mrc p15, 0, %0, c0, c0, 5"	\
			: "=r" (cpunum));		\
		cpunum &= 0x0F;				\
	})

/*
/*
 * We use IRQ1 as the IPI
 * We use IRQ1 as the IPI
 */
 */
Loading