From: Marcin Slusarz Date: Sun, 3 Feb 2013 17:17:41 +0000 (+0100) Subject: drm/nouveau/therm: turn on fan only when threshold hit in positive direction X-Git-Tag: firefly_0821_release~3680^2~1036^2~10^2~42 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=134fc0327552f3ebee2cdcb50b956a31029661c0;p=firefly-linux-kernel-4.4.55.git drm/nouveau/therm: turn on fan only when threshold hit in positive direction + the same for shutdown threshold - seems impossible, but shutdown can fail. Signed-off-by: Marcin Slusarz Acked-by: Martin Peres Signed-off-by: Ben Skeggs --- diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c index bf9b3cefb514..8f27b44db4da 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c @@ -105,7 +105,7 @@ void nouveau_therm_sensor_event(struct nouveau_therm *therm, return; if (dir == NOUVEAU_THERM_THRS_FALLING) - nv_info(therm, "temperature (%u C) went bellow the '%s' threshold\n", + nv_info(therm, "temperature (%u C) went below the '%s' threshold\n", temperature, thresolds[thrs]); else nv_info(therm, "temperature (%u C) hit the '%s' threshold\n", @@ -114,8 +114,10 @@ void nouveau_therm_sensor_event(struct nouveau_therm *therm, active = (dir == NOUVEAU_THERM_THRS_RISING); switch (thrs) { case NOUVEAU_THERM_THRS_FANBOOST: - nouveau_therm_fan_set(therm, true, 100); - nouveau_therm_mode(therm, NOUVEAU_THERM_CTRL_AUTO); + if (active) { + nouveau_therm_fan_set(therm, true, 100); + nouveau_therm_mode(therm, NOUVEAU_THERM_CTRL_AUTO); + } break; case NOUVEAU_THERM_THRS_DOWNCLOCK: if (priv->emergency.downclock) @@ -126,7 +128,8 @@ void nouveau_therm_sensor_event(struct nouveau_therm *therm, priv->emergency.pause(therm, active); break; case NOUVEAU_THERM_THRS_SHUTDOWN: - orderly_poweroff(true); + if (active) + orderly_poweroff(true); break; case NOUVEAU_THERM_THRS_NR: break;