Lines Matching refs:therm

32 nvkm_therm_temp_set_defaults(struct nvkm_therm *therm)
34 therm->bios_sensor.offset_constant = 0;
36 therm->bios_sensor.thrs_fan_boost.temp = 90;
37 therm->bios_sensor.thrs_fan_boost.hysteresis = 3;
39 therm->bios_sensor.thrs_down_clock.temp = 95;
40 therm->bios_sensor.thrs_down_clock.hysteresis = 3;
42 therm->bios_sensor.thrs_critical.temp = 105;
43 therm->bios_sensor.thrs_critical.hysteresis = 5;
45 therm->bios_sensor.thrs_shutdown.temp = 135;
46 therm->bios_sensor.thrs_shutdown.hysteresis = 5; /*not that it matters */
50 nvkm_therm_temp_safety_checks(struct nvkm_therm *therm)
52 struct nvbios_therm_sensor *s = &therm->bios_sensor;
63 nvkm_therm_sensor_set_threshold_state(struct nvkm_therm *therm,
67 therm->sensor.alarm_state[thrs] = st;
72 nvkm_therm_sensor_get_threshold_state(struct nvkm_therm *therm,
75 return therm->sensor.alarm_state[thrs];
86 nvkm_therm_sensor_event(struct nvkm_therm *therm, enum nvkm_therm_thrs thrs,
89 struct nvkm_subdev *subdev = &therm->subdev;
94 int temperature = therm->func->temp_get(therm);
111 nvkm_therm_fan_set(therm, true, 100);
112 nvkm_therm_fan_mode(therm, NVKM_THERM_CTRL_AUTO);
116 if (therm->emergency.downclock)
117 therm->emergency.downclock(therm, active);
120 if (therm->emergency.pause)
121 therm->emergency.pause(therm, active);
142 nvkm_therm_threshold_hyst_polling(struct nvkm_therm *therm,
148 int temp = therm->func->temp_get(therm);
150 prev_state = nvkm_therm_sensor_get_threshold_state(therm, thrs_name);
162 nvkm_therm_sensor_set_threshold_state(therm, thrs_name, new_state);
163 nvkm_therm_sensor_event(therm, thrs_name, direction);
169 struct nvkm_therm *therm =
171 struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
172 struct nvkm_timer *tmr = therm->subdev.device->timer;
175 spin_lock_irqsave(&therm->sensor.alarm_program_lock, flags);
177 nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_fan_boost,
180 nvkm_therm_threshold_hyst_polling(therm,
184 nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_critical,
187 nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_shutdown,
190 spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags);
193 if (therm->func->temp_get(therm) >= 0)
198 nvkm_therm_program_alarms_polling(struct nvkm_therm *therm)
200 struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
202 nvkm_debug(&therm->subdev,
213 alarm_timer_callback(&therm->sensor.therm_poll_alarm);
217 nvkm_therm_sensor_init(struct nvkm_therm *therm)
219 therm->func->program_alarms(therm);
224 nvkm_therm_sensor_fini(struct nvkm_therm *therm, bool suspend)
226 struct nvkm_timer *tmr = therm->subdev.device->timer;
228 nvkm_timer_alarm(tmr, 0, &therm->sensor.therm_poll_alarm);
233 nvkm_therm_sensor_preinit(struct nvkm_therm *therm)
237 if (therm->func->temp_get(therm) < 0)
240 nvkm_debug(&therm->subdev, "internal sensor: %s\n", sensor_avail);
244 nvkm_therm_sensor_ctor(struct nvkm_therm *therm)
246 struct nvkm_subdev *subdev = &therm->subdev;
249 nvkm_alarm_init(&therm->sensor.therm_poll_alarm, alarm_timer_callback);
251 nvkm_therm_temp_set_defaults(therm);
253 &therm->bios_sensor))
255 nvkm_therm_temp_safety_checks(therm);