1 #ifndef __NVBIOS_THERM_H__
2 #define __NVBIOS_THERM_H__
3 struct nvbios_therm_threshold {
8 struct nvbios_therm_sensor {
17 struct nvbios_therm_threshold thrs_fan_boost;
18 struct nvbios_therm_threshold thrs_down_clock;
19 struct nvbios_therm_threshold thrs_critical;
20 struct nvbios_therm_threshold thrs_shutdown;
23 enum nvbios_therm_fan_type {
24 NVBIOS_THERM_FAN_UNK = 0,
25 NVBIOS_THERM_FAN_TOGGLE = 1,
26 NVBIOS_THERM_FAN_PWM = 2,
29 /* no vbios have more than 6 */
30 #define NVKM_TEMP_FAN_TRIP_MAX 10
31 struct nvbios_therm_trip_point {
37 enum nvbios_therm_fan_mode {
38 NVBIOS_THERM_FAN_TRIP = 0,
39 NVBIOS_THERM_FAN_LINEAR = 1,
40 NVBIOS_THERM_FAN_OTHER = 2,
43 struct nvbios_therm_fan {
44 enum nvbios_therm_fan_type type;
54 enum nvbios_therm_fan_mode fan_mode;
55 struct nvbios_therm_trip_point trip[NVKM_TEMP_FAN_TRIP_MAX];
61 enum nvbios_therm_domain {
62 NVBIOS_THERM_DOMAIN_CORE,
63 NVBIOS_THERM_DOMAIN_AMBIENT,
67 nvbios_therm_sensor_parse(struct nvkm_bios *, enum nvbios_therm_domain,
68 struct nvbios_therm_sensor *);
71 nvbios_therm_fan_parse(struct nvkm_bios *, struct nvbios_therm_fan *);