Skip to content

Commit

Permalink
arm64: drop redundant macros from read_cpuid()
Browse files Browse the repository at this point in the history
asm/cputype.h contains a bunch of #defines for CPU id registers
that essentially map to themselves. Remove the #defines and pass
the tokens directly to the inline asm() that reads the registers.

Signed-off-by: Ard Biesheuvel <[email protected]>
Signed-off-by: Catalin Marinas <[email protected]>
  • Loading branch information
Ard Biesheuvel authored and ctmarinas committed Dec 19, 2013
1 parent 81cac69 commit 148eb0a
Showing 1 changed file with 4 additions and 14 deletions.
18 changes: 4 additions & 14 deletions arch/arm64/include/asm/cputype.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,13 @@
#ifndef __ASM_CPUTYPE_H
#define __ASM_CPUTYPE_H

#define ID_MIDR_EL1 "midr_el1"
#define ID_MPIDR_EL1 "mpidr_el1"
#define ID_CTR_EL0 "ctr_el0"

#define ID_AA64PFR0_EL1 "id_aa64pfr0_el1"
#define ID_AA64DFR0_EL1 "id_aa64dfr0_el1"
#define ID_AA64AFR0_EL1 "id_aa64afr0_el1"
#define ID_AA64ISAR0_EL1 "id_aa64isar0_el1"
#define ID_AA64MMFR0_EL1 "id_aa64mmfr0_el1"

#define INVALID_HWID ULONG_MAX

#define MPIDR_HWID_BITMASK 0xff00ffffff

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

Expand All @@ -54,12 +44,12 @@
*/
static inline u32 __attribute_const__ read_cpuid_id(void)
{
return read_cpuid(ID_MIDR_EL1);
return read_cpuid(MIDR_EL1);
}

static inline u64 __attribute_const__ read_cpuid_mpidr(void)
{
return read_cpuid(ID_MPIDR_EL1);
return read_cpuid(MPIDR_EL1);
}

static inline unsigned int __attribute_const__ read_cpuid_implementor(void)
Expand All @@ -74,7 +64,7 @@ static inline unsigned int __attribute_const__ read_cpuid_part_number(void)

static inline u32 __attribute_const__ read_cpuid_cachetype(void)
{
return read_cpuid(ID_CTR_EL0);
return read_cpuid(CTR_EL0);
}

#endif /* __ASSEMBLY__ */
Expand Down

0 comments on commit 148eb0a

Please sign in to comment.