127 lines · 3.9 KB · C
RawDownload
/* *  linux/include/linux/cpu_cooling.h * *  Copyright (C) 2012	Samsung Electronics Co., Ltd(http://www.samsung.com) *  Copyright (C) 2012  Amit Daniel <amit.kachhap@linaro.org> * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; version 2 of the License. * *  This program is distributed in the hope that it will be useful, but *  WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *  General Public License for more details. * *  You should have received a copy of the GNU General Public License along *  with this program; if not, write to the Free Software Foundation, Inc., *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ #ifndef __CPU_COOLING_H__#define __CPU_COOLING_H__ #include <linux/of.h>#include <linux/thermal.h>#include <linux/cpumask.h> 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 */struct thermal_cooling_device *cpufreq_cooling_register(const struct cpumask *clip_cpus); struct thermal_cooling_device *cpufreq_power_cooling_register(const struct cpumask *clip_cpus,			       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 */#ifdef CONFIG_THERMAL_OFstruct thermal_cooling_device *of_cpufreq_cooling_register(struct device_node *np,			    const struct cpumask *clip_cpus); struct thermal_cooling_device *of_cpufreq_power_cooling_register(struct device_node *np,				  const struct cpumask *clip_cpus,				  u32 capacitance,				  get_static_t plat_static_func);#elsestatic inline struct thermal_cooling_device *of_cpufreq_cooling_register(struct device_node *np,			    const struct cpumask *clip_cpus){	return ERR_PTR(-ENOSYS);} static inline struct thermal_cooling_device *of_cpufreq_power_cooling_register(struct device_node *np,				  const struct cpumask *clip_cpus,				  u32 capacitance,				  get_static_t plat_static_func){	return NULL;}#endif /** * cpufreq_cooling_unregister - function to remove cpufreq cooling device. * @cdev: thermal cooling device pointer. */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){	return ERR_PTR(-ENOSYS);}static inline struct thermal_cooling_device *cpufreq_power_cooling_register(const struct cpumask *clip_cpus,			       u32 capacitance, get_static_t plat_static_func){	return NULL;} static inline struct thermal_cooling_device *of_cpufreq_cooling_register(struct device_node *np,			    const struct cpumask *clip_cpus){	return ERR_PTR(-ENOSYS);} static inline struct thermal_cooling_device *of_cpufreq_power_cooling_register(struct device_node *np,				  const struct cpumask *clip_cpus,				  u32 capacitance,				  get_static_t plat_static_func){	return NULL;} static inlinevoid cpufreq_cooling_unregister(struct thermal_cooling_device *cdev){	return;}static inlineunsigned long cpufreq_cooling_get_level(unsigned int cpu, unsigned int freq){	return THERMAL_CSTATE_INVALID;}#endif	/* CONFIG_CPU_THERMAL */ #endif /* __CPU_COOLING_H__ */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t