Re: ACPI OSI disaster on latest HP laptops - critical temperature shutdown

From: Matthew Garrett
Date: Sat Aug 02 2008 - 11:41:34 EST


On Sat, Aug 02, 2008 at 11:38:33AM -0300, Henrique de Moraes Holschuh wrote:

> Yes. IBM ThinkPads store the result of each version test separately, and I
> recall I saw at least one DSDT code path that didn't test all of them in
> order to select a branch of code to run.

As an example, here's a section from the T61:

If (\_OSI ("Windows 2001"))
{
Store (0x01, \WNTF)
Store (0x01, \WXPF)
Store (0x00, \WSPV)
}

If (\_OSI ("Windows 2001 SP1"))
{
Store (0x01, \WSPV)
}

If (\_OSI ("Windows 2001 SP2"))
{
Store (0x02, \WSPV)
}

And then later:

If (LAnd (\WXPF, LGreaterEqual (\WSPV, 0x01)))
{
PPMS (0x02)
}

The only way WXPF can be non-zero and WSPV can be greater or equal to
one is if more than one of those tests succeeded.

> > Not all BIOSes would support this, so we'd need to support the Windows
> > workarounds anyway. At that point, there's no real benefit in having
> > multiple codepaths.
>
> Sorry, but I will disagree.
>
> Anything that can help in the future with the vendors that are better at
> Linux support is a good thing. You are right that we will still have to
> deal with the others, but there are such things as vendor-specific windows
> workarounds (they didn't want to change their firmware, or they couldn't, or
> the others didn't care to add the workaround, etc). If that vendor uses the
> "NotWindows" OSI correctly, we would not need to take any special action.

Allowing vendors to special-case Linux means that we have to have a
special-case path for the minority of vendors who ask for this. It's
added complexity and we don't actually gain anything from it.

--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/