Symbol: therm
drivers/char/ds1620.c
200
static void ds1620_write_state(struct therm *therm)
drivers/char/ds1620.c
203
ds1620_out(THERM_WRITE_TL, 9, therm->lo);
drivers/char/ds1620.c
204
ds1620_out(THERM_WRITE_TH, 9, therm->hi);
drivers/char/ds1620.c
208
static void ds1620_read_state(struct therm *therm)
drivers/char/ds1620.c
210
therm->lo = cvt_9_to_int(ds1620_in(THERM_READ_TL, 9));
drivers/char/ds1620.c
211
therm->hi = cvt_9_to_int(ds1620_in(THERM_READ_TH, 9));
drivers/char/ds1620.c
239
struct therm therm;
drivers/char/ds1620.c
241
struct therm __user *therm;
drivers/char/ds1620.c
255
if (get_user(therm.hi, uarg.i))
drivers/char/ds1620.c
257
therm.lo = therm.hi - 3;
drivers/char/ds1620.c
259
if (copy_from_user(&therm, uarg.therm, sizeof(therm)))
drivers/char/ds1620.c
263
therm.lo <<= 1;
drivers/char/ds1620.c
264
therm.hi <<= 1;
drivers/char/ds1620.c
266
ds1620_write_state(&therm);
drivers/char/ds1620.c
271
ds1620_read_state(&therm);
drivers/char/ds1620.c
273
therm.lo >>= 1;
drivers/char/ds1620.c
274
therm.hi >>= 1;
drivers/char/ds1620.c
277
if (put_user(therm.hi, uarg.i))
drivers/char/ds1620.c
280
if (copy_to_user(uarg.therm, &therm, sizeof(therm)))
drivers/char/ds1620.c
336
struct therm th;
drivers/char/ds1620.c
367
struct therm th, th_start;
drivers/gpu/drm/nouveau/include/nvkm/core/layout.h
27
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_THERM , struct nvkm_therm , therm)
drivers/gpu/drm/nouveau/nouveau_drv.h
401
#define nvxx_therm(a) nvxx_device(a)->therm
drivers/gpu/drm/nouveau/nouveau_hwmon.c
100
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
106
therm->attr_set(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST_HYST,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
121
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
124
ret = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MAX_DUTY);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
137
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
140
ret = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MIN_DUTY);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
153
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
160
ret = therm->attr_set(therm, NVKM_THERM_ATTR_FAN_MIN_DUTY, value);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
176
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
183
ret = therm->attr_set(therm, NVKM_THERM_ATTR_FAN_MAX_DUTY, value);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
275
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
277
if (!therm || !therm->attr_get || nvkm_therm_temp_get(therm) < 0)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
299
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
301
if (!therm || !therm->attr_get || !therm->fan_get ||
drivers/gpu/drm/nouveau/nouveau_hwmon.c
302
therm->fan_get(therm) < 0)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
338
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
340
if (!therm || !therm->attr_get || nvkm_therm_fan_sense(therm) < 0)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
370
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
373
if (!therm || !therm->attr_get)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
380
ret = nvkm_therm_temp_get(therm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
384
*val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
388
*val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK_HYST)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
392
*val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_CRITICAL)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
396
*val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_CRITICAL_HYST)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
400
*val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
404
*val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN_HYST)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
419
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
421
if (!therm)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
428
*val = nvkm_therm_fan_sense(therm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
473
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
475
if (!therm || !therm->attr_get || !therm->fan_get)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
480
*val = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MODE);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
485
*val = therm->fan_get(therm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
528
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
530
if (!therm || !therm->attr_set)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
535
return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
538
return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK_HYST,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
541
return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_CRITICAL,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
544
return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_CRITICAL_HYST,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
547
return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
55
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
550
return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN_HYST,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
562
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
564
if (!therm || !therm->attr_set)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
569
return therm->fan_set(therm, val);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
571
return therm->attr_set(therm, NVKM_THERM_ATTR_FAN_MODE, val);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
58
therm->attr_get(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST) * 1000);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
668
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
67
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
676
if (!iccsense && !therm && !volt) {
drivers/gpu/drm/nouveau/nouveau_hwmon.c
686
if (therm && therm->attr_get && therm->attr_set) {
drivers/gpu/drm/nouveau/nouveau_hwmon.c
687
if (nvkm_therm_temp_get(therm) >= 0)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
689
if (therm->fan_get && therm->fan_get(therm) >= 0)
drivers/gpu/drm/nouveau/nouveau_hwmon.c
73
therm->attr_set(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST,
drivers/gpu/drm/nouveau/nouveau_hwmon.c
88
struct nvkm_therm *therm = nvxx_therm(drm);
drivers/gpu/drm/nouveau/nouveau_hwmon.c
91
therm->attr_get(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST_HYST) * 1000);
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1020
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1051
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1082
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1114
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1147
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1179
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1210
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1241
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1273
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1308
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1343
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1378
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1413
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1448
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1483
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1518
.therm = { 0x00000001, gt215_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1552
.therm = { 0x00000001, gf119_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1587
.therm = { 0x00000001, gf119_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1622
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1658
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1694
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1754
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1790
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1826
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1862
.therm = { 0x00000001, gk104_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1898
.therm = { 0x00000001, gm107_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1933
.therm = { 0x00000001, gm107_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
1966
.therm = { 0x00000001, gm200_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2001
.therm = { 0x00000001, gm200_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2036
.therm = { 0x00000001, gm200_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2092
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2125
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2159
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2193
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2227
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2261
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2323
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2358
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2393
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2428
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2463
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2498
.therm = { 0x00000001, gp100_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
2969
nvkm_therm_clkgate_fini(device->therm, suspend);
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
3067
nvkm_therm_clkgate_enable(device->therm);
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
465
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
490
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
515
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
540
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
565
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
590
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
615
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
640
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
665
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
690
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
715
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
740
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
765
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
793
.therm = { 0x00000001, nv50_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
818
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
843
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
868
.therm = { 0x00000001, nv40_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
896
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
927
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
958
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
989
.therm = { 0x00000001, g84_therm_new },
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
2370
nvkm_therm_clkgate_init(device->therm, gr->func->clkgate_pack);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
32
u32 therm = 0;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
36
therm = nvbios_rd32(bios, bit_P.offset + 12);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
38
therm = nvbios_rd32(bios, bit_P.offset + 16);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
46
if (!therm)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
49
*ver = nvbios_rd08(bios, therm + 0);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
50
*hdr = nvbios_rd08(bios, therm + 1);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
51
*len = nvbios_rd08(bios, therm + 2);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
52
*cnt = nvbios_rd08(bios, therm + 3);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
53
return therm + nvbios_rd08(bios, therm + 1);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
60
u32 therm = therm_table(bios, ver, &hdr, len, &cnt);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
61
if (therm && idx < cnt)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
62
return therm + idx * *len;
drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c
57
struct nvkm_therm *therm = device->therm;
drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c
58
if (therm)
drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c
59
nvkm_subdev_intr(&therm->subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c
72
struct nvkm_therm *therm = device->therm;
drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c
73
if (therm)
drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c
74
nvkm_subdev_intr(&therm->subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
164
struct nvkm_therm *therm = device->therm;
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
178
if (therm) {
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
179
ret = nvkm_therm_cstate(therm, pstate->fanspeed, +1);
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
208
if (therm) {
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
209
ret = nvkm_therm_cstate(therm, pstate->fanspeed, -1);
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c
96
nvkm_therm_clkgate_init(device->therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
101
u8 max = therm->bios_sensor.thrs_fan_boost.temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
102
return nvkm_therm_compute_linear_duty(therm, 30, max);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
106
nvkm_therm_update(struct nvkm_therm *therm, int mode)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
108
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
115
spin_lock_irqsave(&therm->lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
117
mode = therm->mode;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
118
therm->mode = mode;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
122
nvkm_timer_alarm(tmr, 0, &therm->alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
123
duty = nvkm_therm_fan_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
129
switch(therm->fan->bios.fan_mode) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
131
duty = nvkm_therm_update_trip(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
134
duty = nvkm_therm_update_linear(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
137
if (therm->cstate) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
138
duty = therm->cstate;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
141
duty = nvkm_therm_update_linear_fallback(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
149
nvkm_timer_alarm(tmr, 0, &therm->alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
154
nvkm_timer_alarm(tmr, 1000000000ULL, &therm->alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
155
spin_unlock_irqrestore(&therm->lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
159
nvkm_therm_fan_set(therm, immd, duty);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
164
nvkm_therm_cstate(struct nvkm_therm *therm, int fan, int dir)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
166
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
167
if (!dir || (dir < 0 && fan < therm->cstate) ||
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
168
(dir > 0 && fan > therm->cstate)) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
170
therm->cstate = fan;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
171
nvkm_therm_update(therm, -1);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
179
struct nvkm_therm *therm =
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
181
nvkm_therm_update(therm, -1);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
185
nvkm_therm_fan_mode(struct nvkm_therm *therm, int mode)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
187
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
203
therm->func->temp_get(therm) < 0)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
206
if (therm->mode == mode)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
210
nvkm_therm_update(therm, mode);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
215
nvkm_therm_attr_get(struct nvkm_therm *therm, enum nvkm_therm_attr_type type)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
219
return therm->fan->bios.min_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
221
return therm->fan->bios.max_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
223
return therm->mode;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
225
return therm->bios_sensor.thrs_fan_boost.temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
227
return therm->bios_sensor.thrs_fan_boost.hysteresis;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
229
return therm->bios_sensor.thrs_down_clock.temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
231
return therm->bios_sensor.thrs_down_clock.hysteresis;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
233
return therm->bios_sensor.thrs_critical.temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
235
return therm->bios_sensor.thrs_critical.hysteresis;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
237
return therm->bios_sensor.thrs_shutdown.temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
239
return therm->bios_sensor.thrs_shutdown.hysteresis;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
246
nvkm_therm_attr_set(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
253
if (value > therm->fan->bios.max_duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
254
value = therm->fan->bios.max_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
255
therm->fan->bios.min_duty = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
260
if (value < therm->fan->bios.min_duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
261
value = therm->fan->bios.min_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
262
therm->fan->bios.max_duty = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
265
return nvkm_therm_fan_mode(therm, value);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
267
therm->bios_sensor.thrs_fan_boost.temp = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
268
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
271
therm->bios_sensor.thrs_fan_boost.hysteresis = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
272
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
275
therm->bios_sensor.thrs_down_clock.temp = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
276
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
279
therm->bios_sensor.thrs_down_clock.hysteresis = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
280
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
283
therm->bios_sensor.thrs_critical.temp = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
284
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
287
therm->bios_sensor.thrs_critical.hysteresis = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
288
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
291
therm->bios_sensor.thrs_shutdown.temp = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
292
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
295
therm->bios_sensor.thrs_shutdown.hysteresis = value;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
296
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
30
nvkm_therm_temp_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
304
nvkm_therm_clkgate_enable(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
306
if (!therm || !therm->func->clkgate_enable || !therm->clkgating_enabled)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
309
nvkm_debug(&therm->subdev,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
311
therm->func->clkgate_enable(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
315
nvkm_therm_clkgate_fini(struct nvkm_therm *therm, bool suspend)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
317
if (!therm || !therm->func->clkgate_fini || !therm->clkgating_enabled)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
32
if (therm->func->temp_get)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
320
nvkm_debug(&therm->subdev,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
323
therm->func->clkgate_fini(therm, suspend);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
327
nvkm_therm_clkgate_oneinit(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
329
if (!therm->func->clkgate_enable || !therm->clkgating_enabled)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
33
return therm->func->temp_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
332
nvkm_info(&therm->subdev, "Clockgating enabled\n");
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
338
struct nvkm_therm *therm = nvkm_therm(subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
339
if (therm->func->intr)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
340
therm->func->intr(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
346
struct nvkm_therm *therm = nvkm_therm(subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
348
if (therm->func->fini)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
349
therm->func->fini(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
351
nvkm_therm_fan_fini(therm, suspend != NVKM_POWEROFF);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
352
nvkm_therm_sensor_fini(therm, suspend != NVKM_POWEROFF);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
355
therm->suspend = therm->mode;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
356
therm->mode = NVKM_THERM_CTRL_NONE;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
365
struct nvkm_therm *therm = nvkm_therm(subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
366
nvkm_therm_sensor_ctor(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
367
nvkm_therm_ic_ctor(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
368
nvkm_therm_fan_ctor(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
369
nvkm_therm_fan_mode(therm, NVKM_THERM_CTRL_AUTO);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
370
nvkm_therm_sensor_preinit(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
371
nvkm_therm_clkgate_oneinit(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
378
struct nvkm_therm *therm = nvkm_therm(subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
38
nvkm_therm_update_trip(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
380
if (therm->func->init)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
381
therm->func->init(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
383
if (therm->suspend >= 0) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
385
if (therm->suspend > 0)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
386
nvkm_therm_fan_set(therm, true, therm->fan->percent);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
388
nvkm_therm_fan_mode(therm, therm->suspend);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
391
nvkm_therm_sensor_init(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
392
nvkm_therm_fan_init(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
397
nvkm_therm_clkgate_init(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
40
struct nvbios_therm_trip_point *trip = therm->fan->bios.trip,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
400
if (!therm || !therm->func->clkgate_init || !therm->clkgating_enabled)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
403
therm->func->clkgate_init(therm, p);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
409
struct nvkm_therm *therm = nvkm_therm(subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
410
kfree(therm->fan);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
411
return therm;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
42
*last_trip = therm->last_trip;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
424
nvkm_therm_ctor(struct nvkm_therm *therm, struct nvkm_device *device, enum nvkm_subdev_type type,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
427
nvkm_subdev_ctor(&nvkm_therm, device, type, inst, &therm->subdev);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
428
therm->func = func;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
43
u8 temp = therm->func->temp_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
430
nvkm_alarm_init(&therm->alarm, nvkm_therm_alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
431
spin_lock_init(&therm->lock);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
432
spin_lock_init(&therm->sensor.alarm_program_lock);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
434
therm->fan_get = nvkm_therm_fan_user_get;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
435
therm->fan_set = nvkm_therm_fan_user_set;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
436
therm->attr_get = nvkm_therm_attr_get;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
437
therm->attr_set = nvkm_therm_attr_set;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
438
therm->mode = therm->suspend = -1; /* undefined */
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
440
therm->clkgating_enabled = nvkm_boolopt(device->cfgopt,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
448
struct nvkm_therm *therm;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
450
if (!(therm = *ptherm = kzalloc_obj(*therm)))
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
453
nvkm_therm_ctor(therm, device, type, inst, func);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
48
for (i = 0; i < therm->fan->bios.nr_fan_trip; i++) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
60
therm->last_trip = cur_trip;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
63
therm->last_trip = NULL;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
70
nvkm_therm_compute_linear_duty(struct nvkm_therm *therm, u8 linear_min_temp,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
73
u8 temp = therm->func->temp_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
78
return therm->fan->bios.min_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
80
return therm->fan->bios.max_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
84
duty *= (therm->fan->bios.max_duty - therm->fan->bios.min_duty);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
86
duty += therm->fan->bios.min_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
91
nvkm_therm_update_linear(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
93
u8 min = therm->fan->bios.linear_min_temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
94
u8 max = therm->fan->bios.linear_max_temp;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
95
return nvkm_therm_compute_linear_duty(therm, min, max);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
99
nvkm_therm_update_linear_fallback(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
112
nvkm_therm_fan_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
114
return therm->fan->get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
118
nvkm_therm_fan_set(struct nvkm_therm *therm, bool immediate, int percent)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
120
return nvkm_fan_update(therm->fan, immediate, percent);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
124
nvkm_therm_fan_sense(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
126
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
132
if (therm->func->fan_sense)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
133
return therm->func->fan_sense(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
135
if (therm->fan->tach.func == DCB_GPIO_UNUSED)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
143
prev = nvkm_gpio_get(gpio, 0, therm->fan->tach.func,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
144
therm->fan->tach.line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
149
cur = nvkm_gpio_get(gpio, 0, therm->fan->tach.func,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
150
therm->fan->tach.line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
169
nvkm_therm_fan_user_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
171
return nvkm_therm_fan_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
175
nvkm_therm_fan_user_set(struct nvkm_therm *therm, int percent)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
177
if (therm->mode != NVKM_THERM_CTRL_MANUAL)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
180
return nvkm_therm_fan_set(therm, true, percent);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
184
nvkm_therm_fan_set_defaults(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
186
therm->fan->bios.pwm_freq = 0;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
187
therm->fan->bios.min_duty = 0;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
188
therm->fan->bios.max_duty = 100;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
189
therm->fan->bios.bump_period = 500;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
190
therm->fan->bios.slow_down_period = 2000;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
191
therm->fan->bios.linear_min_temp = 40;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
192
therm->fan->bios.linear_max_temp = 85;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
196
nvkm_therm_fan_safety_checks(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
198
if (therm->fan->bios.min_duty > 100)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
199
therm->fan->bios.min_duty = 100;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
200
if (therm->fan->bios.max_duty > 100)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
201
therm->fan->bios.max_duty = 100;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
203
if (therm->fan->bios.min_duty > therm->fan->bios.max_duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
204
therm->fan->bios.min_duty = therm->fan->bios.max_duty;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
208
nvkm_therm_fan_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
214
nvkm_therm_fan_fini(struct nvkm_therm *therm, bool suspend)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
216
struct nvkm_timer *tmr = therm->subdev.device->timer;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
218
nvkm_timer_alarm(tmr, 0, &therm->fan->alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
223
nvkm_therm_fan_ctor(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
225
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
240
ret = nvkm_fanpwm_create(therm, &func);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
242
ret = nvkm_fantog_create(therm, &func);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
248
ret = nvkm_fannil_create(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
253
nvkm_debug(subdev, "FAN control: %s\n", therm->fan->type);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
256
therm->fan->percent = nvkm_therm_fan_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
260
&therm->fan->tach);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
262
therm->fan->tach.func = DCB_GPIO_UNUSED;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
265
therm->fan->parent = therm;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
266
nvkm_alarm_init(&therm->fan->alarm, nvkm_fan_alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
267
spin_lock_init(&therm->fan->lock);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
270
nvkm_therm_fan_set_defaults(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
271
nvbios_perf_fan_parse(bios, &therm->fan->perf);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
272
if (!nvbios_fan_parse(bios, &therm->fan->bios)) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
274
if (nvbios_therm_fan_parse(bios, &therm->fan->bios))
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
277
nvkm_therm_fan_safety_checks(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
34
struct nvkm_therm *therm = fan->parent;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
35
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
53
duty = fan->get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
74
ret = fan->set(therm, duty);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
27
nvkm_fannil_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
33
nvkm_fannil_set(struct nvkm_therm *therm, int percent)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
39
nvkm_fannil_create(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
44
therm->fan = priv;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
104
therm->fan = &fan->base;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
38
nvkm_fanpwm_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
40
struct nvkm_fanpwm *fan = (void *)therm->fan;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
41
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
47
ret = therm->func->pwm_get(therm, fan->func.line, &divs, &duty);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
59
nvkm_fanpwm_set(struct nvkm_therm *therm, int percent)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
61
struct nvkm_fanpwm *fan = (void *)therm->fan;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
62
int card_type = therm->subdev.device->card_type;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
69
if (therm->func->pwm_clock)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
70
divs = therm->func->pwm_clock(therm, fan->func.line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
78
ret = therm->func->pwm_set(therm, fan->func.line, divs, duty);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
80
ret = therm->func->pwm_ctrl(therm, fan->func.line, true);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
85
nvkm_fanpwm_create(struct nvkm_therm *therm, struct dcb_gpio_func *func)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
87
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
96
!therm->func->pwm_ctrl || info.type == NVBIOS_THERM_FAN_TOGGLE ||
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
97
therm->func->pwm_get(therm, func->line, &divs, &duty) == -ENODEV)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
106
therm->fan = &fan->base;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
41
struct nvkm_therm *therm = fan->base.parent;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
42
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
74
nvkm_fantog_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
76
struct nvkm_fantog *fan = (void *)therm->fan;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
81
nvkm_fantog_set(struct nvkm_therm *therm, int percent)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
83
struct nvkm_fantog *fan = (void *)therm->fan;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
84
if (therm->func->pwm_ctrl)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
85
therm->func->pwm_ctrl(therm, fan->func.line, false);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
91
nvkm_fantog_create(struct nvkm_therm *therm, struct dcb_gpio_func *func)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
96
if (therm->func->pwm_ctrl) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
97
ret = therm->func->pwm_ctrl(therm, func->line, false);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
100
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
105
prev_state = nvkm_therm_sensor_get_threshold_state(therm, thrs_name);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
118
cur = therm->func->temp_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
124
nvkm_therm_sensor_set_threshold_state(therm, thrs_name, new_state);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
135
nvkm_therm_sensor_event(therm, thrs_name, direction);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
139
g84_therm_intr(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
141
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
143
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
147
spin_lock_irqsave(&therm->sensor.alarm_program_lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
153
g84_therm_threshold_hyst_emulation(therm, 0x20414, 24,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
161
g84_therm_threshold_hyst_emulation(therm, 0x20480, 20,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
169
g84_therm_threshold_hyst_emulation(therm, 0x204c4, 21,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
177
g84_therm_threshold_hyst_emulation(therm, 0x204c0, 22,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
190
spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
194
g84_therm_fini(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
196
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
207
g84_therm_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
209
g84_sensor_setup(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
229
struct nvkm_therm *therm;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
232
ret = nvkm_therm_new_(&g84_therm, device, type, inst, &therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
233
*ptherm = therm;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
238
nvkm_therm_sensor_set_threshold_state(therm, NVKM_THERM_THRS_SHUTDOWN,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
240
nvkm_therm_sensor_set_threshold_state(therm, NVKM_THERM_THRS_FANBOOST,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
242
nvkm_therm_sensor_set_threshold_state(therm, NVKM_THERM_THRS_CRITICAL,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
244
nvkm_therm_sensor_set_threshold_state(therm, NVKM_THERM_THRS_DOWNCLOCK,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
30
g84_temp_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
32
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
41
g84_sensor_setup(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
43
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
54
g84_therm_program_alarms(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
56
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
57
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
61
spin_lock_irqsave(&therm->sensor.alarm_program_lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
78
spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c
95
g84_therm_threshold_hyst_emulation(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.c
32
gf100_clkgate_init(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.c
35
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.c
44
nvkm_trace(&therm->subdev, "{ 0x%06x, %d, 0x%08x }\n",
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.c
47
nvkm_trace(&therm->subdev, "\t0x%06x = 0x%08x\n",
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
107
gf119_fan_pwm_clock(struct nvkm_therm *therm, int line)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
109
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
110
int indx = pwm_info(therm, line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
120
gf119_therm_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
122
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
124
g84_sensor_setup(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
128
if (therm->fan->tach.func != DCB_GPIO_UNUSED) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
129
nvkm_mask(device, 0x00d79c, 0x000000ff, therm->fan->tach.line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
27
pwm_info(struct nvkm_therm *therm, int line)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
29
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
54
gf119_fan_pwm_ctrl(struct nvkm_therm *therm, int line, bool enable)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
56
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
58
int indx = pwm_info(therm, line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
68
gf119_fan_pwm_get(struct nvkm_therm *therm, int line, u32 *divs, u32 *duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
70
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
71
int indx = pwm_info(therm, line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
90
gf119_fan_pwm_set(struct nvkm_therm *therm, int line, u32 divs, u32 duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
92
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c
93
int indx = pwm_info(therm, line);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
115
struct gk104_therm *therm = kzalloc_obj(*therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
117
if (!therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
120
nvkm_therm_ctor(&therm->base, device, type, inst, func);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
121
*ptherm = &therm->base;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
122
therm->clkgate_order = clkgate_order;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
123
therm->idle_filter = idle_filter;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
32
struct gk104_therm *therm = gk104_therm(base);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
33
struct nvkm_device *dev = therm->base.subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
34
const struct gk104_clkgate_engine_info *order = therm->clkgate_order;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
46
nvkm_wr32(dev, 0x020288, therm->idle_filter->fecs);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
47
nvkm_wr32(dev, 0x02028c, therm->idle_filter->hubmmu);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
61
struct gk104_therm *therm = gk104_therm(base);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
62
struct nvkm_device *dev = therm->base.subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
63
const struct gk104_clkgate_engine_info *order = therm->clkgate_order;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
27
gm107_fan_pwm_ctrl(struct nvkm_therm *therm, int line, bool enable)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
34
gm107_fan_pwm_get(struct nvkm_therm *therm, int line, u32 *divs, u32 *duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
36
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
43
gm107_fan_pwm_set(struct nvkm_therm *therm, int line, u32 divs, u32 duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
45
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
52
gm107_fan_pwm_clock(struct nvkm_therm *therm, int line)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
54
return therm->subdev.device->crystal * 1000;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gp100.c
29
gp100_temp_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gp100.c
31
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gp100.c
32
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c
29
gt215_therm_fan_sense(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c
31
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c
40
gt215_therm_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c
42
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c
43
struct dcb_gpio_func *tach = &therm->fan->tach;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c
45
g84_sensor_setup(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
102
probe_monitoring_device, therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
103
if (therm->ic)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
114
probe_monitoring_device, therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
115
if (therm->ic)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
126
probe_monitoring_device, therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
33
struct nvkm_therm *therm = data;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
34
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
49
nvkm_debug(&therm->subdev,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
53
therm->ic = client;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
83
nvkm_therm_ic_ctor(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
85
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
106
nv40_fan_pwm_ctrl(struct nvkm_therm *therm, int line, bool enable)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
108
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
121
nv40_fan_pwm_get(struct nvkm_therm *therm, int line, u32 *divs, u32 *duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
123
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
149
nv40_fan_pwm_set(struct nvkm_therm *therm, int line, u32 divs, u32 duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
151
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
168
nv40_therm_intr(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
170
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
183
nv40_therm_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
185
nv40_sensor_setup(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
30
nv40_sensor_style(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
32
switch (therm->subdev.device->chipset) {
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
53
nv40_sensor_setup(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
55
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
56
enum nv40_sensor_style style = nv40_sensor_style(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
73
nv40_temp_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
75
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
76
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
77
enum nv40_sensor_style style = nv40_sensor_style(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
121
nv50_sensor_setup(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
123
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
129
nv50_temp_get(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
131
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
132
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
154
nv50_therm_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
156
nv50_sensor_setup(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
28
pwm_info(struct nvkm_therm *therm, int *line, int *ctrl, int *indx)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
30
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
55
nv50_fan_pwm_ctrl(struct nvkm_therm *therm, int line, bool enable)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
57
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
59
int ctrl, id, ret = pwm_info(therm, &line, &ctrl, &id);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
66
nv50_fan_pwm_get(struct nvkm_therm *therm, int line, u32 *divs, u32 *duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
68
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
69
int ctrl, id, ret = pwm_info(therm, &line, &ctrl, &id);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
83
nv50_fan_pwm_set(struct nvkm_therm *therm, int line, u32 divs, u32 duty)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
85
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
86
int ctrl, id, ret = pwm_info(therm, &line, &ctrl, &id);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
96
nv50_fan_pwm_clock(struct nvkm_therm *therm, int line)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
98
struct nvkm_device *device = therm->subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
106
nvkm_therm_fan_set(therm, true, 100);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
107
nvkm_therm_fan_mode(therm, NVKM_THERM_CTRL_AUTO);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
111
if (therm->emergency.downclock)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
112
therm->emergency.downclock(therm, active);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
115
if (therm->emergency.pause)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
116
therm->emergency.pause(therm, active);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
137
nvkm_therm_threshold_hyst_polling(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
143
int temp = therm->func->temp_get(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
145
prev_state = nvkm_therm_sensor_get_threshold_state(therm, thrs_name);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
157
nvkm_therm_sensor_set_threshold_state(therm, thrs_name, new_state);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
158
nvkm_therm_sensor_event(therm, thrs_name, direction);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
164
struct nvkm_therm *therm =
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
166
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
167
struct nvkm_timer *tmr = therm->subdev.device->timer;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
170
spin_lock_irqsave(&therm->sensor.alarm_program_lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
172
nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_fan_boost,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
175
nvkm_therm_threshold_hyst_polling(therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
179
nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_critical,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
182
nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_shutdown,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
185
spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
188
if (therm->func->temp_get(therm) >= 0)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
193
nvkm_therm_program_alarms_polling(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
195
struct nvbios_therm_sensor *sensor = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
197
nvkm_debug(&therm->subdev,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
208
alarm_timer_callback(&therm->sensor.therm_poll_alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
212
nvkm_therm_sensor_init(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
214
therm->func->program_alarms(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
219
nvkm_therm_sensor_fini(struct nvkm_therm *therm, bool suspend)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
221
struct nvkm_timer *tmr = therm->subdev.device->timer;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
223
nvkm_timer_alarm(tmr, 0, &therm->sensor.therm_poll_alarm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
228
nvkm_therm_sensor_preinit(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
232
if (therm->func->temp_get(therm) < 0)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
235
nvkm_debug(&therm->subdev, "internal sensor: %s\n", sensor_avail);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
239
nvkm_therm_sensor_ctor(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
241
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
244
nvkm_alarm_init(&therm->sensor.therm_poll_alarm, alarm_timer_callback);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
246
nvkm_therm_temp_set_defaults(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
248
&therm->bios_sensor))
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
250
nvkm_therm_temp_safety_checks(therm);
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
27
nvkm_therm_temp_set_defaults(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
29
therm->bios_sensor.offset_constant = 0;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
31
therm->bios_sensor.thrs_fan_boost.temp = 90;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
32
therm->bios_sensor.thrs_fan_boost.hysteresis = 3;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
34
therm->bios_sensor.thrs_down_clock.temp = 95;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
35
therm->bios_sensor.thrs_down_clock.hysteresis = 3;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
37
therm->bios_sensor.thrs_critical.temp = 105;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
38
therm->bios_sensor.thrs_critical.hysteresis = 5;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
40
therm->bios_sensor.thrs_shutdown.temp = 135;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
41
therm->bios_sensor.thrs_shutdown.hysteresis = 5; /*not that it matters */
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
45
nvkm_therm_temp_safety_checks(struct nvkm_therm *therm)
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
47
struct nvbios_therm_sensor *s = &therm->bios_sensor;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
58
nvkm_therm_sensor_set_threshold_state(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
62
therm->sensor.alarm_state[thrs] = st;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
67
nvkm_therm_sensor_get_threshold_state(struct nvkm_therm *therm,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
70
return therm->sensor.alarm_state[thrs];
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
81
nvkm_therm_sensor_event(struct nvkm_therm *therm, enum nvkm_therm_thrs thrs,
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
84
struct nvkm_subdev *subdev = &therm->subdev;
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
89
int temperature = therm->func->temp_get(therm);
drivers/hwmon/stts751.c
429
return sysfs_emit(buf, "%d\n", priv->therm);
drivers/hwmon/stts751.c
455
priv->hyst = temp - (priv->therm - priv->hyst);
drivers/hwmon/stts751.c
456
priv->therm = temp;
drivers/hwmon/stts751.c
487
temp = clamp_val(temp, -64000, priv->therm);
drivers/hwmon/stts751.c
490
temp = priv->therm - temp;
drivers/hwmon/stts751.c
728
ret = stts751_read_reg8(priv, &priv->therm, STTS751_REG_TLIM);
drivers/hwmon/stts751.c
735
priv->hyst = priv->therm - tmp;
drivers/hwmon/stts751.c
745
static SENSOR_DEVICE_ATTR_RW(temp1_crit, therm, 0);
drivers/hwmon/stts751.c
92
int therm;
drivers/infiniband/hw/hfi1/pcie.c
1020
therm = read_csr(dd, ASIC_CFG_THERM_POLL_EN);
drivers/infiniband/hw/hfi1/pcie.c
1021
if (therm) {
drivers/infiniband/hw/hfi1/pcie.c
1366
if (therm) {
drivers/infiniband/hw/hfi1/pcie.c
939
u64 reg, therm;
drivers/platform/x86/system76_acpi.c
40
struct device *therm;
drivers/platform/x86/system76_acpi.c
771
data->therm = devm_hwmon_device_register_with_info(&acpi_dev->dev,
drivers/platform/x86/system76_acpi.c
773
err = PTR_ERR_OR_ZERO(data->therm);