Skip to content

Commit f73cd9c

Browse files
committed
Merge tag 'thermal-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull thermal control updates from Rafael Wysocki: "These extend the thermal trip point crossing notifications sent via netlink to contain the temperature causing the trip point to be crossed, deprecate the user space thermal governor, add new DT bindings to drivers, move ABI documentation to Documentation/ABI, fix assorted issues and clean up code. Specifics: - Constify a variable in thermal MMIO driver (Rikard Falkeborn). - Add the current temperature in the netlink message when crossing a trip point in order to prevent useless back and forth reading from userspace (Daniel Lezcano). - Add support for the 'HC' variant on PM8998 PMIC in order to support VADC channels on recent QCom boards (Bjorn Andersson). - Add support for calibration values from hardware when they are fused (Niklas Söderlund). - Fix NULL pointer dereference in the thermal_release callback when an error occurs in the thermal_zone_device_register() (Yuanzheng Song). - Fix use-after-free in __thermal_cooling_device_register() in the error path (Ziyang Xuan). - Fix compilation of the LMh driver when CONFIG_QCOM_SCM is not set (Jackie Liu). - Add timeout when reading a register that can block forever in certain circumstances in the tsens driver (Ansuel Smith). - Add DT binding for the reset lines and use them in the rockchip sensor driver (Johan Jonker). - Add new uniphier NX1 SoC temperature sensor (Kunihiko Hayashi). - Save and restore the TCC value in the int340x driver (Antoine Tenart). - Deprecate the writability of the cooling device state sysfs file and the user space governor (Daniel Lezcano). - Delete bogus length check in int340x (Dan Carpenter). - Use bitmap_zalloc/bitmap_free when applicable in intel_powerclamp (Christophe JAILLET). - Move thermal ABI documentation to Documentation/ABI (Mauro Carvalho Chehab)" * tag 'thermal-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (21 commits) thermal/core: Deprecate changing cooling device state from userspace thermal/core: Make the userspace governor deprecated thermal/drivers/int340x: Improve the tcc offset saving for suspend/resume thermal/drivers/uniphier: Add compatible string for NX1 SoC dt-bindings: thermal: uniphier: Add binding for NX1 SoC thermal/drivers/rockchip_thermal: Allow more resets for tsadc node dt-bindings: thermal: remove redundant comments from rockchip-thermal.yaml dt-bindings: thermal: allow more resets for tsadc node in rockchip-thermal.yaml thermal/drivers/tsens: Add timeout to get_temp_tsens_valid thermal/drivers/qcom/lmh: make QCOM_LMH depends on QCOM_SCM thermal/core: fix a UAF bug in __thermal_cooling_device_register() thermal/core: Fix null pointer dereference in thermal_release() thermal: rcar_gen3_thermal: Read calibration from hardware thermal: rcar_gen3_thermal: Store thcode and ptat in priv data thermal/drivers/qcom/spmi-adc-tm5: Add support for HC variant dt-bindings: thermal: qcom: add HC variant of adc-thermal monitor bindings thermal: Move ABI documentation to Documentation/ABI thermal/drivers/netlink: Add the temperature when crossing a trip point thermal/drivers/thermal_mmio: Constify static struct thermal_mmio_ops thermal: int340x: delete bogus length check ...
2 parents 833db72 + 46e9f92 commit f73cd9c

25 files changed

+679
-314
lines changed
Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
What: /sys/class/thermal/thermal_zoneX/type
2+
Description:
3+
Strings which represent the thermal zone type.
4+
This is given by thermal zone driver as part of registration.
5+
E.g: "acpitz" indicates it's an ACPI thermal device.
6+
In order to keep it consistent with hwmon sys attribute; this
7+
shouldbe a short, lowercase string, not containing spaces nor
8+
dashes.
9+
10+
RO, Required
11+
12+
What: /sys/class/thermal/thermal_zoneX/temp
13+
Description:
14+
Current temperature as reported by thermal zone (sensor).
15+
16+
Unit: millidegree Celsius
17+
18+
RO, Required
19+
20+
What: /sys/class/thermal/thermal_zoneX/mode
21+
Description:
22+
One of the predefined values in [enabled, disabled].
23+
This file gives information about the algorithm that is
24+
currently managing the thermal zone. It can be either default
25+
kernel based algorithm or user space application.
26+
27+
enabled
28+
enable Kernel Thermal management.
29+
disabled
30+
Preventing kernel thermal zone driver actions upon
31+
trip points so that user application can take full
32+
charge of the thermal management.
33+
34+
RW, Optional
35+
36+
What: /sys/class/thermal/thermal_zoneX/policy
37+
Description:
38+
One of the various thermal governors used for a particular zone.
39+
40+
RW, Required
41+
42+
What: /sys/class/thermal/thermal_zoneX/available_policies
43+
Description:
44+
Available thermal governors which can be used for a
45+
particular zone.
46+
47+
RO, Required
48+
49+
What: /sys/class/thermal/thermal_zoneX/trip_point_Y_temp
50+
Description:
51+
The temperature above which trip point will be fired.
52+
53+
Unit: millidegree Celsius
54+
55+
RO, Optional
56+
57+
What: /sys/class/thermal/thermal_zoneX/trip_point_Y_type
58+
Description:
59+
Strings which indicate the type of the trip point.
60+
61+
E.g. it can be one of critical, hot, passive, `active[0-*]`
62+
for ACPI thermal zone.
63+
64+
RO, Optional
65+
66+
What: /sys/class/thermal/thermal_zoneX/trip_point_Y_hyst
67+
Description:
68+
The hysteresis value for a trip point, represented as an
69+
integer.
70+
71+
Unit: Celsius
72+
73+
RW, Optional
74+
75+
What: /sys/class/thermal/thermal_zoneX/cdevY
76+
Description:
77+
Sysfs link to the thermal cooling device node where the sys I/F
78+
for cooling device throttling control represents.
79+
80+
RO, Optional
81+
82+
What: /sys/class/thermal/thermal_zoneX/cdevY_trip_point
83+
Description:
84+
The trip point in this thermal zone which `cdev[0-*]` is
85+
associated with; -1 means the cooling device is not
86+
associated with any trip point.
87+
88+
RO, Optional
89+
90+
What: /sys/class/thermal/thermal_zoneX/cdevY_weight
91+
Description:
92+
The influence of `cdev[0-*]` in this thermal zone. This value
93+
is relative to the rest of cooling devices in the thermal
94+
zone. For example, if a cooling device has a weight double
95+
than that of other, it's twice as effective in cooling the
96+
thermal zone.
97+
98+
RW, Optional
99+
100+
What: /sys/class/thermal/thermal_zoneX/emul_temp
101+
Description:
102+
Interface to set the emulated temperature method in thermal zone
103+
(sensor). After setting this temperature, the thermal zone may
104+
pass this temperature to platform emulation function if
105+
registered or cache it locally. This is useful in debugging
106+
different temperature threshold and its associated cooling
107+
action. This is write only node and writing 0 on this node
108+
should disable emulation.
109+
110+
Unit: millidegree Celsius
111+
112+
WO, Optional
113+
114+
WARNING:
115+
Be careful while enabling this option on production systems,
116+
because userland can easily disable the thermal policy by simply
117+
flooding this sysfs node with low temperature values.
118+
119+
120+
What: /sys/class/thermal/thermal_zoneX/k_d
121+
Description:
122+
The derivative term of the power allocator governor's PID
123+
controller. For more information see
124+
Documentation/driver-api/thermal/power_allocator.rst
125+
126+
RW, Optional
127+
128+
What: /sys/class/thermal/thermal_zoneX/k_i
129+
Description:
130+
The integral term of the power allocator governor's PID
131+
controller. This term allows the PID controller to compensate
132+
for long term drift. For more information see
133+
Documentation/driver-api/thermal/power_allocator.rst
134+
135+
RW, Optional
136+
137+
What: /sys/class/thermal/thermal_zoneX/k_po
138+
Description:
139+
The proportional term of the power allocator governor's PID
140+
controller during temperature overshoot. Temperature overshoot
141+
is when the current temperature is above the "desired
142+
temperature" trip point. For more information see
143+
Documentation/driver-api/thermal/power_allocator.rst
144+
145+
RW, Optional
146+
147+
What: /sys/class/thermal/thermal_zoneX/k_pu
148+
Description:
149+
The proportional term of the power allocator governor's PID
150+
controller during temperature undershoot. Temperature undershoot
151+
is when the current temperature is below the "desired
152+
temperature" trip point. For more information see
153+
Documentation/driver-api/thermal/power_allocator.rst
154+
155+
RW, Optional
156+
157+
What: /sys/class/thermal/thermal_zoneX/integral_cutoff
158+
Description:
159+
Temperature offset from the desired temperature trip point
160+
above which the integral term of the power allocator
161+
governor's PID controller starts accumulating errors. For
162+
example, if integral_cutoff is 0, then the integral term only
163+
accumulates error when temperature is above the desired
164+
temperature trip point. For more information see
165+
Documentation/driver-api/thermal/power_allocator.rst
166+
167+
Unit: millidegree Celsius
168+
169+
RW, Optional
170+
171+
What: /sys/class/thermal/thermal_zoneX/slope
172+
Description:
173+
The slope constant used in a linear extrapolation model
174+
to determine a hotspot temperature based off the sensor's
175+
raw readings. It is up to the device driver to determine
176+
the usage of these values.
177+
178+
RW, Optional
179+
180+
What: /sys/class/thermal/thermal_zoneX/offset
181+
Description:
182+
The offset constant used in a linear extrapolation model
183+
to determine a hotspot temperature based off the sensor's
184+
raw readings. It is up to the device driver to determine
185+
the usage of these values.
186+
187+
RW, Optional
188+
189+
What: /sys/class/thermal/thermal_zoneX/sustainable_power
190+
Description:
191+
An estimate of the sustained power that can be dissipated by
192+
the thermal zone. Used by the power allocator governor. For
193+
more information see
194+
Documentation/driver-api/thermal/power_allocator.rst
195+
196+
Unit: milliwatts
197+
198+
RW, Optional
199+
200+
What: /sys/class/thermal/cooling_deviceX/type
201+
Description:
202+
String which represents the type of device, e.g:
203+
204+
- for generic ACPI: should be "Fan", "Processor" or "LCD"
205+
- for memory controller device on intel_menlow platform:
206+
should be "Memory controller".
207+
208+
RO, Required
209+
210+
What: /sys/class/thermal/cooling_deviceX/max_state
211+
Description:
212+
The maximum permissible cooling state of this cooling device.
213+
214+
RO, Required
215+
216+
What: /sys/class/thermal/cooling_deviceX/cur_state
217+
Description:
218+
The current cooling state of this cooling device.
219+
The value can any integer numbers between 0 and max_state:
220+
221+
- cur_state == 0 means no cooling
222+
- cur_state == max_state means the maximum cooling.
223+
224+
RW, Required
225+
226+
What: /sys/class/thermal/cooling_deviceX/stats/reset
227+
Description:
228+
Writing any value resets the cooling device's statistics.
229+
230+
WO, Required
231+
232+
What: /sys/class/thermal/cooling_deviceX/stats/time_in_state_ms:
233+
Description:
234+
The amount of time spent by the cooling device in various
235+
cooling states. The output will have "<state> <time>" pair
236+
in each line, which will mean this cooling device spent <time>
237+
msec of time at <state>.
238+
239+
Output will have one line for each of the supported states.
240+
241+
RO, Required
242+
243+
What: /sys/class/thermal/cooling_deviceX/stats/total_trans
244+
Description:
245+
A single positive value showing the total number of times
246+
the state of a cooling device is changed.
247+
248+
RO, Required
249+
250+
What: /sys/class/thermal/cooling_deviceX/stats/trans_table
251+
Description:
252+
This gives fine grained information about all the cooling state
253+
transitions. The cat output here is a two dimensional matrix,
254+
where an entry <i,j> (row i, column j) represents the number
255+
of transitions from State_i to State_j. If the transition
256+
table is bigger than PAGE_SIZE, reading this will return
257+
an -EFBIG error.
258+
259+
RO, Required

0 commit comments

Comments
 (0)