We will need a always running therm daemon to adjust the voltage/clocks on
the fly.

Signed-off-by: Karol Herbst <[email protected]>
Reviewed-by: Martin Peres <[email protected]>
---
 drm/nouveau/nvkm/subdev/therm/base.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drm/nouveau/nvkm/subdev/therm/base.c 
b/drm/nouveau/nvkm/subdev/therm/base.c
index 8fa691fb..4e69cd8e 100644
--- a/drm/nouveau/nvkm/subdev/therm/base.c
+++ b/drm/nouveau/nvkm/subdev/therm/base.c
@@ -114,7 +114,6 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
        struct nvkm_timer *tmr = subdev->device->timer;
        unsigned long flags;
        bool immd = true;
-       bool poll = true;
        int duty = -1;
 
        spin_lock_irqsave(&therm->lock, flags);
@@ -124,11 +123,9 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
 
        switch (mode) {
        case NVKM_THERM_CTRL_MANUAL:
-               nvkm_timer_alarm(tmr, 0, &therm->alarm);
                duty = nvkm_therm_fan_get(therm);
                if (duty < 0)
                        duty = 100;
-               poll = false;
                break;
        case NVKM_THERM_CTRL_AUTO:
                switch(therm->fan->bios.fan_mode) {
@@ -143,18 +140,16 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
                                duty = therm->cstate;
                        else
                                duty = nvkm_therm_update_linear_fallback(therm);
-                       poll = false;
                        break;
                }
                immd = false;
                break;
        case NVKM_THERM_CTRL_NONE:
        default:
-               nvkm_timer_alarm(tmr, 0, &therm->alarm);
-               poll = false;
+               break;
        }
 
-       if (poll)
+       if (list_empty(&therm->alarm.head))
                nvkm_timer_alarm(tmr, 1000000000ULL, &therm->alarm);
        spin_unlock_irqrestore(&therm->lock, flags);
 
-- 
2.14.1

_______________________________________________
Nouveau mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to