Bug 24172 - No thermal sensors on HP tx 2500 series because of flawed DSDT
Summary: No thermal sensors on HP tx 2500 series because of flawed DSDT
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: ACPI
Classification: Unclassified
Component: Power-Thermal (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Zhang Rui
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-01 21:18 UTC by Pietro Battiston
Modified: 2010-12-09 21:51 UTC (History)
3 users (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments
Original DSDT table (36.66 KB, application/octet-stream)
2010-12-06 08:16 UTC, Pietro Battiston
Details

Description Pietro Battiston 2010-12-01 21:18:49 UTC
The DSDT of my HP tx2510 contains the following code:

Method (_HOT, 0, Serialized)
{
    If (LEqual (TPOS, 0x40))
    {
        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
    }
}

Method (_CRT, 0, Serialized)
{
    If (LLess (TPOS, 0x40))
    {
        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
    }
}


which basically disables thermal sensors for any operating system that is not Windows. For more details, see
https://wiki.edubuntu.org/LaptopTestingTeam/Old/HPdv5z
which also suggests to comment out the check.

Since it is no more possible to load customized DSDTs however, the above howto is now useless, but I was told that the problem can be fixed directly in the kernel.

Needless to say I tried contacting HP in all ways I could conceive, but (also because my warranty is over) I doubt anyone there cared at all - certainly, I was not contacted back and there were no BIOS updates in the last year.

In case it's useful, the current BIOS can be downloaded through:
http://ftp.hp.com/pub/softpaq/sp45001-45500/sp45056.exe

I'm available for any additional information/testing.
Comment 1 Pietro Battiston 2010-12-02 11:50:34 UTC
Launchpad related bug:
https://bugs.launchpad.net/linux/+bug/461789
Comment 2 Zhang Rui 2010-12-06 05:55:33 UTC
can you attach the dsdt table of your laptop?
BTW: we can still override the DSDT table, please refer to http://www.lesswatts.org/projects/acpi/overridingDSDT.php
Comment 3 Pietro Battiston 2010-12-06 08:16:11 UTC
Created attachment 39112 [details]
Original DSDT table
Comment 4 Pietro Battiston 2010-12-06 08:17:09 UTC
> can you attach the dsdt table of your laptop?

Sure, I attached the result of "cp /proc/acpi/dsdt DSDT".

> BTW: we can still override the DSDT table, please refer to
> http://www.lesswatts.org/projects/acpi/overridingDSDT.php

Yep, sorry for the misunderstanding: I knew but implicitly assumed recompiling the kernel is not a solution (at least not for everyone).
Comment 5 Zhang Rui 2010-12-06 08:43:57 UTC
Oh, so the problem is that "no _CRT results in thermal driver load failure"?
If yes, I think the problem has been fixed by:

commit fa80945269f312bc609e8384302f58b03c916e12
Author: Thomas Renninger <trenn@suse.de>
Date:   Sat Feb 20 11:44:27 2010 +0100

    ACPI thermal: Don't invalidate thermal zone if critical trip point is bad
    
    V2: Corrected integer/long conversion.
    
    Some BIOSes return a negative value for the critical trip point.
    Especially since Windows 2006...
    We currently invalidate the whole thermal zone in this case.
    But it may still be needed for cooling, also without critical
    trip point.
    
    This patch invalidates the critical trip point if no _CRT
    function is found or if it returns negative values, but does
    not invalidate the whole thermal zone in this case.
    
    Reference: http://bugzilla.novell.com/show_bug.cgi?id=531547
    
    Signed-off-by: Thomas Renninger <trenn@suse.de>
    Tested-by: clarkt@cnsp.com
    Acked-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

Why not try a kernel later than 2.6.34 and see if the problem still exist?
Comment 6 Pietro Battiston 2010-12-07 15:23:50 UTC
Ahem,(In reply to comment #5)
> Oh, so the problem is that "no _CRT results in thermal driver load failure"?

I have no idea of what that means, but...

> 
> Why not try a kernel later than 2.6.34 and see if the problem still exist?

Yep, tried with 2.6.36 and it works. Sorry for the noise: the problem was there since a while and hence I didn't consider trying a new kernel.

Pietro

Note You need to log in before you can comment on or make changes to this bug.