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 <marcin.slusarz@gmail.com>
Acked-by: Martin Peres <martin.peres@labri.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c
index bf9b3ce..8f27b44 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 @@
 		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 @@
 	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 @@
 			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;