Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Copyright (C) 2013 Imagination Technologies
0004  * Author: Paul Burton <paul.burton@mips.com>
0005  */
0006 
0007 #ifndef __MIPS_ASM_SMP_CPS_H__
0008 #define __MIPS_ASM_SMP_CPS_H__
0009 
0010 #ifndef __ASSEMBLY__
0011 
0012 struct vpe_boot_config {
0013     unsigned long pc;
0014     unsigned long sp;
0015     unsigned long gp;
0016 };
0017 
0018 struct core_boot_config {
0019     atomic_t vpe_mask;
0020     struct vpe_boot_config *vpe_config;
0021 };
0022 
0023 extern struct core_boot_config *mips_cps_core_bootcfg;
0024 
0025 extern void mips_cps_core_entry(void);
0026 extern void mips_cps_core_init(void);
0027 
0028 extern void mips_cps_boot_vpes(struct core_boot_config *cfg, unsigned vpe);
0029 
0030 extern void mips_cps_pm_save(void);
0031 extern void mips_cps_pm_restore(void);
0032 
0033 #ifdef CONFIG_MIPS_CPS
0034 
0035 extern bool mips_cps_smp_in_use(void);
0036 
0037 #else /* !CONFIG_MIPS_CPS */
0038 
0039 static inline bool mips_cps_smp_in_use(void) { return false; }
0040 
0041 #endif /* !CONFIG_MIPS_CPS */
0042 
0043 #else /* __ASSEMBLY__ */
0044 
0045 .extern mips_cps_bootcfg;
0046 
0047 #endif /* __ASSEMBLY__ */
0048 #endif /* __MIPS_ASM_SMP_CPS_H__ */