Hi Marek,

Thanks for the patch.

> -----Original Message-----
> From: Marek Vasut <[email protected]>
> Sent: 14 December 2024 22:43
> Subject: [PATCH 1/3] arm64: Convert core type check macros into inline 
> functions
> 
> Turn the core type check macros into inline functions to perform better type 
> checking on them. The
> inline functions get optimized out in case they are not used. Indent the 
> MIDR_PARTNUM_CORTEX_An macros
> in preparation for addition of future three-digit cores and use 
> MIDR_PARTNUM_SHIFT in
> MIDR_PARTNUM_MASK to be consistent.
> 
> Signed-off-by: Marek Vasut <[email protected]>
> ---
> Cc: Biju Das <[email protected]>
> Cc: Chris Paterson <[email protected]>
> Cc: Lad Prabhakar <[email protected]>
> Cc: Nobuhiro Iwamatsu <[email protected]>
> Cc: Paul Barker <[email protected]>
> Cc: Tom Rini <[email protected]>
> Cc: [email protected]
> ---
>  arch/arm/include/asm/armv8/cpu.h | 28 +++++++++++++++++-----------
>  1 file changed, 17 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm/include/asm/armv8/cpu.h 
> b/arch/arm/include/asm/armv8/cpu.h
> index 40d54dc85ab..aa1470bb72d 100644
> --- a/arch/arm/include/asm/armv8/cpu.h
> +++ b/arch/arm/include/asm/armv8/cpu.h
> @@ -3,11 +3,11 @@
>   * Copyright 2018 NXP
>   */
> 
> -#define MIDR_PARTNUM_CORTEX_A35      0xD04
> -#define MIDR_PARTNUM_CORTEX_A53      0xD03
> -#define MIDR_PARTNUM_CORTEX_A72      0xD08
> -#define MIDR_PARTNUM_SHIFT   0x4
> -#define MIDR_PARTNUM_MASK    (0xFFF << 0x4)
> +#define MIDR_PARTNUM_CORTEX_A35              0xD04
> +#define MIDR_PARTNUM_CORTEX_A53              0xD03
> +#define MIDR_PARTNUM_CORTEX_A72              0xD08
> +#define MIDR_PARTNUM_SHIFT           0x4
> +#define MIDR_PARTNUM_MASK            (0xFFF << MIDR_PARTNUM_SHIFT)
> 
>  static inline unsigned int read_midr(void)  { @@ -18,9 +18,15 @@ static 
> inline unsigned int
> read_midr(void)
>       return val;
>  }
> 
> -#define is_cortex_a35() (((read_midr() & MIDR_PARTNUM_MASK) >> \
> -                      MIDR_PARTNUM_SHIFT) == MIDR_PARTNUM_CORTEX_A35)
> -#define is_cortex_a53() (((read_midr() & MIDR_PARTNUM_MASK) >> \
> -                      MIDR_PARTNUM_SHIFT) == MIDR_PARTNUM_CORTEX_A53)
> -#define is_cortex_a72() (((read_midr() & MIDR_PARTNUM_MASK) >>\
> -                      MIDR_PARTNUM_SHIFT) == MIDR_PARTNUM_CORTEX_A72)
> +#define is_cortex_a(__n)                                     \
> +     static inline int is_cortex_a##__n(void)                \
> +     {                                                       \
> +             unsigned int midr = read_midr();                \

Maybe unsigned int midr = read_midr() & MIDR_PARTNUM_MASK, to reduce one store 
Operation???

Cheers,
Biju

> +             midr &= MIDR_PARTNUM_MASK;                      \
> +             midr >>= MIDR_PARTNUM_SHIFT;                    \
> +             return midr == MIDR_PARTNUM_CORTEX_A##__n;      \
> +     }
> +
> +is_cortex_a(35)
> +is_cortex_a(53)
> +is_cortex_a(72)
> --
> 2.45.2

Reply via email to