[PATCH 3.14 52/64] thermal: step_wise: Revert optimization

Greg Kroah-Hartman
2015-06-03T12:12:19Z

From: Jean Delvare <jdelvare@suse.de>

Commit 178c2490b99f898efc06d1ad75cadc84f13021a6 ("thermal: step_wise:
cdev only needs update on a new target state") broke driver acerhdf.
That driver abused the step_wise thermal governor until the bang_bang
governor was available, and the optimization broke this usage model.

Kernels v3.12 to v3.18 are affected. In v3.19 the acerhdf driver was
switched to the bang_bang governor and that solved the problem.

For kernels v3.12 to v3.17, the bang_bang governor isn't available
yet so the easiest fix is to revert the optimization.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Reported-by: Dieter Jurzitza (https://bugzilla.opensuse.org/show_bug.cgi?id=925961)
Tested-by: Peter Feuerer <peter@piie.net>
Tested-by: Dieter Jurzitza
---
Please consider this patch for stable kernel branches from v3.12 to v3.17.

If anyone cares about v3.18, I think a better fix would be to backport
commit 48c8dd64345ba2a8c41556095c7adacb1c8af7c1 ("acerhdf: Use bang-bang
thermal governor") but it's too big for stable, so it's left to
distributions. So maybe this fix should make it into v3.18 stable as
well - I'll let whoever maintains that branch decide.

drivers/thermal/step_wise.c | 3 ---
1 file changed, 3 deletions(-)

--- a/drivers/thermal/step_wise.c
+++ b/drivers/thermal/step_wise.c
@@ -146,9 +146,6 @@ static void thermal_zone_trip_update(str
dev_dbg(&instance->cdev->device, "old_target=%d, target=%d\n",
old_target, (int)instance->target);

- if (old_target == instance->target)
- continue;
-
/* Activate a passive thermal instance */
if (old_target == THERMAL_NO_TARGET &&
instance->target != THERMAL_NO_TARGET)