|
|
|
@ -28,47 +28,49 @@ |
|
|
|
|
#include <linux/thermal.h> |
|
|
|
|
#include <linux/cpumask.h> |
|
|
|
|
|
|
|
|
|
struct cpufreq_policy; |
|
|
|
|
|
|
|
|
|
typedef int (*get_static_t)(cpumask_t *cpumask, int interval, |
|
|
|
|
unsigned long voltage, u32 *power); |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_CPU_THERMAL |
|
|
|
|
/**
|
|
|
|
|
* cpufreq_cooling_register - function to create cpufreq cooling device. |
|
|
|
|
* @clip_cpus: cpumask of cpus where the frequency constraints will happen |
|
|
|
|
* @policy: cpufreq policy. |
|
|
|
|
*/ |
|
|
|
|
struct thermal_cooling_device * |
|
|
|
|
cpufreq_cooling_register(const struct cpumask *clip_cpus); |
|
|
|
|
cpufreq_cooling_register(struct cpufreq_policy *policy); |
|
|
|
|
|
|
|
|
|
struct thermal_cooling_device * |
|
|
|
|
cpufreq_power_cooling_register(const struct cpumask *clip_cpus, |
|
|
|
|
cpufreq_power_cooling_register(struct cpufreq_policy *policy, |
|
|
|
|
u32 capacitance, get_static_t plat_static_func); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* of_cpufreq_cooling_register - create cpufreq cooling device based on DT. |
|
|
|
|
* @np: a valid struct device_node to the cooling device device tree node. |
|
|
|
|
* @clip_cpus: cpumask of cpus where the frequency constraints will happen |
|
|
|
|
* @policy: cpufreq policy. |
|
|
|
|
*/ |
|
|
|
|
#ifdef CONFIG_THERMAL_OF |
|
|
|
|
struct thermal_cooling_device * |
|
|
|
|
of_cpufreq_cooling_register(struct device_node *np, |
|
|
|
|
const struct cpumask *clip_cpus); |
|
|
|
|
struct cpufreq_policy *policy); |
|
|
|
|
|
|
|
|
|
struct thermal_cooling_device * |
|
|
|
|
of_cpufreq_power_cooling_register(struct device_node *np, |
|
|
|
|
const struct cpumask *clip_cpus, |
|
|
|
|
struct cpufreq_policy *policy, |
|
|
|
|
u32 capacitance, |
|
|
|
|
get_static_t plat_static_func); |
|
|
|
|
#else |
|
|
|
|
static inline struct thermal_cooling_device * |
|
|
|
|
of_cpufreq_cooling_register(struct device_node *np, |
|
|
|
|
const struct cpumask *clip_cpus) |
|
|
|
|
struct cpufreq_policy *policy) |
|
|
|
|
{ |
|
|
|
|
return ERR_PTR(-ENOSYS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline struct thermal_cooling_device * |
|
|
|
|
of_cpufreq_power_cooling_register(struct device_node *np, |
|
|
|
|
const struct cpumask *clip_cpus, |
|
|
|
|
struct cpufreq_policy *policy, |
|
|
|
|
u32 capacitance, |
|
|
|
|
get_static_t plat_static_func) |
|
|
|
|
{ |
|
|
|
@ -82,15 +84,14 @@ of_cpufreq_power_cooling_register(struct device_node *np, |
|
|
|
|
*/ |
|
|
|
|
void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev); |
|
|
|
|
|
|
|
|
|
unsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq); |
|
|
|
|
#else /* !CONFIG_CPU_THERMAL */ |
|
|
|
|
static inline struct thermal_cooling_device * |
|
|
|
|
cpufreq_cooling_register(const struct cpumask *clip_cpus) |
|
|
|
|
cpufreq_cooling_register(struct cpufreq_policy *policy) |
|
|
|
|
{ |
|
|
|
|
return ERR_PTR(-ENOSYS); |
|
|
|
|
} |
|
|
|
|
static inline struct thermal_cooling_device * |
|
|
|
|
cpufreq_power_cooling_register(const struct cpumask *clip_cpus, |
|
|
|
|
cpufreq_power_cooling_register(struct cpufreq_policy *policy, |
|
|
|
|
u32 capacitance, get_static_t plat_static_func) |
|
|
|
|
{ |
|
|
|
|
return NULL; |
|
|
|
@ -98,14 +99,14 @@ cpufreq_power_cooling_register(const struct cpumask *clip_cpus, |
|
|
|
|
|
|
|
|
|
static inline struct thermal_cooling_device * |
|
|
|
|
of_cpufreq_cooling_register(struct device_node *np, |
|
|
|
|
const struct cpumask *clip_cpus) |
|
|
|
|
struct cpufreq_policy *policy) |
|
|
|
|
{ |
|
|
|
|
return ERR_PTR(-ENOSYS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline struct thermal_cooling_device * |
|
|
|
|
of_cpufreq_power_cooling_register(struct device_node *np, |
|
|
|
|
const struct cpumask *clip_cpus, |
|
|
|
|
struct cpufreq_policy *policy, |
|
|
|
|
u32 capacitance, |
|
|
|
|
get_static_t plat_static_func) |
|
|
|
|
{ |
|
|
|
@ -117,11 +118,6 @@ void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) |
|
|
|
|
{ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
static inline |
|
|
|
|
unsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq) |
|
|
|
|
{ |
|
|
|
|
return THERMAL_CSTATE_INVALID; |
|
|
|
|
} |
|
|
|
|
#endif /* CONFIG_CPU_THERMAL */ |
|
|
|
|
|
|
|
|
|
#endif /* __CPU_COOLING_H__ */ |
|
|
|
|