summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/thermal/pid_thermal_gov.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/thermal/pid_thermal_gov.c b/drivers/thermal/pid_thermal_gov.c
index c29033fb6..f326d8e15 100644
--- a/drivers/thermal/pid_thermal_gov.c
+++ b/drivers/thermal/pid_thermal_gov.c
@@ -382,15 +382,8 @@ pid_thermal_gov_get_target(struct thermal_zone_device *tz,
382 derivative = min_t(s64, derivative, max_dout); 382 derivative = min_t(s64, derivative, max_dout);
383 } 383 }
384 384
385 sum_err = proportional + derivative; 385 sum_err = max_t(s64, proportional + derivative, 0);
386 sum_err = max_t(s64, sum_err, 0);
387 if (sum_err == 0)
388 return 0;
389
390 sum_err = min_t(s64, sum_err, max_err); 386 sum_err = min_t(s64, sum_err, max_err);
391 if (sum_err == max_err)
392 return max_state;
393
394 sum_err = sum_err * max_state + max_err - 1; 387 sum_err = sum_err * max_state + max_err - 1;
395 target = (unsigned long)div64_s64(sum_err, max_err); 388 target = (unsigned long)div64_s64(sum_err, max_err);
396 389