Comment 34 for bug 463940

Revision history for this message
irwjager (jager49) wrote :

Abrahm, looking at your DSDT, firmware F.05 solves the thermal zone problem for OS's other than Windows. It also adds a couple of new devices but I'm not sure what they do.

Hearing that your fans are actually throttling on F.05 sounds really encouraging. I got no such thing happening on F.04.

I strongly suspect the missing _PPC object is due to a timing issue. I believe the SSDT, which loads the _PPC object into the namespace definitions, is loaded way after the parser encounters a reference to the _PPC object. It can't find it, because it doesn't know of it yet, so it throws that namespace error and aborts. It's very sloppy coding.

One simple solution would be to put 'If CondRefOf (_PR.CPU0._PPC)' around the code in the DSDT that tries to access it.
It basically checks if _PR.CPU0._PPC exists yet. If not, it won't execute the code.

Ofcourse, this is only useful if the code is called again later, when the _PPC object has been loaded, at which point it will succeed. I'm thinking this is the case as the code seems to deal with P-States and throttling. Even without a fix, the buggy code in the DSDT is probably enough to make P-States work, as evidenced by Abrahm.

As for C-states, it wouldn't surprise me if they simply aren't defined at all in this BIOS. I'll see if I can find a _CST object...