File Index
Files and directories
Sign in
FILE

cpu_cooling.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/cpu_cooling.h C
 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
19struct cpufreq_policy;
20
21#ifdef CONFIG_CPU_FREQ_THERMAL
22/**
23 * cpufreq_cooling_register - function to create cpufreq cooling device.
24 * @policy: cpufreq policy.
25 */
26struct thermal_cooling_device *
27cpufreq_cooling_register(struct cpufreq_policy *policy);
28
29/**
30 * cpufreq_cooling_unregister - function to remove cpufreq cooling device.
31 * @cdev: thermal cooling device pointer.
32 */
33void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev);
34
35/**
36 * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
37 * @policy: cpufreq policy.
38 */
39struct thermal_cooling_device *
40of_cpufreq_cooling_register(struct cpufreq_policy *policy);
41
42#else /* !CONFIG_CPU_FREQ_THERMAL */
43static inline struct thermal_cooling_device *
44cpufreq_cooling_register(struct cpufreq_policy *policy)
45{
46	return ERR_PTR(-ENOSYS);
47}
48
49static inline
50void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
51{
52	return;
53}
54
55static inline struct thermal_cooling_device *
56of_cpufreq_cooling_register(struct cpufreq_policy *policy)
57{
58	return NULL;
59}
60#endif /* CONFIG_CPU_FREQ_THERMAL */
61
62struct cpuidle_driver;
63
64#ifdef CONFIG_CPU_IDLE_THERMAL
65void cpuidle_cooling_register(struct cpuidle_driver *drv);
66#else /* CONFIG_CPU_IDLE_THERMAL */
67static inline void cpuidle_cooling_register(struct cpuidle_driver *drv)
68{
69}
70#endif /* CONFIG_CPU_IDLE_THERMAL */
71
72#endif /* __CPU_COOLING_H__ */
~/ Read-only file preview.