arch_topology: Allow multiple entities to provide sched_freq_tick() callback
[sfrench/cifs-2.6.git] / include / linux / arch_topology.h
index 583af517f12302cef65ec0fd8f9e96f6f0a49583..11e555cfaecb496f7040c18f1b3b06ad4ec36a2e 100644 (file)
@@ -34,7 +34,19 @@ void topology_set_freq_scale(const struct cpumask *cpus, unsigned long cur_freq,
                             unsigned long max_freq);
 bool topology_scale_freq_invariant(void);
 
-bool arch_freq_counters_available(const struct cpumask *cpus);
+enum scale_freq_source {
+       SCALE_FREQ_SOURCE_CPUFREQ = 0,
+       SCALE_FREQ_SOURCE_ARCH,
+};
+
+struct scale_freq_data {
+       enum scale_freq_source source;
+       void (*set_freq_scale)(void);
+};
+
+void topology_scale_freq_tick(void);
+void topology_set_scale_freq_source(struct scale_freq_data *data, const struct cpumask *cpus);
+void topology_clear_scale_freq_source(enum scale_freq_source source, const struct cpumask *cpus);
 
 DECLARE_PER_CPU(unsigned long, thermal_pressure);