diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-22 21:46:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-22 21:46:56 -0500 |
commit | 18ed1c051317ac3a685120cead2adb192b802347 (patch) | |
tree | c08a9147119a6cb69114166c7107f6b0bba6e2ab /Documentation/ibm-acpi.txt | |
parent | dab6df63086762629936e8b89a5984bae39724f6 (diff) | |
parent | 36bcbec7ce21e2e8b3143b11a05747330abeca70 (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (68 commits)
ACPI: replace kmalloc+memset with kzalloc
ACPI: Add support for acpi_load_table/acpi_unload_table_id
fbdev: update after backlight argument change
ACPI: video: Add dev argument for backlight_device_register
ACPI: Implement acpi_video_get_next_level()
ACPI: Kconfig - depend on PM rather than selecting it
ACPI: fix NULL check in drivers/acpi/osl.c
ACPI: make drivers/acpi/ec.c:ec_ecdt static
ACPI: prevent processor module from loading on failures
ACPI: fix single linked list manipulation
ACPI: ibm_acpi: allow clean removal
ACPI: fix git automerge failure
ACPI: ibm_acpi: respond to workqueue update
ACPI: dock: add uevent to indicate change in device status
ACPI: ec: Lindent once again
ACPI: ec: Change #define to enums there possible.
ACPI: ec: Style changes.
ACPI: ec: Acquire Global Lock under EC mutex.
ACPI: ec: Drop udelay() from poll mode. Loop by reading status field instead.
ACPI: ec: Rename gpe_bit to gpe
...
Diffstat (limited to 'Documentation/ibm-acpi.txt')
-rw-r--r-- | Documentation/ibm-acpi.txt | 151 |
1 files changed, 120 insertions, 31 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 | ||
676 | ammount of time. To do this, use the "watchdog" command. | ||
677 | |||
678 | echo 'watchdog <interval>' > /proc/acpi/ibm/fan | ||
679 | |||
680 | Interval is the ammount of time in seconds to wait for one of the | ||
681 | above mentioned fan commands before reseting the fan level to a safe | ||
682 | one. If set to zero, the watchdog is disabled (default). When the | ||
683 | watchdog timer runs out, it does the exact equivalent of the "enable" | ||
684 | fan command. | ||
685 | |||
686 | Note that the watchdog timer stops after it enables the fan. It will | ||
687 | be rearmed again automatically (using the same interval) when one of | ||
688 | the above mentioned fan commands is received. The fan watchdog is, | ||
689 | therefore, not suitable to protect against fan mode changes made | ||
690 | through means other than the "enable", "disable", and "level" fan | ||
691 | commands. | ||
692 | |||
604 | 693 | ||
605 | Example Configuration | 694 | Example Configuration |
606 | --------------------- | 695 | --------------------- |