18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Definitions and declarations for MIPS MT support that are common between
48c2ecf20Sopenharmony_ci * the VSMP, and AP/SP kernel models.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci#ifndef __ASM_MIPS_MT_H
78c2ecf20Sopenharmony_ci#define __ASM_MIPS_MT_H
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include <linux/cpumask.h>
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/*
128c2ecf20Sopenharmony_ci * How many VPEs and TCs is Linux allowed to use?  0 means no limit.
138c2ecf20Sopenharmony_ci */
148c2ecf20Sopenharmony_ciextern int tclimit;
158c2ecf20Sopenharmony_ciextern int vpelimit;
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciextern cpumask_t mt_fpu_cpumask;
188c2ecf20Sopenharmony_ciextern unsigned long mt_fpemul_threshold;
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciextern void mips_mt_regdump(unsigned long previous_mvpcontrol_value);
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci#ifdef CONFIG_MIPS_MT
238c2ecf20Sopenharmony_ciextern void mips_mt_set_cpuoptions(void);
248c2ecf20Sopenharmony_ci#else
258c2ecf20Sopenharmony_cistatic inline void mips_mt_set_cpuoptions(void) { }
268c2ecf20Sopenharmony_ci#endif
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_cistruct class;
298c2ecf20Sopenharmony_ciextern struct class *mt_class;
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci#endif /* __ASM_MIPS_MT_H */
32