blob: 470299ee2fbaaf95e52f96001834e6d23c5c5101 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_ARM_TOPOLOGY_H
3#define _ASM_ARM_TOPOLOGY_H
4
5#ifdef CONFIG_ARM_CPU_TOPOLOGY
6
7#include <linux/cpumask.h>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00008#include <linux/arch_topology.h>
9
Olivier Deprez157378f2022-04-04 15:47:50 +020010/* big.LITTLE switcher is incompatible with frequency invariance */
11#ifndef CONFIG_BL_SWITCHER
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000012/* Replace task scheduler's default frequency-invariant accounting */
Olivier Deprez157378f2022-04-04 15:47:50 +020013#define arch_set_freq_scale topology_set_freq_scale
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000014#define arch_scale_freq_capacity topology_get_freq_scale
Olivier Deprez157378f2022-04-04 15:47:50 +020015#define arch_scale_freq_invariant topology_scale_freq_invariant
16#endif
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000017
18/* Replace task scheduler's default cpu-invariant accounting */
19#define arch_scale_cpu_capacity topology_get_cpu_scale
20
David Brazdil0f672f62019-12-10 10:32:29 +000021/* Enable topology flag updates */
22#define arch_update_cpu_topology topology_update_cpu_topology
23
Olivier Deprez157378f2022-04-04 15:47:50 +020024/* 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
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000028#else
29
30static inline void init_cpu_topology(void) { }
31static inline void store_cpu_topology(unsigned int cpuid) { }
32
33#endif
34
35#include <asm-generic/topology.h>
36
37#endif /* _ASM_ARM_TOPOLOGY_H */