Messages in this thread | | | Date | Sat, 2 Aug 2008 16:41:14 +0100 | From | Matthew Garrett <> | Subject | Re: ACPI OSI disaster on latest HP laptops - critical temperature shutdown |
| |
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@srcf.ucam.org
| |