diff options
| author | Len Brown <len.brown@intel.com> | 2006-12-16 00:34:18 -0500 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2006-12-16 00:34:18 -0500 |
| commit | 6bfe5c9d6f4dcaa998f67e691359cf7b1c4b443d (patch) | |
| tree | 94ee5b1c2b768a584b9bd0fe44382f80f2e4c96b | |
| parent | b361735043e3001eadb1d40916fd1a4fca1a9363 (diff) | |
| parent | f9ff43a6268d36acf8df18a76bb881a26a42dc1e (diff) | |
Pull platform-drivers into test branch
| -rw-r--r-- | Documentation/ibm-acpi.txt | 151 | ||||
| -rw-r--r-- | drivers/acpi/Kconfig | 14 | ||||
| -rw-r--r-- | drivers/acpi/asus_acpi.c | 62 | ||||
| -rw-r--r-- | drivers/acpi/ibm_acpi.c | 1037 | ||||
| -rw-r--r-- | drivers/acpi/toshiba_acpi.c | 88 |
5 files changed, 1131 insertions, 221 deletions
diff --git a/Documentation/ibm-acpi.txt b/Documentation/ibm-acpi.txt index e50595bfd8ea..0132d363feb5 100644 --- a/Documentation/ibm-acpi.txt +++ b/Documentation/ibm-acpi.txt | |||
| @@ -398,25 +398,67 @@ 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 | ||
| 450 | |||
| 451 | The A31 has a very atypical layout for the thermal sensors | ||
| 452 | (source: Milos Popovic, http://thinkwiki.org/wiki/Thermal_Sensors#ThinkPad_A31) | ||
| 453 | 1: CPU | ||
| 454 | 2: Main Battery: main sensor | ||
| 455 | 3: Power Converter | ||
| 456 | 4: Bay Battery: main sensor | ||
| 457 | 5: MCH (northbridge) | ||
| 458 | 6: PCMCIA/ambient | ||
| 459 | 7: Main Battery: secondary sensor | ||
| 460 | 8: Bay Battery: secondary sensor | ||
| 418 | 461 | ||
| 419 | No commands can be written to this file. | ||
| 420 | 462 | ||
| 421 | EXPERIMENTAL: Embedded controller register dump -- /proc/acpi/ibm/ecdump | 463 | EXPERIMENTAL: Embedded controller register dump -- /proc/acpi/ibm/ecdump |
| 422 | ------------------------------------------------------------------------ | 464 | ------------------------------------------------------------------------ |
| @@ -529,27 +571,57 @@ directly accesses hardware registers and may not work as expected. USE | |||
| 529 | WITH CAUTION! To use this feature, you need to supply the | 571 | WITH CAUTION! To use this feature, you need to supply the |
| 530 | experimental=1 parameter when loading the module. | 572 | experimental=1 parameter when loading the module. |
| 531 | 573 | ||
| 532 | This feature attempts to show the current fan speed. The speed is read | 574 | This feature attempts to show the current fan speed, control mode and |
| 533 | directly from the hardware registers of the embedded controller. This | 575 | other fan data that might be available. The speed is read directly |
| 534 | is known to work on later R, T and X series ThinkPads but may show a | 576 | from the hardware registers of the embedded controller. This is known |
| 535 | bogus value on other models. | 577 | to work on later R, T and X series ThinkPads but may show a bogus |
| 578 | value on other models. | ||
| 579 | |||
| 580 | Most ThinkPad fans work in "levels". Level 0 stops the fan. The higher | ||
| 581 | the level, the higher the fan speed, although adjacent levels often map | ||
| 582 | to the same fan speed. 7 is the highest level, where the fan reaches | ||
| 583 | the maximum recommended speed. Level "auto" means the EC changes the | ||
| 584 | fan level according to some internal algorithm, usually based on | ||
| 585 | readings from the thermal sensors. Level "disengaged" means the EC | ||
| 586 | disables the speed-locked closed-loop fan control, and drives the fan as | ||
| 587 | fast as it can go, which might exceed hardware limits, so use this level | ||
| 588 | with caution. | ||
| 589 | |||
| 590 | The fan usually ramps up or down slowly from one speed to another, | ||
| 591 | and it is normal for the EC to take several seconds to react to fan | ||
| 592 | commands. | ||
| 536 | 593 | ||
| 537 | The fan may be enabled or disabled with the following commands: | 594 | The fan may be enabled or disabled with the following commands: |
| 538 | 595 | ||
| 539 | echo enable >/proc/acpi/ibm/fan | 596 | echo enable >/proc/acpi/ibm/fan |
| 540 | echo disable >/proc/acpi/ibm/fan | 597 | echo disable >/proc/acpi/ibm/fan |
| 541 | 598 | ||
| 599 | Placing a fan on level 0 is the same as disabling it. Enabling a fan | ||
| 600 | will try to place it in a safe level if it is too slow or disabled. | ||
| 601 | |||
| 542 | WARNING WARNING WARNING: do not leave the fan disabled unless you are | 602 | WARNING WARNING WARNING: do not leave the fan disabled unless you are |
| 543 | monitoring the temperature sensor readings and you are ready to enable | 603 | monitoring all of the temperature sensor readings and you are ready to |
| 544 | it if necessary to avoid overheating. | 604 | enable it if necessary to avoid overheating. |
| 545 | 605 | ||
| 546 | The fan only runs if it's enabled *and* the various temperature | 606 | An enabled fan in level "auto" may stop spinning if the EC decides the |
| 547 | sensors which control it read high enough. On the X40, this seems to | 607 | ThinkPad is cool enough and doesn't need the extra airflow. This is |
| 548 | depend on the CPU and HDD temperatures. Specifically, the fan is | 608 | normal, and the EC will spin the fan up if the varios thermal readings |
| 549 | turned on when either the CPU temperature climbs to 56 degrees or the | 609 | rise too much. |
| 550 | HDD temperature climbs to 46 degrees. The fan is turned off when the | 610 | |
| 551 | CPU temperature drops to 49 degrees and the HDD temperature drops to | 611 | On the X40, this seems to depend on the CPU and HDD temperatures. |
| 552 | 41 degrees. These thresholds cannot currently be controlled. | 612 | Specifically, the fan is turned on when either the CPU temperature |
| 613 | climbs to 56 degrees or the HDD temperature climbs to 46 degrees. The | ||
| 614 | fan is turned off when the CPU temperature drops to 49 degrees and the | ||
| 615 | HDD temperature drops to 41 degrees. These thresholds cannot | ||
| 616 | currently be controlled. | ||
| 617 | |||
| 618 | The fan level can be controlled with the command: | ||
| 619 | |||
| 620 | echo 'level <level>' > /proc/acpi/ibm/thermal | ||
| 621 | |||
| 622 | Where <level> is an integer from 0 to 7, or one of the words "auto" | ||
| 623 | or "disengaged" (without the quotes). Not all ThinkPads support the | ||
| 624 | "auto" and "disengaged" levels. | ||
| 553 | 625 | ||
| 554 | On the X31 and X40 (and ONLY on those models), the fan speed can be | 626 | On the X31 and X40 (and ONLY on those models), the fan speed can be |
| 555 | controlled to a certain degree. Once the fan is running, it can be | 627 | controlled to a certain degree. Once the fan is running, it can be |
| @@ -562,12 +634,9 @@ about 3700 to about 7350. Values outside this range either do not have | |||
| 562 | any effect or the fan speed eventually settles somewhere in that | 634 | any effect or the fan speed eventually settles somewhere in that |
| 563 | range. The fan cannot be stopped or started with this command. | 635 | range. The fan cannot be stopped or started with this command. |
| 564 | 636 | ||
| 565 | On the 570, temperature readings are not available through this | 637 | The ThinkPad's ACPI DSDT code will reprogram the fan on its own when |
| 566 | feature and the fan control works a little differently. The fan speed | 638 | certain conditions are met. It will override any fan programming done |
| 567 | is reported in levels from 0 (off) to 7 (max) and can be controlled | 639 | through ibm-acpi. |
| 568 | with the following command: | ||
| 569 | |||
| 570 | echo 'level <level>' > /proc/acpi/ibm/thermal | ||
| 571 | 640 | ||
| 572 | EXPERIMENTAL: WAN -- /proc/acpi/ibm/wan | 641 | EXPERIMENTAL: WAN -- /proc/acpi/ibm/wan |
| 573 | --------------------------------------- | 642 | --------------------------------------- |
| @@ -601,6 +670,26 @@ example: | |||
| 601 | 670 | ||
| 602 | modprobe ibm_acpi hotkey=enable,0xffff video=auto_disable | 671 | modprobe ibm_acpi hotkey=enable,0xffff video=auto_disable |
| 603 | 672 | ||
| 673 | The ibm-acpi kernel driver can be programmed to revert the fan level | ||
| 674 | to a safe setting if userspace does not issue one of the fan commands: | ||
| 675 | "enable", "disable", "level" or "watchdog" within a configurable | ||
