MIPS: Move definition of SMP processor id register to header file
The definition of the CP0 register used to save the smp processor id is repicated in many files, move them all to thread_info.h. Signed-off-by: Jayachandran C <jchandra@broadcom.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/5708/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
1a9db0a9ea
commit
c2377a42cd
@@ -17,6 +17,7 @@
|
||||
#include <asm/asmmacro.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
/*
|
||||
* For SMTC kernel, global IE should be left set, and interrupts
|
||||
@@ -93,21 +94,8 @@
|
||||
.endm
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#ifdef CONFIG_MIPS_MT_SMTC
|
||||
#define PTEBASE_SHIFT 19 /* TCBIND */
|
||||
#define CPU_ID_REG CP0_TCBIND
|
||||
#define CPU_ID_MFC0 mfc0
|
||||
#elif defined(CONFIG_MIPS_PGD_C0_CONTEXT)
|
||||
#define PTEBASE_SHIFT 48 /* XCONTEXT */
|
||||
#define CPU_ID_REG CP0_XCONTEXT
|
||||
#define CPU_ID_MFC0 MFC0
|
||||
#else
|
||||
#define PTEBASE_SHIFT 23 /* CONTEXT */
|
||||
#define CPU_ID_REG CP0_CONTEXT
|
||||
#define CPU_ID_MFC0 MFC0
|
||||
#endif
|
||||
.macro get_saved_sp /* SMP variation */
|
||||
CPU_ID_MFC0 k0, CPU_ID_REG
|
||||
ASM_CPUID_MFC0 k0, ASM_SMP_CPUID_REG
|
||||
#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
|
||||
lui k1, %hi(kernelsp)
|
||||
#else
|
||||
@@ -117,17 +105,17 @@
|
||||
daddiu k1, %hi(kernelsp)
|
||||
dsll k1, 16
|
||||
#endif
|
||||
LONG_SRL k0, PTEBASE_SHIFT
|
||||
LONG_SRL k0, SMP_CPUID_PTRSHIFT
|
||||
LONG_ADDU k1, k0
|
||||
LONG_L k1, %lo(kernelsp)(k1)
|
||||
.endm
|
||||
|
||||
.macro set_saved_sp stackp temp temp2
|
||||
CPU_ID_MFC0 \temp, CPU_ID_REG
|
||||
LONG_SRL \temp, PTEBASE_SHIFT
|
||||
ASM_CPUID_MFC0 \temp, ASM_SMP_CPUID_REG
|
||||
LONG_SRL \temp, SMP_CPUID_PTRSHIFT
|
||||
LONG_S \stackp, kernelsp(\temp)
|
||||
.endm
|
||||
#else
|
||||
#else /* !CONFIG_SMP */
|
||||
.macro get_saved_sp /* Uniprocessor variation */
|
||||
#ifdef CONFIG_CPU_JUMP_WORKAROUNDS
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user