Comment 21 for bug 395239

Revision history for this message
In , Trenn-novell (trenn-novell) wrote :

Your problem can be workarounded much easier in several ways.
Hmm, on the other hand I do not see what it should fix. Only behavior which may change is that you get an OS triggered proper shutdown instead of a hard power off switch triggered by the CPU.

Let me first describe your problem, so that I do not mix up anything:
The problem you are referring to is described in detail here:
https://wiki.edubuntu.org/LaptopTestingTeam/HPdv5z

What is done here is that a hot and a critical trip point is always exposed to the Operating System. In Linux the hot trip point isn't used, when the critical trip point is exceeded, the machine will shut down.
The critical trip point (similar to hot, but for other OSes) is only exposed on *older* Windowses, in your case it's always exposed but not for "Windows 2006" (e.g. for Windows 2001 SP1/SP2 and others).
I expect the fix on your DSDT looks like (adding the comments):
Name (TPC, 0x5F)
                Method (_CRT, 0, Serialized)
                {
// If (LLess (OSYS, 0x07D6))
// {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
// }
                }
If you do exactly the same as described here: https://wiki.edubuntu.org/LaptopTestingTeam/HPdv5z
The critical temp which gets calculated and exposed to OS is 95 C.
If you force (this is what gets done?) to expose the critical thermal trip point to the OS/kernel, this will cause the kernel to shut down your machine if a temperature read (correct or incorrect!) at 95 C or above.

Therefore I do not fully understand what this should fix. Only that you may get a proper done, clear shut down initiated by the OS, instead of a hard power switch of by HW on higher temperatures (there always is a HW driven emergency thermal power off limit).

Also be aware that the OS string changed several times the last years.
For example latest kernel does not expose itself anymore as "Linux", but for some time the "Windows 2006" string got added. Therefore I expect with our current kernel you should not see the a critical trip point anymore.
Possibly this is what you want (and what you have done?) which may avoid (OS triggered) shut downs.
But the DSDT patching to get this behavior would also include to comment out:
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))

But Ubuntu (depending on the kernel version) may only expose "Windows 2001 SP1/SP2" strings, therefore you get a critical trip point there.