Sasha Levin
2019-Feb-09  18:49 UTC
[Nouveau] [PATCH AUTOSEL 4.14 14/16] drm/nouveau: Don't disable polling in fallback mode
From: Takashi Iwai <tiwai at suse.de>
[ Upstream commit 118780066e30c34de3d9349710b51780bfa0ba83 ]
When a fan is controlled via linear fallback without cstate, we
shouldn't stop polling.  Otherwise it won't be adjusted again and
keeps running at an initial crazy pace.
Fixes: 800efb4c2857 ("drm/nouveau/drm/therm/fan: add a fallback if no fan
control is specified in the vbios")
Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1103356
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107447
Reported-by: Thomas Blume <thomas.blume at suse.com>
Signed-off-by: Takashi Iwai <tiwai at suse.de>
Reviewed-by: Martin Peres <martin.peres at free.fr>
Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
Signed-off-by: Sasha Levin <sashal at kernel.org>
---
 drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
index 952a7cb0a59a..692d4d96766a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
@@ -131,11 +131,12 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
 			duty = nvkm_therm_update_linear(therm);
 			break;
 		case NVBIOS_THERM_FAN_OTHER:
-			if (therm->cstate)
+			if (therm->cstate) {
 				duty = therm->cstate;
-			else
+				poll = false;
+			} else {
 				duty = nvkm_therm_update_linear_fallback(therm);
-			poll = false;
+			}
 			break;
 		}
 		immd = false;
-- 
2.19.1
Reasonably Related Threads
- [PATCH AUTOSEL 4.20 36/42] drm/nouveau: Don't disable polling in fallback mode
- [PATCH AUTOSEL 4.19 25/28] drm/nouveau: Don't disable polling in fallback mode
- [PATCH] drm/nouveau: Don't disable polling in fallback mode
- [PATCH] drm/nouveau: Don't disable polling in fallback mode
- [PATCH] drm/nouveau: Don't disable polling in fallback mode
