[PATCH] powermac: thermal control turns system off in normal temperature conditions
Benjamin Herrenschmidt
benh at kernel.crashing.org
Mon Aug 31 07:22:31 EST 2009
On Sun, 2009-08-30 at 20:54 +0200, Bartlomiej Zolnierkiewicz wrote:
> From: Lyonel Vincent <lyonel at ezix.org>
> Subject: [PATCH] powermac: thermal control turns system off in normal temperature conditions
>
> 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.
Looks reasonable, thanks.
Ben.
> From: Lyonel Vincent <lyonel at ezix.org>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier at gmail.com>
> ---
> Resurrected from Fedora's bugzilla (aka The Big Black Hole):
> https://bugzilla.redhat.com/show_bug.cgi?id=171937
>
> The patch itself seems perfectly valid to me
> (especially given comments in therm_windtunnel.c).
>
> drivers/macintosh/therm_windtunnel.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: b/drivers/macintosh/therm_windtunnel.c
> ===================================================================
> --- 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 );
>
More information about the Linuxppc-dev
mailing list