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

Thomas Renninger
2010-02-20T10:14:27Z

Hi,

I haven't seen your post at then end of the mail...

On Friday 19 February 2010 05:20:51 pm Len Brown wrote:
> >
> > 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)))
> > }
> > }
>
> It appears that if acpi_osi=Linux were set (or TPOS were
> anything other than Windows 2006), then you
> would not get a _HOT or _CRT in this TZ.
> I don't understand how that is related to this issue,
> as acpi_osi=Linux is not set, right?
>
> acpi_osi="Windows 2006", on the other hand, should be set.
> In that case the AML will return a valid trip point for
> both _HOT and _CRT, yes? So what is the problem?
The problem is that in:
- _HOT it's a LEqual (TPOS, 0x40)
- _CRT it's a LNotEqual (TPOS, 0x40)

You will get a valid hot tp on Windows 2006 (or newer) and an invalid critical
one.
On all others you get an invalid hot, but a valid critical tp (which is also
the case with osi=Linux).

Thomas