.. | .. |
---|
5 | 5 | #ifdef CONFIG_ARM_CPU_TOPOLOGY |
---|
6 | 6 | |
---|
7 | 7 | #include <linux/cpumask.h> |
---|
8 | | - |
---|
9 | | -struct cputopo_arm { |
---|
10 | | - int thread_id; |
---|
11 | | - int core_id; |
---|
12 | | - int socket_id; |
---|
13 | | - cpumask_t thread_sibling; |
---|
14 | | - cpumask_t core_sibling; |
---|
15 | | -}; |
---|
16 | | - |
---|
17 | | -extern struct cputopo_arm cpu_topology[NR_CPUS]; |
---|
18 | | - |
---|
19 | | -#define topology_physical_package_id(cpu) (cpu_topology[cpu].socket_id) |
---|
20 | | -#define topology_core_id(cpu) (cpu_topology[cpu].core_id) |
---|
21 | | -#define topology_core_cpumask(cpu) (&cpu_topology[cpu].core_sibling) |
---|
22 | | -#define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_sibling) |
---|
23 | | - |
---|
24 | | -void init_cpu_topology(void); |
---|
25 | | -void store_cpu_topology(unsigned int cpuid); |
---|
26 | | -const struct cpumask *cpu_coregroup_mask(int cpu); |
---|
27 | | - |
---|
28 | 8 | #include <linux/arch_topology.h> |
---|
29 | 9 | |
---|
| 10 | +/* big.LITTLE switcher is incompatible with frequency invariance */ |
---|
| 11 | +#ifndef CONFIG_BL_SWITCHER |
---|
30 | 12 | /* Replace task scheduler's default frequency-invariant accounting */ |
---|
| 13 | +#define arch_set_freq_scale topology_set_freq_scale |
---|
31 | 14 | #define arch_scale_freq_capacity topology_get_freq_scale |
---|
32 | | - |
---|
33 | | -/* Replace task scheduler's default max-frequency-invariant accounting */ |
---|
34 | | -#define arch_scale_max_freq_capacity topology_get_max_freq_scale |
---|
| 15 | +#define arch_scale_freq_invariant topology_scale_freq_invariant |
---|
| 16 | +#endif |
---|
35 | 17 | |
---|
36 | 18 | /* Replace task scheduler's default cpu-invariant accounting */ |
---|
37 | 19 | #define arch_scale_cpu_capacity topology_get_cpu_scale |
---|
.. | .. |
---|
39 | 21 | /* Enable topology flag updates */ |
---|
40 | 22 | #define arch_update_cpu_topology topology_update_cpu_topology |
---|
41 | 23 | |
---|
| 24 | +/* Replace task scheduler's default thermal pressure API */ |
---|
| 25 | +#define arch_scale_thermal_pressure topology_get_thermal_pressure |
---|
| 26 | +#define arch_set_thermal_pressure topology_set_thermal_pressure |
---|
| 27 | + |
---|
42 | 28 | #else |
---|
43 | 29 | |
---|
44 | 30 | static inline void init_cpu_topology(void) { } |
---|