• Henrique de Moraes Holschuh's avatar
    ACPI: ibm-acpi: Implement direct-ec-access thermal reading modes for up to 16 sensors · 60eb0b35
    Henrique de Moraes Holschuh authored
    This patch extends ibm-acpi to support reading thermal sensors directly
    through ACPI EC register access.  It uses a DMI match to detect ThinkPads
    with a new-style embedded controller, that are known to have forward-
    compatible register maps and use 0x00 to fill in non-used registers and
    export thermal sensors at EC offsets 0x78-7F and 0xC0-C7.
    
    Direct ACPI EC register access is implemented for 8-sensor and 16-sensor
    new-style ThinkPad controller firmwares as an experimental feature.  The
    code does some limited sanity checks on the temperatures read through EC
    access, and will default to the old ACPI TMP0-7 mode if anything is amiss.
    
    Userspace ABI is not changed for 8 sensors, but /proc/acpi/ibm/thermal is
    extended for 16 sensors if the firmware supports 16 sensors.
    
    A documentation update is also provided.
    
    The information about the ThinkPad register map was determined by studying
    ibm-acpi "ecdump" output from various ThinkPad models, submitted by
    subscribers of the linux-thinkpad mailinglist.  Futher information was
    gathered from the DSDT tables, as they describe the EC register map in
    recent ThinkPads.
    
    DSDT source shows that TMP0-7 access and direct register access are
    actually the same thing on these firmwares, but unfortunately IBM never
    did update their DSDT EC register map to export TMP8-TMP15 for the second
    range of sensors.
    Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
    60eb0b35
ibm_acpi.c 49.6 KB