Lines Matching +full:cooling +full:- +full:device
1 // SPDX-License-Identifier: GPL-2.0
8 #define pr_fmt(fmt) "cpuidle cooling: " fmt
20 * struct cpuidle_cooling_device - data for the idle cooling device
22 * @state: a normalized integer giving the state of the cooling device
32 * cpuidle_cooling_runtime - Running time computation
44 * running = idle x ((100 / ratio) - 1)
48 * running = (idle x 100) / ratio - idle
61 return ((idle_duration_us * 100) / state) - idle_duration_us; in cpuidle_cooling_runtime()
65 * cpuidle_cooling_get_max_state - Get the maximum state
66 * @cdev : the thermal cooling device
94 * cpuidle_cooling_get_cur_state - Get the current cooling state
95 * @cdev: the thermal cooling device
99 * cooling device structure, the mapping is 1 <-> 1.
106 struct cpuidle_cooling_device *idle_cdev = cdev->devdata; in cpuidle_cooling_get_cur_state()
108 *state = idle_cdev->state; in cpuidle_cooling_get_cur_state()
114 * cpuidle_cooling_set_cur_state - Set the current cooling state
115 * @cdev: the thermal cooling device
120 * cooling device. In any case, it updates the internal state for the
121 * cooling device.
128 struct cpuidle_cooling_device *idle_cdev = cdev->devdata; in cpuidle_cooling_set_cur_state()
129 struct idle_inject_device *ii_dev = idle_cdev->ii_dev; in cpuidle_cooling_set_cur_state()
130 unsigned long current_state = idle_cdev->state; in cpuidle_cooling_set_cur_state()
133 idle_cdev->state = state; in cpuidle_cooling_set_cur_state()
151 * cpuidle_cooling_ops - thermal cooling device ops
160 * __cpuidle_cooling_register: register the cooling device
162 * @np: a device node structure pointer used for the thermal binding
164 * This function is in charge of allocating the cpuidle cooling device
166 * cooling device to the thermal framework.
184 ret = -ENOMEM; in __cpuidle_cooling_register()
194 ii_dev = idle_inject_register(drv->cpumask); in __cpuidle_cooling_register()
196 ret = -EINVAL; in __cpuidle_cooling_register()
200 of_property_read_u32(np, "duration-us", &idle_duration_us); in __cpuidle_cooling_register()
201 of_property_read_u32(np, "exit-latency-us", &latency_us); in __cpuidle_cooling_register()
206 idle_cdev->ii_dev = ii_dev; in __cpuidle_cooling_register()
208 snprintf(dev_name, sizeof(dev_name), "thermal-idle-%d", id); in __cpuidle_cooling_register()
233 * cpuidle_cooling_register - Idle cooling device initialization function
236 * This function is in charge of creating a cooling device per cpuidle
248 for_each_cpu(cpu, drv->cpumask) { in cpuidle_cooling_register()
252 cooling_node = of_get_child_by_name(cpu_node, "thermal-idle"); in cpuidle_cooling_register()
257 pr_debug("'thermal-idle' node not found for cpu%d\n", cpu); in cpuidle_cooling_register()
266 pr_err("Failed to register the cpuidle cooling device" \ in cpuidle_cooling_register()