diff mbox series

[for-5.19,2/2] loongarch: Mask out higher bits for get_csr_cpuid

Message ID 20220604124052.1550-2-jiaxun.yang@flygoat.com (mailing list archive)
State Handled Elsewhere
Headers show
Series [for-5.19,1/2] irqchip/loongson-liointc: Use architecture register to get coreid | expand

Commit Message

Jiaxun Yang June 4, 2022, 12:40 p.m. UTC
Only low 9 bits of CPUID CSR represents coreid, higher bits
are marked as reserved. In case Loongson may define higher
bits in future, just mask them out for get_csr_cpuid.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 arch/loongarch/include/asm/loongarch.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Huacai Chen June 4, 2022, 1:11 p.m. UTC | #1
Hi, Jiaxun,

On Sat, Jun 4, 2022 at 8:41 PM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>
> Only low 9 bits of CPUID CSR represents coreid, higher bits
> are marked as reserved. In case Loongson may define higher
> bits in future, just mask them out for get_csr_cpuid.
I think we needn't to modify, until the high bits actually get defined. :)

Huacai

>
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
>  arch/loongarch/include/asm/loongarch.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h
> index 3ba4f7e87cd2..7f3933f747f9 100644
> --- a/arch/loongarch/include/asm/loongarch.h
> +++ b/arch/loongarch/include/asm/loongarch.h
> @@ -1200,7 +1200,7 @@ static inline u64 drdtime(void)
>
>  static inline unsigned int get_csr_cpuid(void)
>  {
> -       return csr_read32(LOONGARCH_CSR_CPUID);
> +       return csr_read32(LOONGARCH_CSR_CPUID) & CSR_CPUID_COREID;
>  }
>
>  static inline void csr_any_send(unsigned int addr, unsigned int data,
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h
index 3ba4f7e87cd2..7f3933f747f9 100644
--- a/arch/loongarch/include/asm/loongarch.h
+++ b/arch/loongarch/include/asm/loongarch.h
@@ -1200,7 +1200,7 @@  static inline u64 drdtime(void)
 
 static inline unsigned int get_csr_cpuid(void)
 {
-	return csr_read32(LOONGARCH_CSR_CPUID);
+	return csr_read32(LOONGARCH_CSR_CPUID) & CSR_CPUID_COREID;
 }
 
 static inline void csr_any_send(unsigned int addr, unsigned int data,