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

Commit f55fe8a3 authored by Lorenzo Pieralisi's avatar Lorenzo Pieralisi Committed by Abhimanyu Kapur
Browse files

arm64: kernel: add MPIDR_EL1 accessors macros



In order to simplify access to different affinity levels within the
MPIDR_EL1 register values, this patch implements some preprocessor
macros that allow to retrieve the MPIDR_EL1 affinity level value according
to the level passed as input parameter.

Change-Id: I1ac939e3ca3c55a067c3211b3df3f410da80c538
Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Git-commit: b058450f38c337d12a6d1a1bcaa8610859055e2e
Git-repo: Git-Repo: git://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git


Signed-off-by: default avatarAbhimanyu Kapur <abhimany@codeaurora.org>
parent c358e70e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -30,6 +30,16 @@

#define MPIDR_HWID_BITMASK	0xff00ffffff

#define MPIDR_LEVEL_BITS_SHIFT	3
#define MPIDR_LEVEL_BITS	(1 << MPIDR_LEVEL_BITS_SHIFT)
#define MPIDR_LEVEL_MASK	((1 << MPIDR_LEVEL_BITS) - 1)

#define MPIDR_LEVEL_SHIFT(level) \
	(((1 << level) >> 1) << MPIDR_LEVEL_BITS_SHIFT)

#define MPIDR_AFFINITY_LEVEL(mpidr, level) \
	((mpidr >> MPIDR_LEVEL_SHIFT(level)) & MPIDR_LEVEL_MASK)

#define read_cpuid(reg) ({						\
	u64 __val;							\
	asm("mrs	%0, " reg : "=r" (__val));			\