diff options
author | Javi Merino <javi.merino@arm.com> | 2014-06-25 06:00:12 -0400 |
---|---|---|
committer | Zhang Rui <rui.zhang@intel.com> | 2014-07-21 22:12:05 -0400 |
commit | c708a98f01068fe07f77448031f9f5317423e777 (patch) | |
tree | ffe514ade427b1f746556753bc80d005cbbb9df3 /include/linux/thermal.h | |
parent | 9746b6e726c82f7beb902596aad263b1539e8f5a (diff) |
thermal: document struct thermal_zone_device and thermal_governor
Document struct thermal_zone_device and struct thermal_governor fields
and their use by the thermal framework code.
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Diffstat (limited to 'include/linux/thermal.h')
-rw-r--r-- | include/linux/thermal.h | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index f7e11c7ea7d9..0305cde21a74 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
@@ -158,6 +158,42 @@ struct thermal_attr { | |||
158 | char name[THERMAL_NAME_LENGTH]; | 158 | char name[THERMAL_NAME_LENGTH]; |
159 | }; | 159 | }; |
160 | 160 | ||
161 | /** | ||
162 | * struct thermal_zone_device - structure for a thermal zone | ||
163 | * @id: unique id number for each thermal zone | ||
164 | * @type: the thermal zone device type | ||
165 | * @device: &struct device for this thermal zone | ||
166 | * @trip_temp_attrs: attributes for trip points for sysfs: trip temperature | ||
167 | * @trip_type_attrs: attributes for trip points for sysfs: trip type | ||
168 | * @trip_hyst_attrs: attributes for trip points for sysfs: trip hysteresis | ||
169 | * @devdata: private pointer for device private data | ||
170 | * @trips: number of trip points the thermal zone supports | ||
171 | * @passive_delay: number of milliseconds to wait between polls when | ||
172 | * performing passive cooling. Currenty only used by the | ||
173 | * step-wise governor | ||
174 | * @polling_delay: number of milliseconds to wait between polls when | ||
175 | * checking whether trip points have been crossed (0 for | ||
176 | * interrupt driven systems) | ||
177 | * @temperature: current temperature. This is only for core code, | ||
178 | * drivers should use thermal_zone_get_temp() to get the | ||
179 | * current temperature | ||
180 | * @last_temperature: previous temperature read | ||
181 | * @emul_temperature: emulated temperature when using CONFIG_THERMAL_EMULATION | ||
182 | * @passive: 1 if you've crossed a passive trip point, 0 otherwise. | ||
183 | * Currenty only used by the step-wise governor. | ||
184 | * @forced_passive: If > 0, temperature at which to switch on all ACPI | ||
185 | * processor cooling devices. Currently only used by the | ||
186 | * step-wise governor. | ||
187 | * @ops: operations this &thermal_zone_device supports | ||
188 | * @tzp: thermal zone parameters | ||
189 | * @governor: pointer to the governor for this thermal zone | ||
190 | * @thermal_instances: list of &struct thermal_instance of this thermal zone | ||
191 | * @idr: &struct idr to generate unique id for this zone's cooling | ||
192 | * devices | ||
193 | * @lock: lock to protect thermal_instances list | ||
194 | * @node: node in thermal_tz_list (in thermal_core.c) | ||
195 | * @poll_queue: delayed work for polling | ||
196 | */ | ||
161 | struct thermal_zone_device { | 197 | struct thermal_zone_device { |
162 | int id; | 198 | int id; |
163 | char type[THERMAL_NAME_LENGTH]; | 199 | char type[THERMAL_NAME_LENGTH]; |
@@ -179,12 +215,18 @@ struct thermal_zone_device { | |||
179 | struct thermal_governor *governor; | 215 | struct thermal_governor *governor; |
180 | struct list_head thermal_instances; | 216 | struct list_head thermal_instances; |
181 | struct idr idr; | 217 | struct idr idr; |
182 | struct mutex lock; /* protect thermal_instances list */ | 218 | struct mutex lock; |
183 | struct list_head node; | 219 | struct list_head node; |
184 | struct delayed_work poll_queue; | 220 | struct delayed_work poll_queue; |
185 | }; | 221 | }; |
186 | 222 | ||
187 | /* Structure that holds thermal governor information */ | 223 | /** |
224 | * struct thermal_governor - structure that holds thermal governor information | ||
225 | * @name: name of the governor | ||
226 | * @throttle: callback called for every trip point even if temperature is | ||
227 | * below the trip point temperature | ||
228 | * @governor_list: node in thermal_governor_list (in thermal_core.c) | ||
229 | */ | ||
188 | struct thermal_governor { | 230 | struct thermal_governor { |
189 | char name[THERMAL_NAME_LENGTH]; | 231 | char name[THERMAL_NAME_LENGTH]; |
190 | int (*throttle)(struct thermal_zone_device *tz, int trip); | 232 | int (*throttle)(struct thermal_zone_device *tz, int trip); |