]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blob - include/linux/cpu_cooling.h
Merge tag '5.2-rc6-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6
[mirror_ubuntu-eoan-kernel.git] / include / linux / cpu_cooling.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * linux/include/linux/cpu_cooling.h
4 *
5 * Copyright (C) 2012 Samsung Electronics Co., Ltd(http://www.samsung.com)
6 * Copyright (C) 2012 Amit Daniel <amit.kachhap@linaro.org>
7 *
8 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 *
10 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 */
12
13 #ifndef __CPU_COOLING_H__
14 #define __CPU_COOLING_H__
15
16 #include <linux/of.h>
17 #include <linux/thermal.h>
18 #include <linux/cpumask.h>
19
20 struct cpufreq_policy;
21
22 #ifdef CONFIG_CPU_THERMAL
23 /**
24 * cpufreq_cooling_register - function to create cpufreq cooling device.
25 * @policy: cpufreq policy.
26 */
27 struct thermal_cooling_device *
28 cpufreq_cooling_register(struct cpufreq_policy *policy);
29
30 /**
31 * cpufreq_cooling_unregister - function to remove cpufreq cooling device.
32 * @cdev: thermal cooling device pointer.
33 */
34 void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev);
35
36 #else /* !CONFIG_CPU_THERMAL */
37 static inline struct thermal_cooling_device *
38 cpufreq_cooling_register(struct cpufreq_policy *policy)
39 {
40 return ERR_PTR(-ENOSYS);
41 }
42
43 static inline
44 void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
45 {
46 return;
47 }
48 #endif /* CONFIG_CPU_THERMAL */
49
50 #if defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL)
51 /**
52 * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
53 * @policy: cpufreq policy.
54 */
55 struct thermal_cooling_device *
56 of_cpufreq_cooling_register(struct cpufreq_policy *policy);
57 #else
58 static inline struct thermal_cooling_device *
59 of_cpufreq_cooling_register(struct cpufreq_policy *policy)
60 {
61 return NULL;
62 }
63 #endif /* defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL) */
64
65 #endif /* __CPU_COOLING_H__ */