Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 ===========================
0004 ACPI Fan Performance States
0005 ===========================
0006 
0007 When the optional _FPS object is present under an ACPI device representing a
0008 fan (for example, PNP0C0B or INT3404), the ACPI fan driver creates additional
0009 "state*" attributes in the sysfs directory of the ACPI device in question.
0010 These attributes list properties of fan performance states.
0011 
0012 For more information on _FPS refer to the ACPI specification at:
0013 
0014 http://uefi.org/specifications
0015 
0016 For instance, the contents of the INT3404 ACPI device sysfs directory
0017 may look as follows::
0018 
0019  $ ls -l /sys/bus/acpi/devices/INT3404:00/
0020  total 0
0021  ...
0022  -r--r--r-- 1 root root 4096 Dec 13 20:38 state0
0023  -r--r--r-- 1 root root 4096 Dec 13 20:38 state1
0024  -r--r--r-- 1 root root 4096 Dec 13 20:38 state10
0025  -r--r--r-- 1 root root 4096 Dec 13 20:38 state11
0026  -r--r--r-- 1 root root 4096 Dec 13 20:38 state2
0027  -r--r--r-- 1 root root 4096 Dec 13 20:38 state3
0028  -r--r--r-- 1 root root 4096 Dec 13 20:38 state4
0029  -r--r--r-- 1 root root 4096 Dec 13 20:38 state5
0030  -r--r--r-- 1 root root 4096 Dec 13 20:38 state6
0031  -r--r--r-- 1 root root 4096 Dec 13 20:38 state7
0032  -r--r--r-- 1 root root 4096 Dec 13 20:38 state8
0033  -r--r--r-- 1 root root 4096 Dec 13 20:38 state9
0034  -r--r--r-- 1 root root 4096 Dec 13 01:00 status
0035  ...
0036 
0037 where each of the "state*" files represents one performance state of the fan
0038 and contains a colon-separated list of 5 integer numbers (fields) with the
0039 following interpretation::
0040 
0041   control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw
0042 
0043 * ``control_percent``: The percent value to be used to set the fan speed to a
0044   specific level using the _FSL object (0-100).
0045 
0046 * ``trip_point_index``: The active cooling trip point number that corresponds
0047   to this performance state (0-9).
0048 
0049 * ``speed_rpm``: Speed of the fan in rotations per minute.
0050 
0051 * ``noise_level_mdb``: Audible noise emitted by the fan in this state in
0052   millidecibels.
0053 
0054 * ``power_mw``: Power draw of the fan in this state in milliwatts.
0055 
0056 For example::
0057 
0058  $cat /sys/bus/acpi/devices/INT3404:00/state1
0059  25:0:3200:12500:1250
0060 
0061 When a given field is not populated or its value provided by the platform
0062 firmware is invalid, the "not-defined" string is shown instead of the value.
0063 
0064 ACPI Fan Fine Grain Control
0065 =============================
0066 
0067 When _FIF object specifies support for fine grain control, then fan speed
0068 can be set from 0 to 100% with the recommended minimum "step size" via
0069 _FSL object. User can adjust fan speed using thermal sysfs cooling device.
0070 
0071 Here use can look at fan performance states for a reference speed (speed_rpm)
0072 and set it by changing cooling device cur_state. If the fine grain control
0073 is supported then user can also adjust to some other speeds which are
0074 not defined in the performance states.
0075 
0076 The support of fine grain control is presented via sysfs attribute
0077 "fine_grain_control". If fine grain control is present, this attribute
0078 will show "1" otherwise "0".
0079 
0080 This sysfs attribute is presented in the same directory as performance states.
0081 
0082 ACPI Fan Performance Feedback
0083 =============================
0084 
0085 The optional _FST object provides status information for the fan device.
0086 This includes field to provide current fan speed in revolutions per minute
0087 at which the fan is rotating.
0088 
0089 This speed is presented in the sysfs using the attribute "fan_speed_rpm",
0090 in the same directory as performance states.