diff options
author | Henrique de Moraes Holschuh <hmh@hmh.eng.br> | 2006-11-24 08:47:08 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-12-07 01:38:38 -0500 |
commit | 60eb0b35a9cc3400251cb4028d100e350649cf8a (patch) | |
tree | 2f655a273572e46b6c4f662071d027e57cad1bcf /Documentation | |
parent | a26f878abcd0491906b5bbac8dd174f27019e907 (diff) |
ACPI: ibm-acpi: Implement direct-ec-access thermal reading modes for up to 16 sensors
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: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ibm-acpi.txt | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/Documentation/ibm-acpi.txt b/Documentation/ibm-acpi.txt index e50595bfd8e..30f09e7a423 100644 --- a/Documentation/ibm-acpi.txt +++ b/Documentation/ibm-acpi.txt | |||
@@ -398,25 +398,56 @@ Temperature sensors -- /proc/acpi/ibm/thermal | |||
398 | 398 | ||
399 | Most ThinkPads include six or more separate temperature sensors but | 399 | Most ThinkPads include six or more separate temperature sensors but |
400 | only expose the CPU temperature through the standard ACPI methods. | 400 | only expose the CPU temperature through the standard ACPI methods. |
401 | This feature shows readings from up to eight different sensors. Some | 401 | This feature shows readings from up to eight different sensors on older |
402 | readings may not be valid, e.g. may show large negative values. For | 402 | ThinkPads, and it has experimental support for up to sixteen different |
403 | example, on the X40, a typical output may be: | 403 | sensors on newer ThinkPads. Readings from sensors that are not available |
404 | return -128. | ||
404 | 405 | ||
406 | No commands can be written to this file. | ||
407 | |||
408 | EXPERIMENTAL: The 16-sensors feature is marked EXPERIMENTAL because the | ||
409 | implementation directly accesses hardware registers and may not work as | ||
410 | expected. USE WITH CAUTION! To use this feature, you need to supply the | ||
411 | experimental=1 parameter when loading the module. When EXPERIMENTAL | ||
412 | mode is enabled, reading the first 8 sensors on newer ThinkPads will | ||
413 | also use an new experimental thermal sensor access mode. | ||
414 | |||
415 | For example, on the X40, a typical output may be: | ||
405 | temperatures: 42 42 45 41 36 -128 33 -128 | 416 | temperatures: 42 42 45 41 36 -128 33 -128 |
406 | 417 | ||
407 | Thomas Gruber took his R51 apart and traced all six active sensors in | 418 | EXPERIMENTAL: On the T43/p, a typical output may be: |
408 | his laptop (the location of sensors may vary on other models): | 419 | temperatures: 48 48 36 52 38 -128 31 -128 48 52 48 -128 -128 -128 -128 -128 |
420 | |||
421 | The mapping of thermal sensors to physical locations varies depending on | ||
422 | system-board model (and thus, on ThinkPad model). | ||
423 | |||
424 | http://thinkwiki.org/wiki/Thermal_Sensors is a public wiki page that | ||
425 | tries to track down these locations for various models. | ||
426 | |||
427 | Most (newer?) models seem to follow this pattern: | ||
409 | 428 | ||
410 | 1: CPU | 429 | 1: CPU |
411 | 2: Mini PCI Module | 430 | 2: (depends on model) |
412 | 3: HDD | 431 | 3: (depends on model) |
413 | 4: GPU | 432 | 4: GPU |
414 | 5: Battery | 433 | 5: Main battery: main sensor |
415 | 6: N/A | 434 | 6: Bay battery: main sensor |
416 | 7: Battery | 435 | 7: Main battery: secondary sensor |
417 | 8: N/A | 436 | 8: Bay battery: secondary sensor |
437 | 9-15: (depends on model) | ||
438 | |||
439 | For the R51 (source: Thomas Gruber): | ||
440 | 2: Mini-PCI | ||
441 | 3: Internal HDD | ||
442 | |||
443 | For the T43, T43/p (source: Shmidoax/Thinkwiki.org) | ||
444 | http://thinkwiki.org/wiki/Thermal_Sensors#ThinkPad_T43.2C_T43p | ||
445 | 2: System board, left side (near PCMCIA slot), reported as HDAPS temp | ||
446 | 3: PCMCIA slot | ||
447 | 9: MCH (northbridge) to DRAM Bus | ||
448 | 10: ICH (southbridge), under Mini-PCI card, under touchpad | ||
449 | 11: Power regulator, underside of system board, below F2 key | ||
418 | 450 | ||
419 | No commands can be written to this file. | ||
420 | 451 | ||
421 | EXPERIMENTAL: Embedded controller register dump -- /proc/acpi/ibm/ecdump | 452 | EXPERIMENTAL: Embedded controller register dump -- /proc/acpi/ibm/ecdump |
422 | ------------------------------------------------------------------------ | 453 | ------------------------------------------------------------------------ |