summaryrefslogtreecommitdiffstats
path: root/drivers/macintosh/therm_windtunnel.c
diff options
context:
space:
mode:
authorLyonel Vincent <lyonel@ezix.org>2009-08-30 10:54:20 +0200
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-09-02 07:46:00 +0200
commitb8e4a7dae53760b9791aca96e74366078692d90f (patch)
tree6e2662919efafe40e63eea5de5029c417cfc7e5c /drivers/macintosh/therm_windtunnel.c
parentpowerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() (diff)
downloadlinux-b8e4a7dae53760b9791aca96e74366078692d90f.tar.xz
linux-b8e4a7dae53760b9791aca96e74366078692d90f.zip
powerpc/powermac: Thermal control turns system off too eagerly
On certain PowerMacs, a module (therm_windtunnel) controls various thermal settings (it can report CPU/case temperature, change speed of internal fans, etc.) By default, the hardware thermal control has a temperature limit to protect the computer from damages (the default limit seems to be 80°C) but therm_windtunnel.c reduces it to an anormaly low value (65°C), which means that he computer will shut down randomly when hit by direct sun light or during summer (summer in France can be quite hot), actually possibly losing data instead of protecting it. The overheat limit in therm_windtunnel.c:253-254 should be set to 75°C and 70°C instead of 65°C and 60°C respectively. From: Lyonel Vincent <lyonel@ezix.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'drivers/macintosh/therm_windtunnel.c')
-rw-r--r--drivers/macintosh/therm_windtunnel.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c
index 40023313a760..8b9364434aa0 100644
--- a/drivers/macintosh/therm_windtunnel.c
+++ b/drivers/macintosh/therm_windtunnel.c
@@ -239,8 +239,8 @@ setup_hardware( void )
* to be on the safe side (OSX doesn't)...
*/
if( x.overheat_temp == (80 << 8) ) {
- x.overheat_temp = 65 << 8;
- x.overheat_hyst = 60 << 8;
+ x.overheat_temp = 75 << 8;
+ x.overheat_hyst = 70 << 8;
write_reg( x.thermostat, 2, x.overheat_hyst, 2 );
write_reg( x.thermostat, 3, x.overheat_temp, 2 );