linux/arch/mips/include/asm/smp-cps.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 * Copyright (C) 2013 Imagination Technologies
   4 * Author: Paul Burton <paul.burton@mips.com>
   5 */
   6
   7#ifndef __MIPS_ASM_SMP_CPS_H__
   8#define __MIPS_ASM_SMP_CPS_H__
   9
  10#ifndef __ASSEMBLY__
  11
  12struct vpe_boot_config {
  13        unsigned long pc;
  14        unsigned long sp;
  15        unsigned long gp;
  16};
  17
  18struct core_boot_config {
  19        atomic_t vpe_mask;
  20        struct vpe_boot_config *vpe_config;
  21};
  22
  23extern struct core_boot_config *mips_cps_core_bootcfg;
  24
  25extern void mips_cps_core_entry(void);
  26extern void mips_cps_core_init(void);
  27
  28extern void mips_cps_boot_vpes(struct core_boot_config *cfg, unsigned vpe);
  29
  30extern void mips_cps_pm_save(void);
  31extern void mips_cps_pm_restore(void);
  32
  33#ifdef CONFIG_MIPS_CPS
  34
  35extern bool mips_cps_smp_in_use(void);
  36
  37#else /* !CONFIG_MIPS_CPS */
  38
  39static inline bool mips_cps_smp_in_use(void) { return false; }
  40
  41#endif /* !CONFIG_MIPS_CPS */
  42
  43#else /* __ASSEMBLY__ */
  44
  45.extern mips_cps_bootcfg;
  46
  47#endif /* __ASSEMBLY__ */
  48#endif /* __MIPS_ASM_SMP_CPS_H__ */
  49