diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2005-12-18 19:24:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-20 12:25:33 -0500 |
commit | 6ee7fb7e363aa8828b3920422416707c79f39007 (patch) | |
tree | 2a11705c9ba8507ce7a31893acde957fb98ea8c5 | |
parent | 3e1ec1f43307575d4e04c513aa3c30d69c32b9dc (diff) |
[PATCH] powerpc: g5 thermal overtemp bug
The g5 thermal control for liquid cooled machines has a small bug, when
the temperatures gets too high, it boosts all fans to the max, but
incorrectly sets the liquids pump to the min instead of the max speed,
thus causing the overtemp condition not to clear and the machine to shut
down after a while. This fixes it to set the pumps to max speed instead.
This problem might explain some of the reports of random shutdowns that
some g5 users have been reporting in the past.
Many thanks to Marcus Rothe for spending a lot of time trying various
patches & sending log logs before I found out that typo. Note that
overtemp handling is still not perfect and the machine might still
shutdown, that patch should reduce if not eliminate such occcurences in
"normal" conditions with high load. I'll implement a better handling
with proper slowing down of the CPUs later.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/macintosh/therm_pm72.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c index 3fc8cdd94c3d..5bb36274a5c6 100644 --- a/drivers/macintosh/therm_pm72.c +++ b/drivers/macintosh/therm_pm72.c | |||
@@ -933,7 +933,7 @@ static void do_monitor_cpu_combined(void) | |||
933 | if (state0->overtemp > 0) { | 933 | if (state0->overtemp > 0) { |
934 | state0->rpm = state0->mpu.rmaxn_exhaust_fan; | 934 | state0->rpm = state0->mpu.rmaxn_exhaust_fan; |
935 | state0->intake_rpm = intake = state0->mpu.rmaxn_intake_fan; | 935 | state0->intake_rpm = intake = state0->mpu.rmaxn_intake_fan; |
936 | pump = state0->pump_min; | 936 | pump = state0->pump_max; |
937 | goto do_set_fans; | 937 | goto do_set_fans; |
938 | } | 938 | } |
939 | 939 | ||