mirror of
https://github.com/torvalds/linux.git
synced 2024-11-18 18:11:56 +00:00
MIPS: Add CPU cluster number accessors
Introduce cpu_cluster() & cpu_set_cluster() accessor functions in the same vein as cpu_core(), cpu_vpe_id() & their set variants. These will be used in further patches to allow users to get or set a CPUs cluster number. Signed-off-by: Paul Burton <paul.burton@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/17012/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
fe7a38c625
commit
5616897efd
@ -139,6 +139,16 @@ struct proc_cpuinfo_notifier_args {
|
||||
unsigned long n;
|
||||
};
|
||||
|
||||
static inline unsigned int cpu_cluster(struct cpuinfo_mips *cpuinfo)
|
||||
{
|
||||
/* Optimisation for systems where multiple clusters aren't used */
|
||||
if (!IS_ENABLED(CONFIG_CPU_MIPSR6))
|
||||
return 0;
|
||||
|
||||
return (cpuinfo->globalnumber & MIPS_GLOBALNUMBER_CLUSTER) >>
|
||||
MIPS_GLOBALNUMBER_CLUSTER_SHF;
|
||||
}
|
||||
|
||||
static inline unsigned int cpu_core(struct cpuinfo_mips *cpuinfo)
|
||||
{
|
||||
return (cpuinfo->globalnumber & MIPS_GLOBALNUMBER_CORE) >>
|
||||
@ -155,6 +165,7 @@ static inline unsigned int cpu_vpe_id(struct cpuinfo_mips *cpuinfo)
|
||||
MIPS_GLOBALNUMBER_VP_SHF;
|
||||
}
|
||||
|
||||
extern void cpu_set_cluster(struct cpuinfo_mips *cpuinfo, unsigned int cluster);
|
||||
extern void cpu_set_core(struct cpuinfo_mips *cpuinfo, unsigned int core);
|
||||
extern void cpu_set_vpe_id(struct cpuinfo_mips *cpuinfo, unsigned int vpe);
|
||||
|
||||
|
@ -2099,6 +2099,16 @@ void cpu_report(void)
|
||||
pr_info("MSA revision is: %08x\n", c->msa_id);
|
||||
}
|
||||
|
||||
void cpu_set_cluster(struct cpuinfo_mips *cpuinfo, unsigned int cluster)
|
||||
{
|
||||
/* Ensure the core number fits in the field */
|
||||
WARN_ON(cluster > (MIPS_GLOBALNUMBER_CLUSTER >>
|
||||
MIPS_GLOBALNUMBER_CLUSTER_SHF));
|
||||
|
||||
cpuinfo->globalnumber &= ~MIPS_GLOBALNUMBER_CLUSTER;
|
||||
cpuinfo->globalnumber |= cluster << MIPS_GLOBALNUMBER_CLUSTER_SHF;
|
||||
}
|
||||
|
||||
void cpu_set_core(struct cpuinfo_mips *cpuinfo, unsigned int core)
|
||||
{
|
||||
/* Ensure the core number fits in the field */
|
||||
|
Loading…
Reference in New Issue
Block a user