1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * include/linux/arch_topology.h - arch specific cpu topology information 4 */ 5 #ifndef _LINUX_ARCH_TOPOLOGY_H_ 6 #define _LINUX_ARCH_TOPOLOGY_H_ 7 8 #include <linux/types.h> 9 #include <linux/percpu.h> 10 11 void topology_normalize_cpu_scale(void); 12 13 struct device_node; 14 bool topology_parse_cpu_capacity(struct device_node *cpu_node, int cpu); 15 16 DECLARE_PER_CPU(unsigned long, cpu_scale); 17 18 struct sched_domain; 19 static inline topology_get_cpu_scale(struct sched_domain * sd,int cpu)20unsigned long topology_get_cpu_scale(struct sched_domain *sd, int cpu) 21 { 22 return per_cpu(cpu_scale, cpu); 23 } 24 25 void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity); 26 27 DECLARE_PER_CPU(unsigned long, freq_scale); 28 29 static inline topology_get_freq_scale(int cpu)30unsigned long topology_get_freq_scale(int cpu) 31 { 32 return per_cpu(freq_scale, cpu); 33 } 34 35 #endif /* _LINUX_ARCH_TOPOLOGY_H_ */ 36