Re: [PATCH 2/2] ACPI thermal: Check for thermal zone requiremen

Thomas Renninger
2010-02-19T11:20:58Z

On Friday 19 February 2010 07:39:43 Len Brown wrote:
> Thomas,
>
> What good things happen after this patch that didn't happen before it?

The guy sees a valid temperature, in /proc-/sys and also in the
corresponding X-apps (which his original complaints were).

The thermal zone has a valid passive trip point (95 C), which now is
active again.

He reported this as a regression, let me double check:

Oh dear..., _CRT doesn't return anything for Windows 2006
(or newer, not defined Windowses) -> broken trip point.

There is a Linux workaround (which does not work anymore,
this probably was the reason for the regression -> OSI!=Linux),
which make _CRT return a valid trip point like on old Windowses.

So this makes the behavior more "latest Windows OS" like.
Hmm, depends whether Windows still takes the thermal zone into
account if _CRT is not available or invalid.
The fact that a valid _HOT trip point is only exported on latest
Windowses, hardens the guess that Windows also serves this
thermal zone with an invalid critical trip point.
It looks like the (TPOS == 0x40) thermal workarounds wants to avoid
thermal shutdowns (critical) in case 100 C are reached and change it
into a (debug?) message (_HOT) on latest Windowses.

Thomas

Related ASL output:

If (_OSI ("Linux"))
{
Store (One, LINX)
Store (0x80, OSTB)
Store (0x80, TPOS)
}
If (_OSI ("Windows 2006"))
{
Store (0x40, OSTB)
Store (0x40, TPOS)
}

...
Name (TPC, 0x64)
Method (_HOT, 0, Serialized)
{
If (LEqual (TPOS, 0x40))
{
Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
}
}

Method (_CRT, 0, Serialized)
{
If (LNotEqual (TPOS, 0x40))
{
Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
}
}