Commit | Line | Data |
---|---|---|
d19e470b SP |
1 | .. SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | =========================== | |
4 | ACPI Fan Performance States | |
5 | =========================== | |
6 | ||
7 | When the optional _FPS object is present under an ACPI device representing a | |
8 | fan (for example, PNP0C0B or INT3404), the ACPI fan driver creates additional | |
9 | "state*" attributes in the sysfs directory of the ACPI device in question. | |
10 | These attributes list properties of fan performance states. | |
11 | ||
12 | For more information on _FPS refer to the ACPI specification at: | |
13 | ||
14 | http://uefi.org/specifications | |
15 | ||
16 | For instance, the contents of the INT3404 ACPI device sysfs directory | |
17 | may look as follows:: | |
18 | ||
19 | $ ls -l /sys/bus/acpi/devices/INT3404:00/ | |
20 | total 0 | |
ae99fb8b | 21 | ... |
d19e470b SP |
22 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state0 |
23 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state1 | |
24 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state10 | |
25 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state11 | |
26 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state2 | |
27 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state3 | |
28 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state4 | |
29 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state5 | |
30 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state6 | |
31 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state7 | |
32 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state8 | |
33 | -r--r--r-- 1 root root 4096 Dec 13 20:38 state9 | |
34 | -r--r--r-- 1 root root 4096 Dec 13 01:00 status | |
35 | ... | |
36 | ||
37 | where each of the "state*" files represents one performance state of the fan | |
38 | and contains a colon-separated list of 5 integer numbers (fields) with the | |
39 | following interpretation:: | |
40 | ||
ae99fb8b | 41 | control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw |
d19e470b SP |
42 | |
43 | * ``control_percent``: The percent value to be used to set the fan speed to a | |
44 | specific level using the _FSL object (0-100). | |
45 | ||
46 | * ``trip_point_index``: The active cooling trip point number that corresponds | |
47 | to this performance state (0-9). | |
48 | ||
49 | * ``speed_rpm``: Speed of the fan in rotations per minute. | |
50 | ||
51 | * ``noise_level_mdb``: Audible noise emitted by the fan in this state in | |
52 | millidecibels. | |
53 | ||
54 | * ``power_mw``: Power draw of the fan in this state in milliwatts. | |
55 | ||
56 | For example:: | |
57 | ||
58 | $cat /sys/bus/acpi/devices/INT3404:00/state1 | |
59 | 25:0:3200:12500:1250 | |
60 | ||
61 | When a given field is not populated or its value provided by the platform | |
62 | firmware is invalid, the "not-defined" string is shown instead of the value. | |
0750b8fc SP |
63 | |
64 | ACPI Fan Fine Grain Control | |
65 | ============================= | |
66 | ||
67 | When _FIF object specifies support for fine grain control, then fan speed | |
68 | can be set from 0 to 100% with the recommended minimum "step size" via | |
69 | _FSL object. User can adjust fan speed using thermal sysfs cooling device. | |
70 | ||
71 | Here use can look at fan performance states for a reference speed (speed_rpm) | |
72 | and set it by changing cooling device cur_state. If the fine grain control | |
73 | is supported then user can also adjust to some other speeds which are | |
74 | not defined in the performance states. | |
75 | ||
76 | The support of fine grain control is presented via sysfs attribute | |
77 | "fine_grain_control". If fine grain control is present, this attribute | |
78 | will show "1" otherwise "0". | |
79 | ||
80 | This sysfs attribute is presented in the same directory as performance states. | |
81 | ||
82 | ACPI Fan Performance Feedback | |
83 | ============================= | |
84 | ||
85 | The optional _FST object provides status information for the fan device. | |
86 | This includes field to provide current fan speed in revolutions per minute | |
87 | at which the fan is rotating. | |
88 | ||
89 | This speed is presented in the sysfs using the attribute "fan_speed_rpm", | |
90 | in the same directory as performance states. |