| .. | .. |
|---|
| 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) { } |
|---|