1.. SPDX-License-Identifier: GPL-2.0 2 3=========================== 4ACPI Fan Performance States 5=========================== 6 7When the optional _FPS object is present under an ACPI device representing a 8fan (for example, PNP0C0B or INT3404), the ACPI fan driver creates additional 9"state*" attributes in the sysfs directory of the ACPI device in question. 10These attributes list properties of fan performance states. 11 12For more information on _FPS refer to the ACPI specification at: 13 14http://uefi.org/specifications 15 16For instance, the contents of the INT3404 ACPI device sysfs directory 17may look as follows:: 18 19 $ ls -l /sys/bus/acpi/devices/INT3404:00/ 20 total 0 21 ... 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 37where each of the "state*" files represents one performance state of the fan 38and contains a colon-separated list of 5 integer numbers (fields) with the 39following interpretation:: 40 41 control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw 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 56For example:: 57 58 $cat /sys/bus/acpi/devices/INT3404:00/state1 59 25:0:3200:12500:1250 60 61When a given field is not populated or its value provided by the platform 62firmware is invalid, the "not-defined" string is shown instead of the value. 63 64ACPI Fan Fine Grain Control 65============================= 66 67When _FIF object specifies support for fine grain control, then fan speed 68can 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 71Here use can look at fan performance states for a reference speed (speed_rpm) 72and set it by changing cooling device cur_state. If the fine grain control 73is supported then user can also adjust to some other speeds which are 74not defined in the performance states. 75 76The support of fine grain control is presented via sysfs attribute 77"fine_grain_control". If fine grain control is present, this attribute 78will show "1" otherwise "0". 79 80This sysfs attribute is presented in the same directory as performance states. 81 82ACPI Fan Performance Feedback 83============================= 84 85The optional _FST object provides status information for the fan device. 86This includes field to provide current fan speed in revolutions per minute 87at which the fan is rotating. 88 89This speed is presented in the sysfs using the attribute "fan_speed_rpm", 90in the same directory as performance states. 91