mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
Merge 95faf6ba65 ("Merge tag 'driver-core-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core") into android-mainline
Steps on the way to 5.16-rc1 Resolves conflicts in: Documentation/ABI/stable/sysfs-module drivers/base/arch_topology.c Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I58e1037220b270da3d7860d1c110f2cc7442f508
This commit is contained in:
11
Documentation/ABI/obsolete/o2cb
Normal file
11
Documentation/ABI/obsolete/o2cb
Normal file
@@ -0,0 +1,11 @@
|
||||
What: /sys/o2cb
|
||||
Date: Dec 2005
|
||||
KernelVersion: 2.6.16
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Description: Ocfs2-tools looks at 'interface-revision' for versioning
|
||||
information. Each logmask/ file controls a set of debug prints
|
||||
and can be written into with the strings "allow", "deny", or
|
||||
"off". Reading the file returns the current state.
|
||||
Was renamed to /sys/fs/u2cb/
|
||||
Users: ocfs2-tools. It's sufficient to mail proposed changes to
|
||||
ocfs2-devel@oss.oracle.com.
|
||||
@@ -6,6 +6,7 @@ Description:
|
||||
|
||||
Since Kernel 5.11, multiple buffers are supported.
|
||||
so, it is better to use, instead:
|
||||
|
||||
/sys/bus/iio/devices/iio:deviceX/bufferY/length
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/buffer/enable
|
||||
@@ -17,6 +18,7 @@ Description:
|
||||
|
||||
Since Kernel 5.11, multiple buffers are supported.
|
||||
so, it is better to use, instead:
|
||||
|
||||
/sys/bus/iio/devices/iio:deviceX/bufferY/enable
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/scan_elements
|
||||
@@ -165,6 +167,7 @@ Description:
|
||||
|
||||
Since Kernel 5.11, multiple buffers are supported.
|
||||
so, it is better to use, instead:
|
||||
|
||||
/sys/bus/iio/devices/iio:deviceX/bufferY/watermark
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/buffer/data_available
|
||||
@@ -179,4 +182,5 @@ Description:
|
||||
|
||||
Since Kernel 5.11, multiple buffers are supported.
|
||||
so, it is better to use, instead:
|
||||
|
||||
/sys/bus/iio/devices/iio:deviceX/bufferY/data_available
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/fs/o2cb/ (was /sys/o2cb)
|
||||
What: /sys/fs/o2cb/
|
||||
Date: Dec 2005
|
||||
KernelVersion: 2.6.16
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
|
||||
@@ -232,10 +232,10 @@ Description: The RoCE type of the associated GID resides at index <gid-index>.
|
||||
or "RoCE v2" for RoCE v2 based GIDs.
|
||||
|
||||
|
||||
What: /sys/class/infiniband_mad/umadN/ibdev
|
||||
What: /sys/class/infiniband_mad/umadN/port
|
||||
What: /sys/class/infiniband_mad/issmN/ibdev
|
||||
What: /sys/class/infiniband_mad/issmN/port
|
||||
What: /sys/class/infiniband_mad/umad<N>/ibdev
|
||||
What: /sys/class/infiniband_mad/umad<N>/port
|
||||
What: /sys/class/infiniband_mad/issm<N>/ibdev
|
||||
What: /sys/class/infiniband_mad/issm<N>/port
|
||||
Date: Apr, 2005
|
||||
KernelVersion: v2.6.12
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -261,8 +261,8 @@ Description:
|
||||
userspace ABI compatibility of umad & issm devices.
|
||||
|
||||
|
||||
What: /sys/class/infiniband_verbs/uverbsN/ibdev
|
||||
What: /sys/class/infiniband_verbs/uverbsN/abi_version
|
||||
What: /sys/class/infiniband_verbs/uverbs<N>/ibdev
|
||||
What: /sys/class/infiniband_verbs/uverbs<N>/abi_version
|
||||
Date: Sept, 2005
|
||||
KernelVersion: v2.6.14
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -471,7 +471,7 @@ Description:
|
||||
=============== ======================================================
|
||||
|
||||
|
||||
What: /sys/class/infiniband/qibX/ports/N/sl2vl/[0-15]
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/sl2vl/[0-15]
|
||||
Date: May, 2010
|
||||
KernelVersion: v2.6.35
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -480,8 +480,8 @@ Description:
|
||||
the Service Level (SL). Listing the SL files returns the Virtual
|
||||
Lane (VL) as programmed by the SL.
|
||||
|
||||
What: /sys/class/infiniband/qibX/ports/N/CCMgtA/cc_settings_bin
|
||||
What: /sys/class/infiniband/qibX/ports/N/CCMgtA/cc_table_bin
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/CCMgtA/cc_settings_bin
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/CCMgtA/cc_table_bin
|
||||
Date: May, 2010
|
||||
KernelVersion: v2.6.35
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -499,11 +499,11 @@ Description:
|
||||
delay.
|
||||
=============== ================================================
|
||||
|
||||
What: /sys/class/infiniband/qibX/ports/N/linkstate/loopback
|
||||
What: /sys/class/infiniband/qibX/ports/N/linkstate/led_override
|
||||
What: /sys/class/infiniband/qibX/ports/N/linkstate/hrtbt_enable
|
||||
What: /sys/class/infiniband/qibX/ports/N/linkstate/status
|
||||
What: /sys/class/infiniband/qibX/ports/N/linkstate/status_str
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/loopback
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/led_override
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/hrtbt_enable
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/status
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/status_str
|
||||
Date: May, 2010
|
||||
KernelVersion: v2.6.35
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -523,16 +523,16 @@ Description:
|
||||
"Fatal_Hardware_Error".
|
||||
=============== ===============================================
|
||||
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rc_resends
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/seq_naks
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rdma_seq
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rnr_naks
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/other_naks
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rc_timeouts
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/look_pkts
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/pkt_drops
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/dma_wait
|
||||
What: /sys/class/infiniband/qibX/ports/N/diag_counters/unaligned
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rc_resends
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/seq_naks
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rdma_seq
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rnr_naks
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/other_naks
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rc_timeouts
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/look_pkts
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/pkt_drops
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/dma_wait
|
||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/unaligned
|
||||
Date: May, 2010
|
||||
KernelVersion: v2.6.35
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -650,9 +650,9 @@ Description:
|
||||
=============== =============================================
|
||||
|
||||
|
||||
What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_settings_bin
|
||||
What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_table_bin
|
||||
What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_prescan
|
||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_settings_bin
|
||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_table_bin
|
||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_prescan
|
||||
Date: May, 2016
|
||||
KernelVersion: v4.6
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -675,9 +675,9 @@ Description:
|
||||
disable.
|
||||
=============== ================================================
|
||||
|
||||
What: /sys/class/infiniband/hfi1_X/ports/N/sc2vl/[0-31]
|
||||
What: /sys/class/infiniband/hfi1_X/ports/N/sl2sc/[0-31]
|
||||
What: /sys/class/infiniband/hfi1_X/ports/N/vl2mtu/[0-15]
|
||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/sc2vl/[0-31]
|
||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/sl2sc/[0-31]
|
||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/vl2mtu/[0-15]
|
||||
Date: May, 2016
|
||||
KernelVersion: v4.6
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
@@ -691,8 +691,8 @@ Description:
|
||||
=============== ===================================================
|
||||
|
||||
|
||||
What: /sys/class/infiniband/hfi1_X/sdma_N/cpu_list
|
||||
What: /sys/class/infiniband/hfi1_X/sdma_N/vl
|
||||
What: /sys/class/infiniband/hfi1_X/sdma_<N>/cpu_list
|
||||
What: /sys/class/infiniband/hfi1_X/sdma_<N>/vl
|
||||
Date: Sept, 2016
|
||||
KernelVersion: v4.8
|
||||
Contact: linux-rdma@vger.kernel.org
|
||||
|
||||
@@ -195,7 +195,7 @@ Description: The "tpm_version_major" property shows the TCG spec major version
|
||||
|
||||
2
|
||||
|
||||
What: /sys/class/tpm/tpmX/pcr-H/N
|
||||
What: /sys/class/tpm/tpmX/pcr-<H>/<N>
|
||||
Date: March 2021
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-integrity@vger.kernel.org
|
||||
|
||||
@@ -23,3 +23,10 @@ Contact: Device Tree mailing list <devicetree@vger.kernel.org>
|
||||
Description:
|
||||
If CONFIG_OF is enabled, then this file is present. When
|
||||
read, it returns full name of the device node.
|
||||
|
||||
What: /sys/devices/*/dev
|
||||
Date: Jun 2006
|
||||
Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Description:
|
||||
Major and minor numbers of the character device corresponding
|
||||
to the device (in <major>:<minor> format).
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
What: /sys/module
|
||||
Description:
|
||||
The /sys/module tree consists of the following structure:
|
||||
The /sys/module tree consists of the following structure:
|
||||
|
||||
/sys/module/MODULENAME
|
||||
What: /sys/module/<MODULENAME>
|
||||
Description:
|
||||
The name of the module that is in the kernel. This
|
||||
module name will always show up if the module is loaded as a
|
||||
dynamic module. If it is built directly into the kernel, it
|
||||
@@ -12,7 +11,8 @@ Description:
|
||||
Note: The conditions of creation in the built-in case are not
|
||||
by design and may be removed in the future.
|
||||
|
||||
/sys/module/MODULENAME/parameters
|
||||
What: /sys/module/<MODULENAME>/parameters
|
||||
Description:
|
||||
This directory contains individual files that are each
|
||||
individual parameters of the module that are able to be
|
||||
changed at runtime. See the individual module
|
||||
@@ -25,7 +25,8 @@ Description:
|
||||
individual driver documentation for details as to the
|
||||
stability of the different parameters.
|
||||
|
||||
/sys/module/MODULENAME/refcnt
|
||||
What: /sys/module/<MODULENAME>/refcnt
|
||||
Description:
|
||||
If the module is able to be unloaded from the kernel, this file
|
||||
will contain the current reference count of the module.
|
||||
|
||||
@@ -33,6 +34,18 @@ Description:
|
||||
CONFIG_MODULE_UNLOAD kernel configuration value is not enabled,
|
||||
this file will not be present.
|
||||
|
||||
What: /sys/module/<MODULENAME>/srcversion
|
||||
Date: Jun 2005
|
||||
Description:
|
||||
If the module source has MODULE_VERSION, this file will contain
|
||||
the checksum of the the source code.
|
||||
|
||||
What: /sys/module/<MODULENAME>/version
|
||||
Date: Jun 2005
|
||||
Description:
|
||||
If the module source has MODULE_VERSION, this file will contain
|
||||
the version of the source code.
|
||||
|
||||
What: /sys/module/MODULENAME/scmversion
|
||||
Date: November 2020
|
||||
KernelVersion: Android Common Kernel -- android12-5.10+
|
||||
|
||||
@@ -4,23 +4,29 @@ KernelVersion: 4.14
|
||||
Description:
|
||||
The attributes:
|
||||
|
||||
========== ===================================
|
||||
c_chmask capture channel mask
|
||||
c_srate capture sampling rate
|
||||
c_ssize capture sample size (bytes)
|
||||
c_mute_present capture mute control enable
|
||||
===================== =======================================
|
||||
c_chmask capture channel mask
|
||||
c_srate capture sampling rate
|
||||
c_ssize capture sample size (bytes)
|
||||
c_mute_present capture mute control enable
|
||||
c_volume_present capture volume control enable
|
||||
c_volume_min capture volume control min value (in 1/256 dB)
|
||||
c_volume_max capture volume control max value (in 1/256 dB)
|
||||
c_volume_res capture volume control resolution (in 1/256 dB)
|
||||
p_chmask playback channel mask
|
||||
p_srate playback sampling rate
|
||||
p_ssize playback sample size (bytes)
|
||||
p_mute_present playback mute control enable
|
||||
c_volume_min capture volume control min value
|
||||
(in 1/256 dB)
|
||||
c_volume_max capture volume control max value
|
||||
(in 1/256 dB)
|
||||
c_volume_res capture volume control resolution
|
||||
(in 1/256 dB)
|
||||
p_chmask playback channel mask
|
||||
p_srate playback sampling rate
|
||||
p_ssize playback sample size (bytes)
|
||||
p_mute_present playback mute control enable
|
||||
p_volume_present playback volume control enable
|
||||
p_volume_min playback volume control min value (in 1/256 dB)
|
||||
p_volume_max playback volume control max value (in 1/256 dB)
|
||||
p_volume_res playback volume control resolution (in 1/256 dB)
|
||||
req_number the number of pre-allocated request
|
||||
for both capture and playback
|
||||
========== ===================================
|
||||
p_volume_min playback volume control min value
|
||||
(in 1/256 dB)
|
||||
p_volume_max playback volume control max value
|
||||
(in 1/256 dB)
|
||||
p_volume_res playback volume control resolution
|
||||
(in 1/256 dB)
|
||||
req_number the number of pre-allocated request
|
||||
for both capture and playback
|
||||
===================== =======================================
|
||||
|
||||
@@ -4,23 +4,30 @@ KernelVersion: 3.18
|
||||
Description:
|
||||
The attributes:
|
||||
|
||||
========= ============================
|
||||
c_chmask capture channel mask
|
||||
c_srate capture sampling rate
|
||||
c_ssize capture sample size (bytes)
|
||||
c_sync capture synchronization type (async/adaptive)
|
||||
c_mute_present capture mute control enable
|
||||
===================== =======================================
|
||||
c_chmask capture channel mask
|
||||
c_srate capture sampling rate
|
||||
c_ssize capture sample size (bytes)
|
||||
c_sync capture synchronization type
|
||||
(async/adaptive)
|
||||
c_mute_present capture mute control enable
|
||||
c_volume_present capture volume control enable
|
||||
c_volume_min capture volume control min value (in 1/256 dB)
|
||||
c_volume_max capture volume control max value (in 1/256 dB)
|
||||
c_volume_res capture volume control resolution (in 1/256 dB)
|
||||
fb_max maximum extra bandwidth in async mode
|
||||
p_chmask playback channel mask
|
||||
p_srate playback sampling rate
|
||||
p_ssize playback sample size (bytes)
|
||||
p_mute_present playback mute control enable
|
||||
c_volume_min capture volume control min value
|
||||
(in 1/256 dB)
|
||||
c_volume_max capture volume control max value
|
||||
(in 1/256 dB)
|
||||
c_volume_res capture volume control resolution
|
||||
(in 1/256 dB)
|
||||
fb_max maximum extra bandwidth in async mode
|
||||
p_chmask playback channel mask
|
||||
p_srate playback sampling rate
|
||||
p_ssize playback sample size (bytes)
|
||||
p_mute_present playback mute control enable
|
||||
p_volume_present playback volume control enable
|
||||
p_volume_min playback volume control min value (in 1/256 dB)
|
||||
p_volume_max playback volume control max value (in 1/256 dB)
|
||||
p_volume_res playback volume control resolution (in 1/256 dB)
|
||||
========= ============================
|
||||
p_volume_min playback volume control min value
|
||||
(in 1/256 dB)
|
||||
p_volume_max playback volume control max value
|
||||
(in 1/256 dB)
|
||||
p_volume_res playback volume control resolution
|
||||
(in 1/256 dB)
|
||||
===================== =======================================
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
What: security/evm
|
||||
What: /sys/kernel/security/evm
|
||||
What: /sys/kernel/security/*/evm
|
||||
Date: March 2011
|
||||
Contact: Mimi Zohar <zohar@us.ibm.com>
|
||||
Description:
|
||||
@@ -93,7 +94,7 @@ Description:
|
||||
core/ima-setup) have support for loading keys at boot
|
||||
time.
|
||||
|
||||
What: security/integrity/evm/evm_xattrs
|
||||
What: /sys/kernel/security/*/evm/evm_xattrs
|
||||
Date: April 2018
|
||||
Contact: Matthew Garrett <mjg59@google.com>
|
||||
Description:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: security/ima/policy
|
||||
What: /sys/kernel/security/*/ima/policy
|
||||
Date: May 2008
|
||||
Contact: Mimi Zohar <zohar@us.ibm.com>
|
||||
Description:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
What: /sys/fs/pstore/... (or /dev/pstore/...)
|
||||
What: /sys/fs/pstore/...
|
||||
What: /dev/pstore/...
|
||||
Date: March 2011
|
||||
KernelVersion: 2.6.39
|
||||
Contact: tony.luck@intel.com
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/class/ata_...
|
||||
What: /sys/class/ata_*
|
||||
Description:
|
||||
Provide a place in sysfs for storing the ATA topology of the
|
||||
system. This allows retrieving various information about ATA
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/
|
||||
What: /sys/class/mdio_bus/.../statistics/
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -7,6 +8,7 @@ Description:
|
||||
MDIO bus address statistics.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/transfers
|
||||
What: /sys/class/mdio_bus/.../transfers
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -14,6 +16,7 @@ Description:
|
||||
Total number of transfers for this MDIO bus.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/errors
|
||||
What: /sys/class/mdio_bus/.../statistics/errors
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -21,6 +24,7 @@ Description:
|
||||
Total number of transfer errors for this MDIO bus.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/writes
|
||||
What: /sys/class/mdio_bus/.../statistics/writes
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -28,6 +32,7 @@ Description:
|
||||
Total number of write transactions for this MDIO bus.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/reads
|
||||
What: /sys/class/mdio_bus/.../statistics/reads
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -35,6 +40,7 @@ Description:
|
||||
Total number of read transactions for this MDIO bus.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/transfers_<addr>
|
||||
What: /sys/class/mdio_bus/.../statistics/transfers_<addr>
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -42,6 +48,7 @@ Description:
|
||||
Total number of transfers for this MDIO bus address.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/errors_<addr>
|
||||
What: /sys/class/mdio_bus/.../statistics/errors_<addr>
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -49,6 +56,7 @@ Description:
|
||||
Total number of transfer errors for this MDIO bus address.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/writes_<addr>
|
||||
What: /sys/class/mdio_bus/.../statistics/writes_<addr>
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
@@ -56,6 +64,7 @@ Description:
|
||||
Total number of write transactions for this MDIO bus address.
|
||||
|
||||
What: /sys/bus/mdio_bus/devices/.../statistics/reads_<addr>
|
||||
What: /sys/class/mdio_bus/.../statistics/reads_<addr>
|
||||
Date: January 2020
|
||||
KernelVersion: 5.6
|
||||
Contact: netdev@vger.kernel.org
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
What: /sys/bus/pci/drivers/.../bind
|
||||
What: /sys/devices/pciX/.../bind
|
||||
Date: December 2003
|
||||
Contact: linux-pci@vger.kernel.org
|
||||
Description:
|
||||
@@ -14,6 +15,7 @@ Description:
|
||||
(Note: kernels before 2.6.28 may require echo -n).
|
||||
|
||||
What: /sys/bus/pci/drivers/.../unbind
|
||||
What: /sys/devices/pciX/.../unbind
|
||||
Date: December 2003
|
||||
Contact: linux-pci@vger.kernel.org
|
||||
Description:
|
||||
@@ -29,6 +31,7 @@ Description:
|
||||
(Note: kernels before 2.6.28 may require echo -n).
|
||||
|
||||
What: /sys/bus/pci/drivers/.../new_id
|
||||
What: /sys/devices/pciX/.../new_id
|
||||
Date: December 2003
|
||||
Contact: linux-pci@vger.kernel.org
|
||||
Description:
|
||||
@@ -47,6 +50,7 @@ Description:
|
||||
# echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id
|
||||
|
||||
What: /sys/bus/pci/drivers/.../remove_id
|
||||
What: /sys/devices/pciX/.../remove_id
|
||||
Date: February 2009
|
||||
Contact: Chris Wright <chrisw@sous-sol.org>
|
||||
Description:
|
||||
@@ -160,7 +164,7 @@ Description:
|
||||
If the underlying VPD has a writable section then the
|
||||
corresponding section of this file will be writable.
|
||||
|
||||
What: /sys/bus/pci/devices/.../virtfnN
|
||||
What: /sys/bus/pci/devices/.../virtfn<N>
|
||||
Date: March 2009
|
||||
Contact: Yu Zhao <yu.zhao@intel.com>
|
||||
Description:
|
||||
@@ -187,6 +191,24 @@ Description:
|
||||
The symbolic link points to the PCI device sysfs entry of the
|
||||
Physical Function this device associates with.
|
||||
|
||||
What: /sys/bus/pci/devices/.../modalias
|
||||
Date: May 2005
|
||||
Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Description:
|
||||
This attribute indicates the PCI ID of the device object.
|
||||
|
||||
That is in the format:
|
||||
pci:vXXXXXXXXdXXXXXXXXsvXXXXXXXXsdXXXXXXXXbcXXscXXiXX,
|
||||
where:
|
||||
|
||||
- vXXXXXXXX contains the vendor ID;
|
||||
- dXXXXXXXX contains the device ID;
|
||||
- svXXXXXXXX contains the sub-vendor ID;
|
||||
- sdXXXXXXXX contains the subsystem device ID;
|
||||
- bcXX contains the device class;
|
||||
- scXX contains the device subclass;
|
||||
- iXX contains the device class programming interface.
|
||||
|
||||
What: /sys/bus/pci/slots/.../module
|
||||
Date: June 2009
|
||||
Contact: linux-pci@vger.kernel.org
|
||||
|
||||
@@ -42,3 +42,15 @@ Date: August 2021
|
||||
Contact: Barry Song <song.bao.hua@hisilicon.com>
|
||||
Description:
|
||||
This attribute will show "msi" if <N> is a valid msi irq
|
||||
|
||||
What: /sys/bus/platform/devices/.../modalias
|
||||
Description:
|
||||
Same as MODALIAS in the uevent at device creation.
|
||||
|
||||
A platform device that it is exposed via devicetree uses:
|
||||
|
||||
- of:N`of node name`T`type`
|
||||
|
||||
Other platform devices use, instead:
|
||||
|
||||
- platform:`driver name`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>
|
||||
Description:
|
||||
For each RapidIO device, the RapidIO subsystem creates files in
|
||||
an individual subdirectory with the following name format of
|
||||
@@ -29,7 +29,7 @@ Description:
|
||||
Attributes Common for All RapidIO Devices
|
||||
-----------------------------------------
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/did
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/did
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -37,7 +37,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
Description:
|
||||
(RO) returns the device identifier
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/vid
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/vid
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -45,7 +45,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
Description:
|
||||
(RO) returns the device vendor identifier
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/device_rev
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/device_rev
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -53,7 +53,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
Description:
|
||||
(RO) returns the device revision level
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/asm_did
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/asm_did
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -61,7 +61,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
Description:
|
||||
(RO) returns identifier for the assembly containing the device
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/asm_rev
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/asm_rev
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -70,7 +70,7 @@ Description:
|
||||
(RO) returns revision level of the assembly containing the
|
||||
device
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/asm_vid
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/asm_vid
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -79,7 +79,7 @@ Description:
|
||||
(RO) returns vendor identifier of the assembly containing the
|
||||
device
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/destid
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/destid
|
||||
Date: Mar, 2011
|
||||
KernelVersion: v2.6.3
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -88,7 +88,7 @@ Description:
|
||||
(RO) returns device destination ID assigned by the enumeration
|
||||
routine
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/lprev
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/lprev
|
||||
Date: Mar, 2011
|
||||
KernelVersion: v2.6.39
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -97,7 +97,7 @@ Description:
|
||||
(RO) returns name of previous device (switch) on the path to the
|
||||
device that that owns this attribute
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/modalias
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/modalias
|
||||
Date: Jul, 2013
|
||||
KernelVersion: v3.11
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -105,7 +105,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
Description:
|
||||
(RO) returns the device modalias
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:d:iiii/config
|
||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/config
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -128,7 +128,7 @@ device-specific sysfs attributes by specifying a callback function that may be
|
||||
set by the switch initialization routine during enumeration or discovery
|
||||
process.
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:s:iiii/routes
|
||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/routes
|
||||
Date: Nov, 2005
|
||||
KernelVersion: v2.6.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -138,7 +138,7 @@ Description:
|
||||
This attribute reports only valid routing table entries, one
|
||||
line for each entry.
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:s:iiii/destid
|
||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/destid
|
||||
Date: Mar, 2011
|
||||
KernelVersion: v2.6.3
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -147,7 +147,7 @@ Description:
|
||||
(RO) device destination ID of the associated device that defines
|
||||
a route to the switch
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:s:iiii/hopcount
|
||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/hopcount
|
||||
Date: Mar, 2011
|
||||
KernelVersion: v2.6.39
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -155,7 +155,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
Description:
|
||||
(RO) number of hops on the path to the switch
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:s:iiii/lnext
|
||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/lnext
|
||||
Date: Mar, 2011
|
||||
KernelVersion: v2.6.39
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -172,7 +172,7 @@ Device-specific Switch Attributes
|
||||
|
||||
IDT_GEN2-
|
||||
|
||||
What: /sys/bus/rapidio/devices/nn:s:iiii/errlog
|
||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/errlog
|
||||
Date: Oct, 2010
|
||||
KernelVersion: v2.6.37
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/bus/usb/devices/INTERFACE/authorized
|
||||
What: /sys/bus/usb/devices/<INTERFACE>/authorized
|
||||
Date: August 2015
|
||||
Description:
|
||||
This allows to authorize (1) or deauthorize (0)
|
||||
@@ -166,14 +166,14 @@ Description:
|
||||
The file will be present for all speeds of USB devices, and will
|
||||
always read "no" for USB 1.1 and USB 2.0 devices.
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>
|
||||
Date: August 2012
|
||||
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
||||
Description:
|
||||
The /sys/bus/usb/devices/.../(hub interface)/portX
|
||||
The /sys/bus/usb/devices/.../<hub_interface>/port<X>
|
||||
is usb port device's sysfs directory.
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/connect_type
|
||||
Date: January 2013
|
||||
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
||||
Description:
|
||||
@@ -182,7 +182,7 @@ Description:
|
||||
The file will read "hotplug", "hardwired" and "not used" if the
|
||||
information is available, and "unknown" otherwise.
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX/location
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/location
|
||||
Date: October 2018
|
||||
Contact: Bjørn Mork <bjorn@mork.no>
|
||||
Description:
|
||||
@@ -192,7 +192,7 @@ Description:
|
||||
raw location value as a hex integer.
|
||||
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX/quirks
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/quirks
|
||||
Date: May 2018
|
||||
Contact: Nicolas Boichat <drinkcat@chromium.org>
|
||||
Description:
|
||||
@@ -216,7 +216,7 @@ Description:
|
||||
used to help make enumeration work better on some high speed
|
||||
devices.
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX/over_current_count
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/over_current_count
|
||||
Date: February 2018
|
||||
Contact: Richard Leitner <richard.leitner@skidata.com>
|
||||
Description:
|
||||
@@ -230,10 +230,10 @@ Description:
|
||||
Any time this value changes the corresponding hub device will send a
|
||||
udev event with the following attributes::
|
||||
|
||||
OVER_CURRENT_PORT=/sys/bus/usb/devices/.../(hub interface)/portX
|
||||
OVER_CURRENT_PORT=/sys/bus/usb/devices/.../<hub_interface>/port<X>
|
||||
OVER_CURRENT_COUNT=[current value of this sysfs attribute]
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/usb3_lpm_permit
|
||||
Date: November 2015
|
||||
Contact: Lu Baolu <baolu.lu@linux.intel.com>
|
||||
Description:
|
||||
@@ -288,3 +288,277 @@ Description:
|
||||
USB 3.2 adds Dual-lane support, 2 rx and 2 tx -lanes over Type-C.
|
||||
Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per
|
||||
direction. Devices before USB 3.2 are single lane (tx_lanes = 1)
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bAlternateSetting
|
||||
Description:
|
||||
The current interface alternate setting number, in decimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bcdDevice
|
||||
Description:
|
||||
The device's release number, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bConfigurationValue
|
||||
Description:
|
||||
While a USB device typically have just one configuration
|
||||
setting, some devices support multiple configurations.
|
||||
|
||||
This value shows the current configuration, in decimal.
|
||||
|
||||
Changing its value will change the device's configuration
|
||||
to another setting.
|
||||
|
||||
The number of configurations supported by a device is at:
|
||||
|
||||
/sys/bus/usb/devices/usbX/bNumConfigurations
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bDeviceClass
|
||||
Description:
|
||||
Class code of the device, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bDeviceProtocol
|
||||
Description:
|
||||
Protocol code of the device, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bDeviceSubClass
|
||||
Description:
|
||||
Subclass code of the device, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bInterfaceClass
|
||||
Description:
|
||||
Class code of the interface, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bInterfaceNumber
|
||||
Description:
|
||||
Interface number, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bInterfaceProtocol
|
||||
Description:
|
||||
Protocol code of the interface, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bInterfaceSubClass
|
||||
Description:
|
||||
Subclass code of the interface, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bmAttributes
|
||||
Description:
|
||||
Attributes of the current configuration, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bMaxPacketSize0
|
||||
Description:
|
||||
Maximum endpoint 0 packet size, in decimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bMaxPower
|
||||
Description:
|
||||
Maximum power consumption of the active configuration of
|
||||
the device, in miliamperes.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bNumConfigurations
|
||||
Description:
|
||||
Number of the possible configurations of the device, in
|
||||
decimal. The current configuration is controlled via:
|
||||
|
||||
/sys/bus/usb/devices/usbX/bConfigurationValue
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bNumEndpoints
|
||||
Description:
|
||||
Number of endpoints used on this interface, in hexadecimal.
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/bNumInterfaces
|
||||
Description:
|
||||
Number of interfaces on this device, in decimal.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/busnum
|
||||
Description:
|
||||
Number of the bus.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/configuration
|
||||
Description:
|
||||
Contents of the string descriptor associated with the
|
||||
current configuration. It may include the firmware version
|
||||
of a device and/or its serial number.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/descriptors
|
||||
Description:
|
||||
Contains the interface descriptors, in binary.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/idProduct
|
||||
Description:
|
||||
Product ID, in hexadecimal.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/idVendor
|
||||
Description:
|
||||
Vendor ID, in hexadecimal.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/devspec
|
||||
Description:
|
||||
Displays the Device Tree Open Firmware node of the interface.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/avoid_reset_quirk
|
||||
Description:
|
||||
Most devices have this set to zero.
|
||||
|
||||
If the value is 1, enable a USB quirk that prevents this
|
||||
device to use reset.
|
||||
|
||||
(read/write)
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/devnum
|
||||
Description:
|
||||
USB interface device number, in decimal.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/devpath
|
||||
Description:
|
||||
String containing the USB interface device path.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/manufacturer
|
||||
Description:
|
||||
Vendor specific string containing the name of the
|
||||
manufacturer of the device.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/maxchild
|
||||
Description:
|
||||
Number of ports of an USB hub
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/persist
|
||||
Description:
|
||||
Keeps the device even if it gets disconnected.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/product
|
||||
Description:
|
||||
Vendor specific string containing the name of the
|
||||
device's product.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/speed
|
||||
Description:
|
||||
Shows the device's max speed, according to the USB version,
|
||||
in Mbps.
|
||||
Can be:
|
||||
|
||||
======= ====================
|
||||
Unknown speed unknown
|
||||
1.5 Low speed
|
||||
15 Full speed
|
||||
480 High Speed
|
||||
5000 Super Speed
|
||||
10000 Super Speed+
|
||||
20000 Super Speed+ Gen 2x2
|
||||
======= ====================
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/supports_autosuspend
|
||||
Description:
|
||||
Returns 1 if the device doesn't support autosuspend.
|
||||
Otherwise, returns 0.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/urbnum
|
||||
Description:
|
||||
Number of URBs submitted for the whole device.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/version
|
||||
Description:
|
||||
String containing the USB device version, as encoded
|
||||
at the BCD descriptor.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/power/autosuspend
|
||||
Description:
|
||||
Time in milliseconds for the device to autosuspend. If the
|
||||
value is negative, then autosuspend is prevented.
|
||||
|
||||
(read/write)
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/power/active_duration
|
||||
Description:
|
||||
The total time the device has not been suspended.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/power/connected_duration
|
||||
Description:
|
||||
The total time (in msec) that the device has been connected.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/power/level
|
||||
Description:
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bEndpointAddress
|
||||
Description:
|
||||
The address of the endpoint described by this descriptor,
|
||||
in hexadecimal. The endpoint direction on this bitmapped field
|
||||
is also shown at:
|
||||
|
||||
/sys/bus/usb/devices/usbX/ep_<N>/direction
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bInterval
|
||||
Description:
|
||||
The interval of the endpoint as described on its descriptor,
|
||||
in hexadecimal. The actual interval depends on the version
|
||||
of the USB. Also shown in time units at
|
||||
/sys/bus/usb/devices/usbX/ep_<N>/interval.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bLength
|
||||
Description:
|
||||
Number of bytes of the endpoint descriptor, in hexadecimal.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bmAttributes
|
||||
Description:
|
||||
Attributes which apply to the endpoint as described on its
|
||||
descriptor, in hexadecimal. The endpoint type on this
|
||||
bitmapped field is also shown at:
|
||||
|
||||
/sys/bus/usb/devices/usbX/ep_<N>/type
|
||||
|
||||
See USB specs for its meaning.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/direction
|
||||
Description:
|
||||
Direction of the endpoint. Can be:
|
||||
|
||||
- both (on control endpoints)
|
||||
- in
|
||||
- out
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/interval
|
||||
Description:
|
||||
Interval for polling endpoint for data transfers, in
|
||||
milisseconds or microseconds.
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/type
|
||||
Description:
|
||||
Descriptor type. Can be:
|
||||
|
||||
- Control
|
||||
- Isoc
|
||||
- Bulk
|
||||
- Interrupt
|
||||
- unknown
|
||||
|
||||
What: /sys/bus/usb/devices/usbX/ep_<N>/wMaxPacketSize
|
||||
Description:
|
||||
Maximum packet size this endpoint is capable of
|
||||
sending or receiving, in hexadecimal.
|
||||
|
||||
@@ -23,14 +23,17 @@ default
|
||||
The default backing dev, used for non-block device backed
|
||||
filesystems which do not provide their own BDI.
|
||||
|
||||
Files under /sys/class/bdi/<bdi>/
|
||||
|
||||
read_ahead_kb (read-write)
|
||||
|
||||
What: /sys/class/bdi/<bdi>/read_ahead_kb
|
||||
Date: January 2008
|
||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
Description:
|
||||
Size of the read-ahead window in kilobytes
|
||||
|
||||
min_ratio (read-write)
|
||||
|
||||
(read-write)
|
||||
What: /sys/class/bdi/<bdi>/min_ratio
|
||||
Date: January 2008
|
||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
Description:
|
||||
Under normal circumstances each device is given a part of the
|
||||
total write-back cache that relates to its current average
|
||||
writeout speed in relation to the other devices.
|
||||
@@ -39,8 +42,12 @@ min_ratio (read-write)
|
||||
percentage of the write-back cache to a particular device.
|
||||
For example, this is useful for providing a minimum QoS.
|
||||
|
||||
max_ratio (read-write)
|
||||
(read-write)
|
||||
|
||||
What: /sys/class/bdi/<bdi>/max_ratio
|
||||
Date: January 2008
|
||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
Description:
|
||||
Allows limiting a particular device to use not more than the
|
||||
given percentage of the write-back cache. This is useful in
|
||||
situations where we want to avoid one device taking all or
|
||||
@@ -48,7 +55,12 @@ max_ratio (read-write)
|
||||
mount that is prone to get stuck, or a FUSE mount which cannot
|
||||
be trusted to play fair.
|
||||
|
||||
stable_pages_required (read-only)
|
||||
|
||||
(read-write)
|
||||
What: /sys/class/bdi/<bdi>/stable_pages_required
|
||||
Date: January 2008
|
||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
Description:
|
||||
If set, the backing device requires that all pages comprising a write
|
||||
request must not be changed until writeout is complete.
|
||||
|
||||
(read-only)
|
||||
|
||||
@@ -166,10 +166,11 @@ Description: read only
|
||||
Decimal value of the Per Process MMIO space length.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>m/pp_mmio_off (not in a guest)
|
||||
What: /sys/class/cxl/<afu>m/pp_mmio_off
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
(not in a guest)
|
||||
Decimal value of the Per Process MMIO space offset.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
@@ -190,28 +191,31 @@ Description: read only
|
||||
Identifies the revision level of the PSL.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/base_image (not in a guest)
|
||||
What: /sys/class/cxl/<card>/base_image
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
(not in a guest)
|
||||
Identifies the revision level of the base image for devices
|
||||
that support loadable PSLs. For FPGAs this field identifies
|
||||
the image contained in the on-adapter flash which is loaded
|
||||
during the initial program load.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/image_loaded (not in a guest)
|
||||
What: /sys/class/cxl/<card>/image_loaded
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
(not in a guest)
|
||||
Will return "user" or "factory" depending on the image loaded
|
||||
onto the card.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/load_image_on_perst (not in a guest)
|
||||
What: /sys/class/cxl/<card>/load_image_on_perst
|
||||
Date: December 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read/write
|
||||
(not in a guest)
|
||||
Valid entries are "none", "user", and "factory".
|
||||
"none" means PERST will not cause image to be loaded to the
|
||||
card. A power cycle is required to load the image.
|
||||
@@ -235,10 +239,11 @@ Description: write only
|
||||
contexts on the card AFUs.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/perst_reloads_same_image (not in a guest)
|
||||
What: /sys/class/cxl/<card>/perst_reloads_same_image
|
||||
Date: July 2015
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read/write
|
||||
(not in a guest)
|
||||
Trust that when an image is reloaded via PERST, it will not
|
||||
have changed.
|
||||
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
What: /sys/class/devfreq-event/event(x)/
|
||||
What: /sys/class/devfreq-event/event<x>/
|
||||
Date: January 2017
|
||||
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
||||
Description:
|
||||
Provide a place in sysfs for the devfreq-event objects.
|
||||
This allows accessing various devfreq-event specific variables.
|
||||
The name of devfreq-event object denoted as 'event(x)' which
|
||||
The name of devfreq-event object denoted as 'event<x>' which
|
||||
includes the unique number of 'x' for each devfreq-event object.
|
||||
|
||||
What: /sys/class/devfreq-event/event(x)/name
|
||||
What: /sys/class/devfreq-event/event<x>/name
|
||||
Date: January 2017
|
||||
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
||||
Description:
|
||||
The /sys/class/devfreq-event/event(x)/name attribute contains
|
||||
The /sys/class/devfreq-event/event<x>/name attribute contains
|
||||
the name of the devfreq-event object. This attribute is
|
||||
read-only.
|
||||
|
||||
What: /sys/class/devfreq-event/event(x)/enable_count
|
||||
What: /sys/class/devfreq-event/event<x>/enable_count
|
||||
Date: January 2017
|
||||
Contact: Chanwoo Choi <cw00.choi@samsung.com>
|
||||
Description:
|
||||
The /sys/class/devfreq-event/event(x)/enable_count attribute
|
||||
The /sys/class/devfreq-event/event<x>/enable_count attribute
|
||||
contains the reference count to enable the devfreq-event
|
||||
object. If the device is enabled, the value of attribute is
|
||||
greater than zero.
|
||||
|
||||
@@ -65,19 +65,19 @@ Description:
|
||||
interface associated with each cable cannot update
|
||||
multiple cable states of an extcon device simultaneously.
|
||||
|
||||
What: /sys/class/extcon/.../cable.x/name
|
||||
What: /sys/class/extcon/.../cable.X/name
|
||||
Date: February 2012
|
||||
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
||||
Description:
|
||||
The /sys/class/extcon/.../cable.x/name shows the name of cable
|
||||
"x" (integer between 0 and 31) of an extcon device.
|
||||
The /sys/class/extcon/.../cable.X/name shows the name of cable
|
||||
"X" (integer between 0 and 31) of an extcon device.
|
||||
|
||||
What: /sys/class/extcon/.../cable.x/state
|
||||
What: /sys/class/extcon/.../cable.X/state
|
||||
Date: February 2012
|
||||
Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
|
||||
Description:
|
||||
The /sys/class/extcon/.../cable.x/state shows and stores the
|
||||
state of cable "x" (integer between 0 and 31) of an extcon
|
||||
The /sys/class/extcon/.../cable.X/state shows and stores the
|
||||
state of cable "X" (integer between 0 and 31) of an extcon
|
||||
device. The state value is either 0 (detached) or 1
|
||||
(attached).
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/class/gnss/gnssN/type
|
||||
What: /sys/class/gnss/gnss<N>/type
|
||||
Date: May 2018
|
||||
KernelVersion: 4.18
|
||||
Contact: Johan Hovold <johan@kernel.org>
|
||||
|
||||
932
Documentation/ABI/testing/sysfs-class-hwmon
Normal file
932
Documentation/ABI/testing/sysfs-class-hwmon
Normal file
@@ -0,0 +1,932 @@
|
||||
What: /sys/class/hwmon/hwmonX/name
|
||||
Description:
|
||||
The chip name.
|
||||
This should be a short, lowercase string, not containing
|
||||
whitespace, dashes, or the wildcard character '*'.
|
||||
This attribute represents the chip name. It is the only
|
||||
mandatory attribute.
|
||||
I2C devices get this attribute created automatically.
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/update_interval
|
||||
Description:
|
||||
The interval at which the chip will update readings.
|
||||
Unit: millisecond
|
||||
|
||||
RW
|
||||
|
||||
Some devices have a variable update rate or interval.
|
||||
This attribute can be used to change it to the desired value.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_min
|
||||
Description:
|
||||
Voltage min value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_lcrit
|
||||
Description:
|
||||
Voltage critical min value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
If voltage drops to or below this limit, the system may
|
||||
take drastic action such as power down or reset. At the very
|
||||
least, it should report a fault.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_max
|
||||
Description:
|
||||
Voltage max value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_crit
|
||||
Description:
|
||||
Voltage critical max value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
If voltage reaches or exceeds this limit, the system may
|
||||
take drastic action such as power down or reset. At the very
|
||||
least, it should report a fault.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_input
|
||||
Description:
|
||||
Voltage input value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
Voltage measured on the chip pin.
|
||||
|
||||
Actual voltage depends on the scaling resistors on the
|
||||
motherboard, as recommended in the chip datasheet.
|
||||
|
||||
This varies by chip and by motherboard.
|
||||
Because of this variation, values are generally NOT scaled
|
||||
by the chip driver, and must be done by the application.
|
||||
However, some drivers (notably lm87 and via686a)
|
||||
do scale, because of internal resistors built into a chip.
|
||||
These drivers will output the actual voltage. Rule of
|
||||
thumb: drivers should report the voltage values at the
|
||||
"pins" of the chip.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_average
|
||||
Description:
|
||||
Average voltage
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_lowest
|
||||
Description:
|
||||
Historical minimum voltage
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_highest
|
||||
Description:
|
||||
Historical maximum voltage
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_reset_history
|
||||
Description:
|
||||
Reset inX_lowest and inX_highest
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/in_reset_history
|
||||
Description:
|
||||
Reset inX_lowest and inX_highest for all sensors
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_label
|
||||
Description:
|
||||
Suggested voltage channel label.
|
||||
|
||||
Text string
|
||||
|
||||
Should only be created if the driver has hints about what
|
||||
this voltage channel is being used for, and user-space
|
||||
doesn't. In all other cases, the label is provided by
|
||||
user-space.
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_enable
|
||||
Description:
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/cpuY_vid
|
||||
Description:
|
||||
CPU core reference voltage.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
Not always correct.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/vrm
|
||||
Description:
|
||||
Voltage Regulator Module version number.
|
||||
|
||||
RW (but changing it should no more be necessary)
|
||||
|
||||
Originally the VRM standard version multiplied by 10, but now
|
||||
an arbitrary number, as not all standards have a version
|
||||
number.
|
||||
|
||||
Affects the way the driver calculates the CPU core reference
|
||||
voltage from the vid pins.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_rated_min
|
||||
Description:
|
||||
Minimum rated voltage.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/inY_rated_max
|
||||
Description:
|
||||
Maximum rated voltage.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_min
|
||||
Description:
|
||||
Fan minimum value
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_max
|
||||
Description:
|
||||
Fan maximum value
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
Only rarely supported by the hardware.
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_input
|
||||
Description:
|
||||
Fan input value.
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_div
|
||||
Description:
|
||||
Fan divisor.
|
||||
|
||||
Integer value in powers of two (1, 2, 4, 8, 16, 32, 64, 128).
|
||||
|
||||
RW
|
||||
|
||||
Some chips only support values 1, 2, 4 and 8.
|
||||
Note that this is actually an internal clock divisor, which
|
||||
affects the measurable speed range, not the read value.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_pulses
|
||||
Description:
|
||||
Number of tachometer pulses per fan revolution.
|
||||
|
||||
Integer value, typically between 1 and 4.
|
||||
|
||||
RW
|
||||
|
||||
This value is a characteristic of the fan connected to the
|
||||
device's input, so it has to be set in accordance with the fan
|
||||
model.
|
||||
|
||||
Should only be created if the chip has a register to configure
|
||||
the number of pulses. In the absence of such a register (and
|
||||
thus attribute) the value assumed by all devices is 2 pulses
|
||||
per fan revolution.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_target
|
||||
Description:
|
||||
Desired fan speed
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
RW
|
||||
|
||||
Only makes sense if the chip supports closed-loop fan speed
|
||||
control based on the measured fan speed.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_label
|
||||
Description:
|
||||
Suggested fan channel label.
|
||||
|
||||
Text string
|
||||
|
||||
Should only be created if the driver has hints about what
|
||||
this fan channel is being used for, and user-space doesn't.
|
||||
In all other cases, the label is provided by user-space.
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/fanY_enable
|
||||
Description:
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/pwmY
|
||||
Description:
|
||||
Pulse width modulation fan control.
|
||||
|
||||
Integer value in the range 0 to 255
|
||||
|
||||
RW
|
||||
|
||||
255 is max or 100%.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_enable
|
||||
Description:
|
||||
Fan speed control method:
|
||||
|
||||
- 0: no fan speed control (i.e. fan at full speed)
|
||||
- 1: manual fan speed control enabled (using `pwmY`)
|
||||
- 2+: automatic fan speed control enabled
|
||||
|
||||
Check individual chip documentation files for automatic mode
|
||||
details.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_mode
|
||||
Description:
|
||||
- 0: DC mode (direct current)
|
||||
- 1: PWM mode (pulse-width modulation)
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_freq
|
||||
Description:
|
||||
Base PWM frequency in Hz.
|
||||
|
||||
Only possibly available when pwmN_mode is PWM, but not always
|
||||
present even then.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_auto_channels_temp
|
||||
Description:
|
||||
Select which temperature channels affect this PWM output in
|
||||
auto mode.
|
||||
|
||||
Bitfield, 1 is temp1, 2 is temp2, 4 is temp3 etc...
|
||||
Which values are possible depend on the chip used.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_auto_pointZ_pwm
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_auto_pointZ_temp
|
||||
What: /sys/class/hwmon/hwmonX/pwmY_auto_pointZ_temp_hyst
|
||||
Description:
|
||||
Define the PWM vs temperature curve.
|
||||
|
||||
Number of trip points is chip-dependent. Use this for chips
|
||||
which associate trip points to PWM output channels.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_auto_pointZ_pwm
|
||||
What: /sys/class/hwmon/hwmonX/tempY_auto_pointZ_temp
|
||||
What: /sys/class/hwmon/hwmonX/tempY_auto_pointZ_temp_hyst
|
||||
Description:
|
||||
Define the PWM vs temperature curve.
|
||||
|
||||
Number of trip points is chip-dependent. Use this for chips
|
||||
which associate trip points to temperature channels.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_type
|
||||
Description:
|
||||
Sensor type selection.
|
||||
|
||||
Integers 1 to 6
|
||||
|
||||
RW
|
||||
|
||||
- 1: CPU embedded diode
|
||||
- 2: 3904 transistor
|
||||
- 3: thermal diode
|
||||
- 4: thermistor
|
||||
- 5: AMD AMDSI
|
||||
- 6: Intel PECI
|
||||
|
||||
Not all types are supported by all chips
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_max
|
||||
Description:
|
||||
Temperature max value.
|
||||
|
||||
Unit: millidegree Celsius (or millivolt, see below)
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_min
|
||||
Description:
|
||||
Temperature min value.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_max_hyst
|
||||
Description:
|
||||
Temperature hysteresis value for max limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the max value.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_min_hyst
|
||||
Description:
|
||||
Temperature hysteresis value for min limit.
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the min value.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_input
|
||||
Description:
|
||||
Temperature input value.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_crit
|
||||
Description:
|
||||
Temperature critical max value, typically greater than
|
||||
corresponding temp_max values.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_crit_alarm
|
||||
Description:
|
||||
Critical high temperature alarm flag.
|
||||
|
||||
- 0: OK
|
||||
- 1: temperature has reached tempY_crit
|
||||
|
||||
RW
|
||||
|
||||
Contrary to regular alarm flags which clear themselves
|
||||
automatically when read, this one sticks until cleared by
|
||||
the user. This is done by writing 0 to the file. Writing
|
||||
other values is unsupported.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_crit_hyst
|
||||
Description:
|
||||
Temperature hysteresis value for critical limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the critical value.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_emergency
|
||||
Description:
|
||||
Temperature emergency max value, for chips supporting more than
|
||||
two upper temperature limits. Must be equal or greater than
|
||||
corresponding temp_crit values.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_emergency_hyst
|
||||
Description:
|
||||
Temperature hysteresis value for emergency limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the emergency value.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_lcrit
|
||||
Description:
|
||||
Temperature critical min value, typically lower than
|
||||
corresponding temp_min values.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_lcrit_hyst
|
||||
Description:
|
||||
Temperature hysteresis value for critical min limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the critical min value.
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_offset
|
||||
Description:
|
||||
Temperature offset which is added to the temperature reading
|
||||
by the chip.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Read/Write value.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_label
|
||||
Description:
|
||||
Suggested temperature channel label.
|
||||
|
||||
Text string
|
||||
|
||||
Should only be created if the driver has hints about what
|
||||
this temperature channel is being used for, and user-space
|
||||
doesn't. In all other cases, the label is provided by
|
||||
user-space.
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_lowest
|
||||
Description:
|
||||
Historical minimum temperature
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_highest
|
||||
Description:
|
||||
Historical maximum temperature
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_reset_history
|
||||
Description:
|
||||
Reset temp_lowest and temp_highest
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/temp_reset_history
|
||||
Description:
|
||||
Reset temp_lowest and temp_highest for all sensors
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_enable
|
||||
Description:
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_rated_min
|
||||
Description:
|
||||
Minimum rated temperature.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/tempY_rated_max
|
||||
Description:
|
||||
Maximum rated temperature.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_max
|
||||
Description:
|
||||
Current max value
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_min
|
||||
Description:
|
||||
Current min value.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_lcrit
|
||||
Description:
|
||||
Current critical low value
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_crit
|
||||
Description:
|
||||
Current critical high value.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_input
|
||||
Description:
|
||||
Current input value
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_average
|
||||
Description:
|
||||
Average current use
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_lowest
|
||||
Description:
|
||||
Historical minimum current
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_highest
|
||||
Description:
|
||||
Historical maximum current
|
||||
Unit: milliampere
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_reset_history
|
||||
Description:
|
||||
Reset currX_lowest and currX_highest
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/curr_reset_history
|
||||
Description:
|
||||
Reset currX_lowest and currX_highest for all sensors
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_enable
|
||||
Description:
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_rated_min
|
||||
Description:
|
||||
Minimum rated current.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/currY_rated_max
|
||||
Description:
|
||||
Maximum rated current.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average
|
||||
Description:
|
||||
Average power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_interval
|
||||
Description:
|
||||
Power use averaging interval. A poll
|
||||
notification is sent to this file if the
|
||||
hardware changes the averaging interval.
|
||||
|
||||
Unit: milliseconds
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_interval_max
|
||||
Description:
|
||||
Maximum power use averaging interval
|
||||
|
||||
Unit: milliseconds
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_interval_min
|
||||
Description:
|
||||
Minimum power use averaging interval
|
||||
|
||||
Unit: milliseconds
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_highest
|
||||
Description:
|
||||
Historical average maximum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_lowest
|
||||
Description:
|
||||
Historical average minimum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_max
|
||||
Description:
|
||||
A poll notification is sent to
|
||||
`powerY_average` when power use
|
||||
rises above this value.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_average_min
|
||||
Description:
|
||||
A poll notification is sent to
|
||||
`powerY_average` when power use
|
||||
sinks below this value.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_input
|
||||
Description:
|
||||
Instantaneous power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_input_highest
|
||||
Description:
|
||||
Historical maximum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_input_lowest
|
||||
Description:
|
||||
Historical minimum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_reset_history
|
||||
Description:
|
||||
Reset input_highest, input_lowest,
|
||||
average_highest and average_lowest.
|
||||
|
||||
WO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_accuracy
|
||||
Description:
|
||||
Accuracy of the power meter.
|
||||
|
||||
Unit: Percent
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_cap
|
||||
Description:
|
||||
If power use rises above this limit, the
|
||||
system should take action to reduce power use.
|
||||
A poll notification is sent to this file if the
|
||||
cap is changed by the hardware. The `*_cap`
|
||||
files only appear if the cap is known to be
|
||||
enforced by hardware.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_cap_hyst
|
||||
Description:
|
||||
Margin of hysteresis built around capping and
|
||||
notification.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_cap_max
|
||||
Description:
|
||||
Maximum cap that can be set.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_cap_min
|
||||
Description:
|
||||
Minimum cap that can be set.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_max
|
||||
Description:
|
||||
Maximum power.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_crit
|
||||
Description:
|
||||
Critical maximum power.
|
||||
|
||||
If power rises to or above this limit, the
|
||||
system is expected take drastic action to reduce
|
||||
power consumption, such as a system shutdown or
|
||||
a forced powerdown of some devices.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_enable
|
||||
Description:
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return
|
||||
-ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_rated_min
|
||||
Description:
|
||||
Minimum rated power.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/powerY_rated_max
|
||||
Description:
|
||||
Maximum rated power.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/energyY_input
|
||||
Description:
|
||||
Cumulative energy use
|
||||
|
||||
Unit: microJoule
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/energyY_enable
|
||||
Description:
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return
|
||||
-ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/humidityY_input
|
||||
Description:
|
||||
Humidity
|
||||
|
||||
Unit: milli-percent (per cent mille, pcm)
|
||||
|
||||
RO
|
||||
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/humidityY_enable
|
||||
Description:
|
||||
Enable or disable the sensors
|
||||
|
||||
When disabled the sensor read will return
|
||||
-ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/humidityY_rated_min
|
||||
Description:
|
||||
Minimum rated humidity.
|
||||
|
||||
Unit: milli-percent (per cent mille, pcm)
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/humidityY_rated_max
|
||||
Description:
|
||||
Maximum rated humidity.
|
||||
|
||||
Unit: milli-percent (per cent mille, pcm)
|
||||
|
||||
RO
|
||||
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/intrusionY_alarm
|
||||
Description:
|
||||
Chassis intrusion detection
|
||||
|
||||
- 0: OK
|
||||
- 1: intrusion detected
|
||||
|
||||
RW
|
||||
|
||||
Contrary to regular alarm flags which clear themselves
|
||||
automatically when read, this one sticks until cleared by
|
||||
the user. This is done by writing 0 to the file. Writing
|
||||
other values is unsupported.
|
||||
|
||||
What: /sys/class/hwmon/hwmonX/intrusionY_beep
|
||||
Description:
|
||||
Chassis intrusion beep
|
||||
|
||||
- 0: disable
|
||||
- 1: enable
|
||||
|
||||
RW
|
||||
@@ -6,7 +6,7 @@ Description:
|
||||
The mei/ class sub-directory belongs to mei device class
|
||||
|
||||
|
||||
What: /sys/class/mei/meiN/
|
||||
What: /sys/class/mei/mei<N>/
|
||||
Date: May 2014
|
||||
KernelVersion: 3.17
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -14,7 +14,7 @@ Description:
|
||||
The /sys/class/mei/meiN directory is created for
|
||||
each probed mei device
|
||||
|
||||
What: /sys/class/mei/meiN/fw_status
|
||||
What: /sys/class/mei/mei<N>/fw_status
|
||||
Date: Nov 2014
|
||||
KernelVersion: 3.19
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -29,7 +29,7 @@ Description: Display fw status registers content
|
||||
Also number of registers varies between 1 and 6
|
||||
depending on generation.
|
||||
|
||||
What: /sys/class/mei/meiN/hbm_ver
|
||||
What: /sys/class/mei/mei<N>/hbm_ver
|
||||
Date: Aug 2016
|
||||
KernelVersion: 4.9
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -38,7 +38,7 @@ Description: Display the negotiated HBM protocol version.
|
||||
The HBM protocol version negotiated
|
||||
between the driver and the device.
|
||||
|
||||
What: /sys/class/mei/meiN/hbm_ver_drv
|
||||
What: /sys/class/mei/mei<N>/hbm_ver_drv
|
||||
Date: Aug 2016
|
||||
KernelVersion: 4.9
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -46,7 +46,7 @@ Description: Display the driver HBM protocol version.
|
||||
|
||||
The HBM protocol version supported by the driver.
|
||||
|
||||
What: /sys/class/mei/meiN/tx_queue_limit
|
||||
What: /sys/class/mei/mei<N>/tx_queue_limit
|
||||
Date: Jan 2018
|
||||
KernelVersion: 4.16
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -55,7 +55,7 @@ Description: Configure tx queue limit
|
||||
Set maximal number of pending writes
|
||||
per opened session.
|
||||
|
||||
What: /sys/class/mei/meiN/fw_ver
|
||||
What: /sys/class/mei/mei<N>/fw_ver
|
||||
Date: May 2018
|
||||
KernelVersion: 4.18
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -66,7 +66,7 @@ Description: Display the ME firmware version.
|
||||
There can be up to three such blocks for different
|
||||
FW components.
|
||||
|
||||
What: /sys/class/mei/meiN/dev_state
|
||||
What: /sys/class/mei/mei<N>/dev_state
|
||||
Date: Mar 2019
|
||||
KernelVersion: 5.1
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -81,7 +81,7 @@ Description: Display the ME device state.
|
||||
POWER_DOWN
|
||||
POWER_UP
|
||||
|
||||
What: /sys/class/mei/meiN/trc
|
||||
What: /sys/class/mei/mei<N>/trc
|
||||
Date: Nov 2019
|
||||
KernelVersion: 5.5
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
@@ -91,7 +91,7 @@ Description: Display trc status register content
|
||||
status information into trc status register
|
||||
for BIOS and OS to monitor fw health.
|
||||
|
||||
What: /sys/class/mei/meiN/kind
|
||||
What: /sys/class/mei/mei<N>/kind
|
||||
Date: Jul 2020
|
||||
KernelVersion: 5.8
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
|
||||
@@ -8,7 +8,7 @@ Description:
|
||||
PCIe form factor add-in Coprocessor card based on the Intel Many
|
||||
Integrated Core (MIC) architecture that runs a Linux OS.
|
||||
|
||||
What: /sys/class/mic/mic(x)
|
||||
What: /sys/class/mic/mic<X>
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -17,7 +17,7 @@ Description:
|
||||
represent MIC devices (0,1,..etc). Each directory has
|
||||
information specific to that MIC device.
|
||||
|
||||
What: /sys/class/mic/mic(x)/family
|
||||
What: /sys/class/mic/mic<X>/family
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -25,7 +25,7 @@ Description:
|
||||
Provides information about the Coprocessor family for an Intel
|
||||
MIC device. For example - "x100"
|
||||
|
||||
What: /sys/class/mic/mic(x)/stepping
|
||||
What: /sys/class/mic/mic<X>/stepping
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -33,7 +33,7 @@ Description:
|
||||
Provides information about the silicon stepping for an Intel
|
||||
MIC device. For example - "A0" or "B0"
|
||||
|
||||
What: /sys/class/mic/mic(x)/state
|
||||
What: /sys/class/mic/mic<X>/state
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -69,7 +69,7 @@ Description:
|
||||
"shutdown" Initiates card OS shutdown.
|
||||
========== ===================================================
|
||||
|
||||
What: /sys/class/mic/mic(x)/shutdown_status
|
||||
What: /sys/class/mic/mic<X>/shutdown_status
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -88,7 +88,7 @@ Description:
|
||||
"restart" Shutdown because of a restart command.
|
||||
========== ===================================================
|
||||
|
||||
What: /sys/class/mic/mic(x)/cmdline
|
||||
What: /sys/class/mic/mic<X>/cmdline
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -104,7 +104,7 @@ Description:
|
||||
or modify existing ones and then write the whole kernel command
|
||||
line back to this entry.
|
||||
|
||||
What: /sys/class/mic/mic(x)/firmware
|
||||
What: /sys/class/mic/mic<X>/firmware
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -114,7 +114,7 @@ Description:
|
||||
card can be found. The entry can be written to change the
|
||||
firmware image location under /lib/firmware/.
|
||||
|
||||
What: /sys/class/mic/mic(x)/ramdisk
|
||||
What: /sys/class/mic/mic<X>/ramdisk
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -124,7 +124,7 @@ Description:
|
||||
OS boot can be found. The entry can be written to change
|
||||
the ramdisk image location under /lib/firmware/.
|
||||
|
||||
What: /sys/class/mic/mic(x)/bootmode
|
||||
What: /sys/class/mic/mic<X>/bootmode
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -135,7 +135,7 @@ Description:
|
||||
a) linux - Boot a Linux image.
|
||||
b) flash - Boot an image for flash updates.
|
||||
|
||||
What: /sys/class/mic/mic(x)/log_buf_addr
|
||||
What: /sys/class/mic/mic<X>/log_buf_addr
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -149,7 +149,7 @@ Description:
|
||||
log buffer address to be written can be found in the System.map
|
||||
file of the card OS.
|
||||
|
||||
What: /sys/class/mic/mic(x)/log_buf_len
|
||||
What: /sys/class/mic/mic<X>/log_buf_len
|
||||
Date: October 2013
|
||||
KernelVersion: 3.13
|
||||
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
|
||||
@@ -163,7 +163,7 @@ Description:
|
||||
buffer length address to be written can be found in the
|
||||
System.map file of the card OS.
|
||||
|
||||
What: /sys/class/mic/mic(x)/heartbeat_enable
|
||||
What: /sys/class/mic/mic<X>/heartbeat_enable
|
||||
Date: March 2015
|
||||
KernelVersion: 4.4
|
||||
Contact: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
||||
|
||||
@@ -7,7 +7,7 @@ Description:
|
||||
Framework and provides a sysfs interface for using MUX
|
||||
controllers.
|
||||
|
||||
What: /sys/class/mux/muxchipN/
|
||||
What: /sys/class/mux/muxchip<N>/
|
||||
Date: April 2017
|
||||
KernelVersion: 4.13
|
||||
Contact: Peter Rosin <peda@axentia.se>
|
||||
|
||||
@@ -7,7 +7,7 @@ Description:
|
||||
Framework and provides a sysfs interface for using PWM
|
||||
channels.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/
|
||||
What: /sys/class/pwm/pwmchip<N>/
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
@@ -16,14 +16,14 @@ Description:
|
||||
probed PWM controller/chip where N is the base of the
|
||||
PWM chip.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/npwm
|
||||
What: /sys/class/pwm/pwmchip<N>/npwm
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
Description:
|
||||
The number of PWM channels supported by the PWM chip.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/export
|
||||
What: /sys/class/pwm/pwmchip<N>/export
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
@@ -31,14 +31,14 @@ Description:
|
||||
Exports a PWM channel from the PWM chip for sysfs control.
|
||||
Value is between 0 and /sys/class/pwm/pwmchipN/npwm - 1.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/unexport
|
||||
What: /sys/class/pwm/pwmchip<N>/unexport
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
Description:
|
||||
Unexports a PWM channel.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX
|
||||
What: /sys/class/pwm/pwmchip<N>/pwmX
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
@@ -47,21 +47,21 @@ Description:
|
||||
each exported PWM channel where X is the exported PWM
|
||||
channel number.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX/period
|
||||
What: /sys/class/pwm/pwmchip<N>/pwmX/period
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
Description:
|
||||
Sets the PWM signal period in nanoseconds.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX/duty_cycle
|
||||
What: /sys/class/pwm/pwmchip<N>/pwmX/duty_cycle
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
Description:
|
||||
Sets the PWM signal duty cycle in nanoseconds.
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX/polarity
|
||||
What: /sys/class/pwm/pwmchip<N>/pwmX/polarity
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
@@ -69,7 +69,7 @@ Description:
|
||||
Sets the output polarity of the PWM signal to "normal" or
|
||||
"inversed".
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX/enable
|
||||
What: /sys/class/pwm/pwmchip<N>/pwmX/enable
|
||||
Date: May 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||
@@ -78,7 +78,7 @@ Description:
|
||||
0 is disabled
|
||||
1 is enabled
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX/capture
|
||||
What: /sys/class/pwm/pwmchip<N>/pwmX/capture
|
||||
Date: June 2016
|
||||
KernelVersion: 4.8
|
||||
Contact: Lee Jones <lee.jones@linaro.org>
|
||||
|
||||
@@ -10,7 +10,7 @@ Description:
|
||||
NOTE: An mport ID is not a RapidIO destination ID assigned to a
|
||||
given local mport device.
|
||||
|
||||
What: /sys/class/rapidio_port/rapidioN/sys_size
|
||||
What: /sys/class/rapidio_port/rapidio<N>/sys_size
|
||||
Date: Apr, 2014
|
||||
KernelVersion: v3.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
@@ -22,7 +22,7 @@ Description:
|
||||
|
||||
1 = large (16-bit destination ID, max. 65536 devices).
|
||||
|
||||
What: /sys/class/rapidio_port/rapidioN/port_destid
|
||||
What: /sys/class/rapidio_port/rapidio<N>/port_destid
|
||||
Date: Apr, 2014
|
||||
KernelVersion: v3.15
|
||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||
|
||||
@@ -7,7 +7,7 @@ Description:
|
||||
core and provides a sysfs interface for configuring infrared
|
||||
remote controller receivers.
|
||||
|
||||
What: /sys/class/rc/rcN/
|
||||
What: /sys/class/rc/rc<N>/
|
||||
Date: Apr 2010
|
||||
KernelVersion: 2.6.35
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
@@ -15,7 +15,7 @@ Description:
|
||||
A /sys/class/rc/rcN directory is created for each remote
|
||||
control receiver device where N is the number of the receiver.
|
||||
|
||||
What: /sys/class/rc/rcN/protocols
|
||||
What: /sys/class/rc/rc<N>/protocols
|
||||
Date: Jun 2010
|
||||
KernelVersion: 2.6.36
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
@@ -40,7 +40,7 @@ Description:
|
||||
Write fails with EINVAL if an invalid protocol combination or
|
||||
unknown protocol name is used.
|
||||
|
||||
What: /sys/class/rc/rcN/filter
|
||||
What: /sys/class/rc/rc<N>/filter
|
||||
Date: Jan 2014
|
||||
KernelVersion: 3.15
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
@@ -55,7 +55,7 @@ Description:
|
||||
|
||||
This value may be reset to 0 if the current protocol is altered.
|
||||
|
||||
What: /sys/class/rc/rcN/filter_mask
|
||||
What: /sys/class/rc/rc<N>/filter_mask
|
||||
Date: Jan 2014
|
||||
KernelVersion: 3.15
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
@@ -72,7 +72,7 @@ Description:
|
||||
|
||||
This value may be reset to 0 if the current protocol is altered.
|
||||
|
||||
What: /sys/class/rc/rcN/wakeup_protocols
|
||||
What: /sys/class/rc/rc<N>/wakeup_protocols
|
||||
Date: Feb 2017
|
||||
KernelVersion: 4.11
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
@@ -98,7 +98,7 @@ Description:
|
||||
unknown protocol name is used, or if wakeup is not supported by
|
||||
the hardware.
|
||||
|
||||
What: /sys/class/rc/rcN/wakeup_filter
|
||||
What: /sys/class/rc/rc<N>/wakeup_filter
|
||||
Date: Jan 2014
|
||||
KernelVersion: 3.15
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
@@ -117,7 +117,7 @@ Description:
|
||||
|
||||
This value may be reset to 0 if the wakeup protocol is altered.
|
||||
|
||||
What: /sys/class/rc/rcN/wakeup_filter_mask
|
||||
What: /sys/class/rc/rc<N>/wakeup_filter_mask
|
||||
Date: Jan 2014
|
||||
KernelVersion: 3.15
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/class/rc/rcN/wakeup_data
|
||||
What: /sys/class/rc/rc<N>/wakeup_data
|
||||
Date: Mar 2016
|
||||
KernelVersion: 4.6
|
||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
|
||||
@@ -200,7 +200,7 @@ Description: USB Power Delivery Specification defines a set of product types
|
||||
amc Alternate Mode Controller
|
||||
====================== ==========================
|
||||
|
||||
What: /sys/class/typec/<port>-partner>/identity/
|
||||
What: /sys/class/typec/<port>-partner/identity/
|
||||
Date: April 2017
|
||||
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
||||
Description:
|
||||
|
||||
@@ -18,14 +18,14 @@ Description:
|
||||
and it will be removed. The default is 3 superframes
|
||||
(~197 ms) as required by the specification.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/
|
||||
What: /sys/class/uwb_rc/uwb<N>/
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
Description:
|
||||
An individual UWB radio controller.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/beacon
|
||||
What: /sys/class/uwb_rc/uwb<N>/beacon
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -43,7 +43,7 @@ Description:
|
||||
Reading returns the currently active channel, or -1 if
|
||||
the radio controller is not beaconing.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/ASIE
|
||||
What: /sys/class/uwb_rc/uwb<N>/ASIE
|
||||
Date: August 2014
|
||||
KernelVersion: 3.18
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -56,7 +56,7 @@ Description:
|
||||
Reading returns the current ASIE. Writing replaces
|
||||
the current ASIE with the one written.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/scan
|
||||
What: /sys/class/uwb_rc/uwb<N>/scan
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -75,7 +75,7 @@ Description:
|
||||
4 scan (with start time of <bpst offset>)
|
||||
== =======================================
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/mac_address
|
||||
What: /sys/class/uwb_rc/uwb<N>/mac_address
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -85,7 +85,7 @@ Description:
|
||||
controller's EUI-48 but only do so while the device is
|
||||
not beaconing or scanning.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/wusbhc
|
||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -93,7 +93,7 @@ Description:
|
||||
A symlink to the device (if any) of the WUSB Host
|
||||
Controller PAL using this radio controller.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -102,7 +102,7 @@ Description:
|
||||
as part of a scan or is a member of the radio
|
||||
controllers beacon group.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/BPST
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/BPST
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -111,7 +111,7 @@ Description:
|
||||
interval superframe timer) of the last beacon from
|
||||
this device was received.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/DevAddr
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/DevAddr
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -119,7 +119,7 @@ Description:
|
||||
The current DevAddr of this device in colon separated
|
||||
hex octets.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/EUI_48
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/EUI_48
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -128,7 +128,7 @@ Description:
|
||||
The EUI-48 of this device in colon separated hex
|
||||
octets.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/IEs
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/IEs
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -136,7 +136,7 @@ Description:
|
||||
The latest IEs included in this device's beacon, in
|
||||
space separated hex octets with one IE per line.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/LQE
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/LQE
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
@@ -146,7 +146,7 @@ Description:
|
||||
This gives an estimate on a suitable PHY rate. Refer
|
||||
to [ECMA-368] section 13.3 for more details.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/<EUI-48>/RSSI
|
||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/RSSI
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: linux-usb@vger.kernel.org
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_chid
|
||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_chid
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: David Vrabel <david.vrabel@csr.com>
|
||||
@@ -9,7 +9,7 @@ Description:
|
||||
|
||||
Set an all zero CHID to stop the host controller.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_trust_timeout
|
||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_trust_timeout
|
||||
Date: July 2008
|
||||
KernelVersion: 2.6.27
|
||||
Contact: David Vrabel <david.vrabel@csr.com>
|
||||
@@ -24,7 +24,7 @@ Description:
|
||||
lifetime of PTKs and GTKs) it should not be changed
|
||||
from the default.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_phy_rate
|
||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_phy_rate
|
||||
Date: August 2009
|
||||
KernelVersion: 2.6.32
|
||||
Contact: David Vrabel <david.vrabel@csr.com>
|
||||
@@ -37,7 +37,7 @@ Description:
|
||||
Refer to [ECMA-368] section 10.3.1.1 for the value to
|
||||
use.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_dnts
|
||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_dnts
|
||||
Date: June 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: Thomas Pugliese <thomas.pugliese@gmail.com>
|
||||
@@ -47,7 +47,7 @@ Description:
|
||||
often the devices will have the opportunity to send
|
||||
notifications to the host.
|
||||
|
||||
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_retry_count
|
||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_retry_count
|
||||
Date: June 2013
|
||||
KernelVersion: 3.11
|
||||
Contact: Thomas Pugliese <thomas.pugliese@gmail.com>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/devices/platform/dock.N/docked
|
||||
What: /sys/devices/platform/dock.<N>/docked
|
||||
Date: Dec, 2006
|
||||
KernelVersion: 2.6.19
|
||||
Contact: linux-acpi@vger.kernel.org
|
||||
@@ -6,7 +6,7 @@ Description:
|
||||
(RO) Value 1 or 0 indicates whether the software believes the
|
||||
laptop is docked in a docking station.
|
||||
|
||||
What: /sys/devices/platform/dock.N/undock
|
||||
What: /sys/devices/platform/dock.<N>/undock
|
||||
Date: Dec, 2006
|
||||
KernelVersion: 2.6.19
|
||||
Contact: linux-acpi@vger.kernel.org
|
||||
@@ -14,14 +14,14 @@ Description:
|
||||
(WO) Writing to this file causes the software to initiate an
|
||||
undock request to the firmware.
|
||||
|
||||
What: /sys/devices/platform/dock.N/uid
|
||||
What: /sys/devices/platform/dock.<N>/uid
|
||||
Date: Feb, 2007
|
||||
KernelVersion: v2.6.21
|
||||
Contact: linux-acpi@vger.kernel.org
|
||||
Description:
|
||||
(RO) Displays the docking station the laptop is docked to.
|
||||
|
||||
What: /sys/devices/platform/dock.N/flags
|
||||
What: /sys/devices/platform/dock.<N>/flags
|
||||
Date: May, 2007
|
||||
KernelVersion: v2.6.21
|
||||
Contact: linux-acpi@vger.kernel.org
|
||||
@@ -30,7 +30,7 @@ Description:
|
||||
request has been made by the user (from the immediate_undock
|
||||
option).
|
||||
|
||||
What: /sys/devices/platform/dock.N/type
|
||||
What: /sys/devices/platform/dock.<N>/type
|
||||
Date: Aug, 2008
|
||||
KernelVersion: v2.6.27
|
||||
Contact: linux-acpi@vger.kernel.org
|
||||
|
||||
@@ -269,3 +269,39 @@ Description:
|
||||
the current runtime PM status of the device, which may be
|
||||
"suspended", "suspending", "resuming", "active", "error" (fatal
|
||||
error), or "unsupported" (runtime PM is disabled).
|
||||
|
||||
What: /sys/devices/.../power/runtime_active_time
|
||||
Date: Jul 2010
|
||||
Contact: Arjan van de Ven <arjan@linux.intel.com>
|
||||
Description:
|
||||
Reports the total time that the device has been active.
|
||||
Used for runtime PM statistics.
|
||||
|
||||
What: /sys/devices/.../power/runtime_suspended_time
|
||||
Date: Jul 2010
|
||||
Contact: Arjan van de Ven <arjan@linux.intel.com>
|
||||
Description:
|
||||
Reports total time that the device has been suspended.
|
||||
Used for runtime PM statistics.
|
||||
|
||||
What: /sys/devices/.../power/runtime_usage
|
||||
Date: Apr 2010
|
||||
Contact: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
Description:
|
||||
Reports the runtime PM usage count of a device.
|
||||
|
||||
What: /sys/devices/.../power/runtime_enabled
|
||||
Date: Apr 2010
|
||||
Contact: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
Description:
|
||||
Is runtime PM enabled for this device?
|
||||
States are "enabled", "disabled", "forbidden" or a
|
||||
combination of the latter two.
|
||||
|
||||
What: /sys/devices/.../power/runtime_active_kids
|
||||
Date: Apr 2010
|
||||
Contact: Dominik Brodowski <linux@dominikbrodowski.net>
|
||||
Description:
|
||||
Reports the runtime PM children usage count of a device, or
|
||||
0 if the the children will be ignored.
|
||||
|
||||
|
||||
@@ -7,10 +7,12 @@ Description:
|
||||
bus / platform-specific way. This attribute is only present for
|
||||
devices that can support determining such information:
|
||||
|
||||
"removable": device can be removed from the platform by the user
|
||||
"fixed": device is fixed to the platform / cannot be removed
|
||||
=========== ===================================================
|
||||
"removable" device can be removed from the platform by the user
|
||||
"fixed" device is fixed to the platform / cannot be removed
|
||||
by the user.
|
||||
"unknown": The information is unavailable / cannot be deduced.
|
||||
"unknown" The information is unavailable / cannot be deduced.
|
||||
=========== ===================================================
|
||||
|
||||
Currently this is only supported by USB (which infers the
|
||||
information from a combination of hub descriptor bits and
|
||||
|
||||
@@ -7,7 +7,7 @@ Description:
|
||||
Individual CPU attributes are contained in subdirectories
|
||||
named by the kernel's logical CPU number, e.g.:
|
||||
|
||||
/sys/devices/system/cpu/cpu#/
|
||||
/sys/devices/system/cpu/cpuX/
|
||||
|
||||
What: /sys/devices/system/cpu/kernel_max
|
||||
/sys/devices/system/cpu/offline
|
||||
@@ -53,7 +53,7 @@ Description: Dynamic addition and removal of CPU's. This is not hotplug
|
||||
the system. Information written to the file to remove CPU's
|
||||
is architecture specific.
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/node
|
||||
What: /sys/devices/system/cpu/cpuX/node
|
||||
Date: October 2009
|
||||
Contact: Linux memory management mailing list <linux-mm@kvack.org>
|
||||
Description: Discover NUMA node a CPU belongs to
|
||||
@@ -67,41 +67,41 @@ Description: Discover NUMA node a CPU belongs to
|
||||
/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/topology/core_id
|
||||
/sys/devices/system/cpu/cpu#/topology/core_siblings
|
||||
/sys/devices/system/cpu/cpu#/topology/core_siblings_list
|
||||
/sys/devices/system/cpu/cpu#/topology/physical_package_id
|
||||
/sys/devices/system/cpu/cpu#/topology/thread_siblings
|
||||
/sys/devices/system/cpu/cpu#/topology/thread_siblings_list
|
||||
What: /sys/devices/system/cpu/cpuX/topology/core_id
|
||||
/sys/devices/system/cpu/cpuX/topology/core_siblings
|
||||
/sys/devices/system/cpu/cpuX/topology/core_siblings_list
|
||||
/sys/devices/system/cpu/cpuX/topology/physical_package_id
|
||||
/sys/devices/system/cpu/cpuX/topology/thread_siblings
|
||||
/sys/devices/system/cpu/cpuX/topology/thread_siblings_list
|
||||
Date: December 2008
|
||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||
Description: CPU topology files that describe a logical CPU's relationship
|
||||
to other cores and threads in the same physical package.
|
||||
|
||||
One cpu# directory is created per logical CPU in the system,
|
||||
One cpuX directory is created per logical CPU in the system,
|
||||
e.g. /sys/devices/system/cpu/cpu42/.
|
||||
|
||||
Briefly, the files above are:
|
||||
|
||||
core_id: the CPU core ID of cpu#. Typically it is the
|
||||
core_id: the CPU core ID of cpuX. Typically it is the
|
||||
hardware platform's identifier (rather than the kernel's).
|
||||
The actual value is architecture and platform dependent.
|
||||
|
||||
core_siblings: internal kernel map of cpu#'s hardware threads
|
||||
core_siblings: internal kernel map of cpuX's hardware threads
|
||||
within the same physical_package_id.
|
||||
|
||||
core_siblings_list: human-readable list of the logical CPU
|
||||
numbers within the same physical_package_id as cpu#.
|
||||
numbers within the same physical_package_id as cpuX.
|
||||
|
||||
physical_package_id: physical package id of cpu#. Typically
|
||||
physical_package_id: physical package id of cpuX. Typically
|
||||
corresponds to a physical socket number, but the actual value
|
||||
is architecture and platform dependent.
|
||||
|
||||
thread_siblings: internal kernel map of cpu#'s hardware
|
||||
threads within the same core as cpu#
|
||||
thread_siblings: internal kernel map of cpuX's hardware
|
||||
threads within the same core as cpuX
|
||||
|
||||
thread_siblings_list: human-readable list of cpu#'s hardware
|
||||
threads within the same core as cpu#
|
||||
thread_siblings_list: human-readable list of cpuX's hardware
|
||||
threads within the same core as cpuX
|
||||
|
||||
See Documentation/admin-guide/cputopology.rst for more information.
|
||||
|
||||
@@ -135,7 +135,7 @@ Description: Discover cpuidle policy and mechanism
|
||||
Documentation/driver-api/pm/cpuidle.rst for more information.
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/name
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/name
|
||||
/sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
|
||||
/sys/devices/system/cpu/cpuX/cpuidle/stateN/power
|
||||
/sys/devices/system/cpu/cpuX/cpuidle/stateN/time
|
||||
@@ -174,7 +174,7 @@ Description:
|
||||
(a count).
|
||||
======== ==== =================================================
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/desc
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/desc
|
||||
Date: February 2008
|
||||
KernelVersion: v2.6.25
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
@@ -182,7 +182,7 @@ Description:
|
||||
(RO) A small description about the idle state (string).
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/disable
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/disable
|
||||
Date: March 2012
|
||||
KernelVersion: v3.10
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
@@ -195,14 +195,14 @@ Description:
|
||||
does not reflect it. Likewise, if one enables a deep state but a
|
||||
lighter state still is disabled, then this has no effect.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/default_status
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/default_status
|
||||
Date: December 2019
|
||||
KernelVersion: v5.6
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
Description:
|
||||
(RO) The default status of this state, "enabled" or "disabled".
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/residency
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/residency
|
||||
Date: March 2014
|
||||
KernelVersion: v3.15
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
@@ -211,7 +211,7 @@ Description:
|
||||
time (in microseconds) this cpu should spend in this idle state
|
||||
to make the transition worth the effort.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/
|
||||
Date: March 2018
|
||||
KernelVersion: v4.17
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
@@ -221,7 +221,7 @@ Description:
|
||||
This attribute group is only present for states that can be
|
||||
used in suspend-to-idle with suspended timekeeping.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/time
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/time
|
||||
Date: March 2018
|
||||
KernelVersion: v4.17
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
@@ -229,7 +229,7 @@ Description:
|
||||
Total time spent by the CPU in suspend-to-idle (with scheduler
|
||||
tick suspended) after requesting this state.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/usage
|
||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/usage
|
||||
Date: March 2018
|
||||
KernelVersion: v4.17
|
||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||
@@ -237,7 +237,7 @@ Description:
|
||||
Total number of times this state has been requested by the CPU
|
||||
while entering suspend-to-idle.
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/cpufreq/*
|
||||
What: /sys/devices/system/cpu/cpuX/cpufreq/*
|
||||
Date: pre-git history
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description: Discover and change clock speed of CPUs
|
||||
@@ -252,7 +252,7 @@ Description: Discover and change clock speed of CPUs
|
||||
See files in Documentation/cpu-freq/ for more information.
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
|
||||
What: /sys/devices/system/cpu/cpuX/cpufreq/freqdomain_cpus
|
||||
Date: June 2013
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description: Discover CPUs in the same CPU frequency coordination domain
|
||||
@@ -301,16 +301,16 @@ Description: Processor frequency boosting control
|
||||
Documentation/admin-guide/pm/cpufreq.rst
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/crash_notes
|
||||
/sys/devices/system/cpu/cpu#/crash_notes_size
|
||||
What: /sys/devices/system/cpu/cpuX/crash_notes
|
||||
/sys/devices/system/cpu/cpuX/crash_notes_size
|
||||
Date: April 2013
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: address and size of the percpu note.
|
||||
|
||||
crash_notes: the physical address of the memory that holds the
|
||||
note of cpu#.
|
||||
note of cpuX.
|
||||
|
||||
crash_notes_size: size of the note of cpu#.
|
||||
crash_notes_size: size of the note of cpuX.
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/intel_pstate/max_perf_pct
|
||||
@@ -503,12 +503,12 @@ Description: Identifies the subset of CPUs in the system that can execute
|
||||
If absent, then all or none of the CPUs can execute AArch32
|
||||
applications and execve() will behave accordingly.
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/cpu_capacity
|
||||
What: /sys/devices/system/cpu/cpuX/cpu_capacity
|
||||
Date: December 2016
|
||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||
Description: information about CPUs heterogeneity.
|
||||
|
||||
cpu_capacity: capacity of cpu#.
|
||||
cpu_capacity: capacity of cpuX.
|
||||
|
||||
What: /sys/devices/system/cpu/vulnerabilities
|
||||
/sys/devices/system/cpu/vulnerabilities/meltdown
|
||||
@@ -560,7 +560,7 @@ Description: Control Symmetric Multi Threading (SMT)
|
||||
If control status is "forceoff" or "notsupported" writes
|
||||
are rejected.
|
||||
|
||||
What: /sys/devices/system/cpu/cpu#/power/energy_perf_bias
|
||||
What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias
|
||||
Date: March 2019
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description: Intel Energy and Performance Bias Hint (EPB)
|
||||
|
||||
@@ -13,6 +13,7 @@ Description:
|
||||
Interface specification for more details.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_type
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_type
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the device type. This is one of the UFS
|
||||
@@ -22,6 +23,7 @@ Description: This file shows the device type. This is one of the UFS
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_class
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_class
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the device class. This is one of the UFS
|
||||
@@ -31,6 +33,7 @@ Description: This file shows the device class. This is one of the UFS
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_sub_class
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_sub_class
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the UFS storage subclass. This is one of
|
||||
@@ -40,6 +43,7 @@ Description: This file shows the UFS storage subclass. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/protocol
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/protocol
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the protocol supported by an UFS device.
|
||||
@@ -50,6 +54,7 @@ Description: This file shows the protocol supported by an UFS device.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_luns
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/number_of_luns
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows number of logical units. This is one of
|
||||
@@ -59,6 +64,7 @@ Description: This file shows number of logical units. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_wluns
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/number_of_wluns
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows number of well known logical units.
|
||||
@@ -69,6 +75,7 @@ Description: This file shows number of well known logical units.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/boot_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/boot_enable
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows value that indicates whether the device is
|
||||
@@ -79,6 +86,7 @@ Description: This file shows value that indicates whether the device is
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/descriptor_access_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/descriptor_access_enable
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows value that indicates whether the device
|
||||
@@ -90,6 +98,7 @@ Description: This file shows value that indicates whether the device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/initial_power_mode
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/initial_power_mode
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows value that defines the power mode after
|
||||
@@ -100,6 +109,7 @@ Description: This file shows value that defines the power mode after
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/high_priority_lun
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/high_priority_lun
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the high priority lun. This is one of
|
||||
@@ -109,6 +119,7 @@ Description: This file shows the high priority lun. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/secure_removal_type
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/secure_removal_type
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the secure removal type. This is one of
|
||||
@@ -118,6 +129,7 @@ Description: This file shows the secure removal type. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/support_security_lun
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/support_security_lun
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether the security lun is supported.
|
||||
@@ -128,6 +140,7 @@ Description: This file shows whether the security lun is supported.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/bkops_termination_latency
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/bkops_termination_latency
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the background operations termination
|
||||
@@ -138,6 +151,7 @@ Description: This file shows the background operations termination
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/initial_active_icc_level
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/initial_active_icc_level
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the initial active ICC level. This is one
|
||||
@@ -147,6 +161,7 @@ Description: This file shows the initial active ICC level. This is one
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/specification_version
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/specification_version
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the specification version. This is one
|
||||
@@ -156,6 +171,7 @@ Description: This file shows the specification version. This is one
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/manufacturing_date
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/manufacturing_date
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the manufacturing date in BCD format.
|
||||
@@ -166,6 +182,7 @@ Description: This file shows the manufacturing date in BCD format.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/manufacturer_id
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/manufacturer_id
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the manufacturer ID. This is one of the
|
||||
@@ -175,6 +192,7 @@ Description: This file shows the manufacturer ID. This is one of the
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/rtt_capability
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/rtt_capability
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum number of outstanding RTTs
|
||||
@@ -185,6 +203,7 @@ Description: This file shows the maximum number of outstanding RTTs
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/rtc_update
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/rtc_update
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the frequency and method of the realtime
|
||||
@@ -195,6 +214,7 @@ Description: This file shows the frequency and method of the realtime
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/ufs_features
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/ufs_features
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows which features are supported by the device.
|
||||
@@ -205,6 +225,7 @@ Description: This file shows which features are supported by the device.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/ffu_timeout
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/ffu_timeout
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the FFU timeout. This is one of the
|
||||
@@ -214,6 +235,7 @@ Description: This file shows the FFU timeout. This is one of the
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/queue_depth
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/queue_depth
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the device queue depth. This is one of the
|
||||
@@ -223,6 +245,7 @@ Description: This file shows the device queue depth. This is one of the
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_version
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_version
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the device version. This is one of the
|
||||
@@ -232,6 +255,7 @@ Description: This file shows the device version. This is one of the
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_secure_wpa
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/number_of_secure_wpa
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows number of secure write protect areas
|
||||
@@ -242,6 +266,7 @@ Description: This file shows number of secure write protect areas
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/psa_max_data_size
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/psa_max_data_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum amount of data that may be
|
||||
@@ -253,6 +278,7 @@ Description: This file shows the maximum amount of data that may be
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/psa_state_timeout
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/psa_state_timeout
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the command maximum timeout for a change
|
||||
@@ -264,6 +290,7 @@ Description: This file shows the command maximum timeout for a change
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/interconnect_descriptor/unipro_version
|
||||
What: /sys/bus/platform/devices/*.ufs/interconnect_descriptor/unipro_version
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the MIPI UniPro version number in BCD format.
|
||||
@@ -274,6 +301,7 @@ Description: This file shows the MIPI UniPro version number in BCD format.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/interconnect_descriptor/mphy_version
|
||||
What: /sys/bus/platform/devices/*.ufs/interconnect_descriptor/mphy_version
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the MIPI M-PHY version number in BCD format.
|
||||
@@ -285,6 +313,7 @@ Description: This file shows the MIPI M-PHY version number in BCD format.
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/raw_device_capacity
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/raw_device_capacity
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the total memory quantity available to
|
||||
@@ -296,6 +325,7 @@ Description: This file shows the total memory quantity available to
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_number_of_luns
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_number_of_luns
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum number of logical units
|
||||
@@ -306,6 +336,7 @@ Description: This file shows the maximum number of logical units
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/segment_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/segment_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the segment size. This is one of the UFS
|
||||
@@ -315,6 +346,7 @@ Description: This file shows the segment size. This is one of the UFS
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/allocation_unit_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/allocation_unit_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the allocation unit size. This is one of
|
||||
@@ -324,6 +356,7 @@ Description: This file shows the allocation unit size. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/min_addressable_block_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/min_addressable_block_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the minimum addressable block size. This
|
||||
@@ -334,6 +367,7 @@ Description: This file shows the minimum addressable block size. This
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/optimal_read_block_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/optimal_read_block_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the optimal read block size. This is one
|
||||
@@ -344,6 +378,7 @@ Description: This file shows the optimal read block size. This is one
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/optimal_write_block_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/optimal_write_block_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the optimal write block size. This is one
|
||||
@@ -354,6 +389,7 @@ Description: This file shows the optimal write block size. This is one
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_in_buffer_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_in_buffer_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum data-in buffer size. This
|
||||
@@ -364,6 +400,7 @@ Description: This file shows the maximum data-in buffer size. This
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_out_buffer_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_out_buffer_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum data-out buffer size. This
|
||||
@@ -374,6 +411,7 @@ Description: This file shows the maximum data-out buffer size. This
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/rpmb_rw_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/rpmb_rw_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum number of RPMB frames allowed
|
||||
@@ -384,6 +422,7 @@ Description: This file shows the maximum number of RPMB frames allowed
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/dyn_capacity_resource_policy
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/dyn_capacity_resource_policy
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the dynamic capacity resource policy. This
|
||||
@@ -394,6 +433,7 @@ Description: This file shows the dynamic capacity resource policy. This
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/data_ordering
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/data_ordering
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows support for out-of-order data transfer.
|
||||
@@ -404,6 +444,7 @@ Description: This file shows support for out-of-order data transfer.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_number_of_contexts
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_number_of_contexts
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows maximum available number of contexts which
|
||||
@@ -414,6 +455,7 @@ Description: This file shows maximum available number of contexts which
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/sys_data_tag_unit_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/sys_data_tag_unit_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows system data tag unit size. This is one of
|
||||
@@ -423,6 +465,7 @@ Description: This file shows system data tag unit size. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/sys_data_tag_resource_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/sys_data_tag_resource_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows maximum storage area size allocated by
|
||||
@@ -434,6 +477,7 @@ Description: This file shows maximum storage area size allocated by
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/secure_removal_types
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/secure_removal_types
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows supported secure removal types. This is
|
||||
@@ -444,6 +488,7 @@ Description: This file shows supported secure removal types. This is
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/memory_types
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/memory_types
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows supported memory types. This is one of
|
||||
@@ -454,6 +499,7 @@ Description: This file shows supported memory types. This is one of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/*_memory_max_alloc_units
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/*_memory_max_alloc_units
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum number of allocation units for
|
||||
@@ -465,6 +511,7 @@ Description: This file shows the maximum number of allocation units for
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/*_memory_capacity_adjustment_factor
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/*_memory_capacity_adjustment_factor
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the memory capacity adjustment factor for
|
||||
@@ -477,6 +524,7 @@ Description: This file shows the memory capacity adjustment factor for
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/eol_info
|
||||
What: /sys/bus/platform/devices/*.ufs/health_descriptor/eol_info
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows preend of life information. This is one
|
||||
@@ -487,6 +535,7 @@ Description: This file shows preend of life information. This is one
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/life_time_estimation_a
|
||||
What: /sys/bus/platform/devices/*.ufs/health_descriptor/life_time_estimation_a
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows indication of the device life time
|
||||
@@ -497,6 +546,7 @@ Description: This file shows indication of the device life time
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/life_time_estimation_b
|
||||
What: /sys/bus/platform/devices/*.ufs/health_descriptor/life_time_estimation_b
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows indication of the device life time
|
||||
@@ -508,6 +558,7 @@ Description: This file shows indication of the device life time
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/power_descriptor/active_icc_levels_vcc*
|
||||
What: /sys/bus/platform/devices/*.ufs/power_descriptor/active_icc_levels_vcc*
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows maximum VCC, VCCQ and VCCQ2 value for
|
||||
@@ -519,6 +570,7 @@ Description: This file shows maximum VCC, VCCQ and VCCQ2 value for
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/manufacturer_name
|
||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/manufacturer_name
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file contains a device manufacturer name string.
|
||||
@@ -528,6 +580,7 @@ Description: This file contains a device manufacturer name string.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/product_name
|
||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/product_name
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file contains a product name string. The full information
|
||||
@@ -536,6 +589,7 @@ Description: This file contains a product name string. The full information
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/oem_id
|
||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/oem_id
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file contains a OEM ID string. The full information
|
||||
@@ -544,6 +598,7 @@ Description: This file contains a OEM ID string. The full information
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/serial_number
|
||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/serial_number
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file contains a device serial number string. The full
|
||||
@@ -553,6 +608,7 @@ Description: This file contains a device serial number string. The full
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/product_revision
|
||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/product_revision
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file contains a product revision string. The full
|
||||
@@ -684,6 +740,7 @@ Description: This file shows the granularity of the LUN. This is one of
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/device_init
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/device_init
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the device init status. The full information
|
||||
@@ -692,6 +749,7 @@ Description: This file shows the device init status. The full information
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/permanent_wpe
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/permanent_wpe
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether permanent write protection is enabled.
|
||||
@@ -701,6 +759,7 @@ Description: This file shows whether permanent write protection is enabled.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/power_on_wpe
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/power_on_wpe
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether write protection is enabled on all
|
||||
@@ -711,6 +770,7 @@ Description: This file shows whether write protection is enabled on all
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/bkops_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/bkops_enable
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether the device background operations are
|
||||
@@ -720,6 +780,7 @@ Description: This file shows whether the device background operations are
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/life_span_mode_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/life_span_mode_enable
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether the device life span mode is enabled.
|
||||
@@ -729,6 +790,7 @@ Description: This file shows whether the device life span mode is enabled.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/phy_resource_removal
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/phy_resource_removal
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether physical resource removal is enable.
|
||||
@@ -738,6 +800,7 @@ Description: This file shows whether physical resource removal is enable.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/busy_rtc
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/busy_rtc
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether the device is executing internal
|
||||
@@ -747,6 +810,7 @@ Description: This file shows whether the device is executing internal
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/disable_fw_update
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/disable_fw_update
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether the device FW update is permanently
|
||||
@@ -757,6 +821,7 @@ Description: This file shows whether the device FW update is permanently
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/boot_lun_enabled
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/boot_lun_enabled
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the boot lun enabled UFS device attribute.
|
||||
@@ -766,6 +831,7 @@ Description: This file provides the boot lun enabled UFS device attribute.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/current_power_mode
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/current_power_mode
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the current power mode UFS device attribute.
|
||||
@@ -775,6 +841,7 @@ Description: This file provides the current power mode UFS device attribute.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/active_icc_level
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/active_icc_level
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the active icc level UFS device attribute.
|
||||
@@ -784,6 +851,7 @@ Description: This file provides the active icc level UFS device attribute.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/ooo_data_enabled
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/ooo_data_enabled
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the out of order data transfer enabled UFS
|
||||
@@ -793,6 +861,7 @@ Description: This file provides the out of order data transfer enabled UFS
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/bkops_status
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/bkops_status
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the background operations status UFS device
|
||||
@@ -802,6 +871,7 @@ Description: This file provides the background operations status UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/purge_status
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/purge_status
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the purge operation status UFS device
|
||||
@@ -811,6 +881,7 @@ Description: This file provides the purge operation status UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_in_size
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_data_in_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum data size in a DATA IN
|
||||
@@ -820,6 +891,7 @@ Description: This file shows the maximum data size in a DATA IN
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_out_size
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_data_out_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the maximum number of bytes that can be
|
||||
@@ -829,6 +901,7 @@ Description: This file shows the maximum number of bytes that can be
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/reference_clock_frequency
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/reference_clock_frequency
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the reference clock frequency UFS device
|
||||
@@ -838,6 +911,7 @@ Description: This file provides the reference clock frequency UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/configuration_descriptor_lock
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/configuration_descriptor_lock
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows whether the configuration descriptor is locked.
|
||||
@@ -845,6 +919,7 @@ Description: This file shows whether the configuration descriptor is locked.
|
||||
UFS specifications 2.1. The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_number_of_rtt
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_number_of_rtt
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the maximum current number of
|
||||
@@ -855,6 +930,7 @@ Description: This file provides the maximum current number of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/exception_event_control
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/exception_event_control
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the exception event control UFS device
|
||||
@@ -864,6 +940,7 @@ Description: This file provides the exception event control UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/exception_event_status
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/exception_event_status
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the exception event status UFS device
|
||||
@@ -873,6 +950,7 @@ Description: This file provides the exception event status UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/ffu_status
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/ffu_status
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file provides the ffu status UFS device attribute.
|
||||
@@ -882,6 +960,7 @@ Description: This file provides the ffu status UFS device attribute.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/psa_state
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/psa_state
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file show the PSA feature status. The full information
|
||||
@@ -890,6 +969,7 @@ Description: This file show the PSA feature status. The full information
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/psa_data_size
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/psa_data_size
|
||||
Date: February 2018
|
||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||
Description: This file shows the amount of data that the host plans to
|
||||
@@ -912,6 +992,7 @@ Description: This file shows the The amount of physical memory needed
|
||||
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_lvl
|
||||
What: /sys/bus/platform/devices/*.ufs/rpm_lvl
|
||||
Date: September 2014
|
||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Description: This entry could be used to set or show the UFS device
|
||||
@@ -938,6 +1019,7 @@ Description: This entry could be used to set or show the UFS device
|
||||
== ====================================================
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
||||
What: /sys/bus/platform/devices/*.ufs/rpm_target_dev_state
|
||||
Date: February 2018
|
||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Description: This entry shows the target power mode of an UFS device
|
||||
@@ -946,6 +1028,7 @@ Description: This entry shows the target power mode of an UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_link_state
|
||||
What: /sys/bus/platform/devices/*.ufs/rpm_target_link_state
|
||||
Date: February 2018
|
||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Description: This entry shows the target state of an UFS UIC link
|
||||
@@ -954,6 +1037,7 @@ Description: This entry shows the target state of an UFS UIC link
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_lvl
|
||||
What: /sys/bus/platform/devices/*.ufs/spm_lvl
|
||||
Date: September 2014
|
||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Description: This entry could be used to set or show the UFS device
|
||||
@@ -980,6 +1064,7 @@ Description: This entry could be used to set or show the UFS device
|
||||
== ====================================================
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
||||
What: /sys/bus/platform/devices/*.ufs/spm_target_dev_state
|
||||
Date: February 2018
|
||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Description: This entry shows the target power mode of an UFS device
|
||||
@@ -988,6 +1073,7 @@ Description: This entry shows the target power mode of an UFS device
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_link_state
|
||||
What: /sys/bus/platform/devices/*.ufs/spm_target_link_state
|
||||
Date: February 2018
|
||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Description: This entry shows the target state of an UFS UIC link
|
||||
@@ -996,6 +1082,7 @@ Description: This entry shows the target state of an UFS UIC link
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/monitor_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/monitor_enable
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the status of performance monitor enablement
|
||||
@@ -1003,6 +1090,7 @@ Description: This file shows the status of performance monitor enablement
|
||||
is stopped, the performance data collected is also cleared.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/monitor_chunk_size
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/monitor_chunk_size
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file tells the monitor to focus on requests transferring
|
||||
@@ -1010,6 +1098,7 @@ Description: This file tells the monitor to focus on requests transferring
|
||||
It can only be changed when monitor is disabled.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_total_sectors
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_total_sectors
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows how many sectors (in 512 Bytes) have been
|
||||
@@ -1018,6 +1107,7 @@ Description: This file shows how many sectors (in 512 Bytes) have been
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_total_busy
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_total_busy
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows how long (in micro seconds) has been spent
|
||||
@@ -1026,6 +1116,7 @@ Description: This file shows how long (in micro seconds) has been spent
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_nr_requests
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_nr_requests
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows how many read requests have been sent after
|
||||
@@ -1034,6 +1125,7 @@ Description: This file shows how many read requests have been sent after
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_max
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_max
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the maximum latency (in micro seconds) of
|
||||
@@ -1042,6 +1134,7 @@ Description: This file shows the maximum latency (in micro seconds) of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_min
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_min
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the minimum latency (in micro seconds) of
|
||||
@@ -1050,6 +1143,7 @@ Description: This file shows the minimum latency (in micro seconds) of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_avg
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_avg
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the average latency (in micro seconds) of
|
||||
@@ -1058,6 +1152,7 @@ Description: This file shows the average latency (in micro seconds) of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_sum
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_sum
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the total latency (in micro seconds) of
|
||||
@@ -1066,6 +1161,7 @@ Description: This file shows the total latency (in micro seconds) of
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_total_sectors
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_total_sectors
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows how many sectors (in 512 Bytes) have been sent
|
||||
@@ -1074,6 +1170,7 @@ Description: This file shows how many sectors (in 512 Bytes) have been sent
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_total_busy
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_total_busy
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows how long (in micro seconds) has been spent
|
||||
@@ -1082,6 +1179,7 @@ Description: This file shows how long (in micro seconds) has been spent
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_nr_requests
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_nr_requests
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows how many write requests have been sent after
|
||||
@@ -1090,6 +1188,7 @@ Description: This file shows how many write requests have been sent after
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_max
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_max
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the maximum latency (in micro seconds) of write
|
||||
@@ -1098,6 +1197,7 @@ Description: This file shows the maximum latency (in micro seconds) of write
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_min
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_min
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the minimum latency (in micro seconds) of write
|
||||
@@ -1106,6 +1206,7 @@ Description: This file shows the minimum latency (in micro seconds) of write
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_avg
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_avg
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the average latency (in micro seconds) of write
|
||||
@@ -1114,6 +1215,7 @@ Description: This file shows the average latency (in micro seconds) of write
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_sum
|
||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_sum
|
||||
Date: January 2021
|
||||
Contact: Can Guo <cang@codeaurora.org>
|
||||
Description: This file shows the total latency (in micro seconds) of write
|
||||
@@ -1122,6 +1224,7 @@ Description: This file shows the total latency (in micro seconds) of write
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_presv_us_en
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/wb_presv_us_en
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows if preserve user-space was configured
|
||||
@@ -1129,6 +1232,7 @@ Description: This entry shows if preserve user-space was configured
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_shared_alloc_units
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/wb_shared_alloc_units
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the shared allocated units of WB buffer
|
||||
@@ -1136,6 +1240,7 @@ Description: This entry shows the shared allocated units of WB buffer
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_type
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/wb_type
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the configured WB type.
|
||||
@@ -1144,6 +1249,7 @@ Description: This entry shows the configured WB type.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_buff_cap_adj
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_buff_cap_adj
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the total user-space decrease in shared
|
||||
@@ -1154,6 +1260,7 @@ Description: This entry shows the total user-space decrease in shared
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_max_alloc_units
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_max_alloc_units
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the Maximum total WriteBooster Buffer size
|
||||
@@ -1162,6 +1269,7 @@ Description: This entry shows the Maximum total WriteBooster Buffer size
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_max_wb_luns
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_max_wb_luns
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the maximum number of luns that can support
|
||||
@@ -1170,6 +1278,7 @@ Description: This entry shows the maximum number of luns that can support
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_sup_red_type
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_sup_red_type
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: The supportability of user space reduction mode
|
||||
@@ -1184,6 +1293,7 @@ Description: The supportability of user space reduction mode
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_sup_wb_type
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_sup_wb_type
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: The supportability of WriteBooster Buffer type.
|
||||
@@ -1198,6 +1308,7 @@ Description: The supportability of WriteBooster Buffer type.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/wb_enable
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the status of WriteBooster.
|
||||
@@ -1210,6 +1321,7 @@ Description: This entry shows the status of WriteBooster.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_flush_en
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/wb_flush_en
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows if flush is enabled.
|
||||
@@ -1222,6 +1334,7 @@ Description: This entry shows if flush is enabled.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_flush_during_h8
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/wb_flush_during_h8
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: Flush WriteBooster Buffer during hibernate state.
|
||||
@@ -1236,6 +1349,7 @@ Description: Flush WriteBooster Buffer during hibernate state.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_avail_buf
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_avail_buf
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the amount of unused WriteBooster buffer
|
||||
@@ -1244,6 +1358,7 @@ Description: This entry shows the amount of unused WriteBooster buffer
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_cur_buf
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_cur_buf
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the amount of unused current buffer.
|
||||
@@ -1251,6 +1366,7 @@ Description: This entry shows the amount of unused current buffer.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_flush_status
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_flush_status
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows the flush operation status.
|
||||
@@ -1267,6 +1383,7 @@ Description: This entry shows the flush operation status.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_life_time_est
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_life_time_est
|
||||
Date: June 2020
|
||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||
Description: This entry shows an indication of the WriteBooster Buffer
|
||||
@@ -1289,6 +1406,7 @@ Description: This entry shows the configured size of WriteBooster buffer.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/wb_on
|
||||
What: /sys/bus/platform/devices/*.ufs/wb_on
|
||||
Date: January 2021
|
||||
Contact: Bean Huo <beanhuo@micron.com>
|
||||
Description: This node is used to set or display whether UFS WriteBooster is
|
||||
@@ -1300,6 +1418,7 @@ Description: This node is used to set or display whether UFS WriteBooster is
|
||||
disable/enable WriteBooster through this sysfs node.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_version
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the HPB specification version.
|
||||
@@ -1310,6 +1429,7 @@ Description: This entry shows the HPB specification version.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
|
||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_control
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows an indication of the HPB control mode.
|
||||
@@ -1319,6 +1439,7 @@ Description: This entry shows an indication of the HPB control mode.
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_region_size
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the bHPBRegionSize which can be calculated
|
||||
@@ -1328,6 +1449,7 @@ Description: This entry shows the bHPBRegionSize which can be calculated
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_number_lu
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the maximum number of HPB LU supported by
|
||||
@@ -1338,6 +1460,7 @@ Description: This entry shows the maximum number of HPB LU supported by
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_subregion_size
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_subregion_size
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the bHPBSubRegionSize, which can be
|
||||
@@ -1349,6 +1472,7 @@ Description: This entry shows the bHPBSubRegionSize, which can be
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_max_active_regions
|
||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_max_active_regions
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the maximum number of active HPB regions that
|
||||
@@ -1434,6 +1558,7 @@ Description: This entry shows the requeue timeout threshold for write buffer
|
||||
this entry.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_size_hpb_single_cmd
|
||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_data_size_hpb_single_cmd
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the maximum HPB data size for using a single HPB
|
||||
@@ -1450,6 +1575,7 @@ Description: This entry shows the maximum HPB data size for using a single HPB
|
||||
The file is read only.
|
||||
|
||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/hpb_enable
|
||||
What: /sys/bus/platform/devices/*.ufs/flags/hpb_enable
|
||||
Date: June 2021
|
||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||
Description: This entry shows the status of HPB.
|
||||
|
||||
@@ -24,14 +24,14 @@ Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The version of the ESRT structure provided by the firmware.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: Each ESRT entry is identified by a GUID, and each gets a
|
||||
subdirectory under entries/ .
|
||||
example: /sys/firmware/efi/esrt/entries/entry0/
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/fw_type
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/fw_type
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: What kind of firmware entry this is:
|
||||
@@ -43,33 +43,33 @@ Description: What kind of firmware entry this is:
|
||||
3 UEFI Driver
|
||||
== ===============
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/fw_class
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/fw_class
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: This is the entry's guid, and will match the directory name.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/fw_version
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/fw_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The version of the firmware currently installed. This is a
|
||||
32-bit unsigned integer.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/lowest_supported_fw_version
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/lowest_supported_fw_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The lowest version of the firmware that can be installed.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/capsule_flags
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/capsule_flags
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: Flags that must be passed to UpdateCapsule()
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/last_attempt_version
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/last_attempt_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The last firmware version for which an update was attempted.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/last_attempt_status
|
||||
What: /sys/firmware/efi/esrt/entries/entry<N>/last_attempt_status
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The result of the last firmware update attempt for the
|
||||
|
||||
@@ -10,7 +10,7 @@ Description:
|
||||
any cache it aliases, if any).
|
||||
Users: kernel memory tuning tools
|
||||
|
||||
What: /sys/kernel/slab/cache/aliases
|
||||
What: /sys/kernel/slab/<cache>/aliases
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -19,7 +19,7 @@ Description:
|
||||
The aliases file is read-only and specifies how many caches
|
||||
have merged into this cache.
|
||||
|
||||
What: /sys/kernel/slab/cache/align
|
||||
What: /sys/kernel/slab/<cache>/align
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -28,7 +28,7 @@ Description:
|
||||
The align file is read-only and specifies the cache's object
|
||||
alignment in bytes.
|
||||
|
||||
What: /sys/kernel/slab/cache/alloc_calls
|
||||
What: /sys/kernel/slab/<cache>/alloc_calls
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -39,7 +39,7 @@ Description:
|
||||
The alloc_calls file only contains information if debugging is
|
||||
enabled for that cache (see Documentation/vm/slub.rst).
|
||||
|
||||
What: /sys/kernel/slab/cache/alloc_fastpath
|
||||
What: /sys/kernel/slab/<cache>/alloc_fastpath
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -50,7 +50,7 @@ Description:
|
||||
current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/alloc_from_partial
|
||||
What: /sys/kernel/slab/<cache>/alloc_from_partial
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -62,7 +62,7 @@ Description:
|
||||
count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/alloc_refill
|
||||
What: /sys/kernel/slab/<cache>/alloc_refill
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -73,7 +73,7 @@ Description:
|
||||
remote cpu frees. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/alloc_slab
|
||||
What: /sys/kernel/slab/<cache>/alloc_slab
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -84,7 +84,7 @@ Description:
|
||||
clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/alloc_slowpath
|
||||
What: /sys/kernel/slab/<cache>/alloc_slowpath
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -96,7 +96,7 @@ Description:
|
||||
clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/cache_dma
|
||||
What: /sys/kernel/slab/<cache>/cache_dma
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -106,7 +106,7 @@ Description:
|
||||
are from ZONE_DMA.
|
||||
Available when CONFIG_ZONE_DMA is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/cpu_slabs
|
||||
What: /sys/kernel/slab/<cache>/cpu_slabs
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -115,7 +115,7 @@ Description:
|
||||
The cpu_slabs file is read-only and displays how many cpu slabs
|
||||
are active and their NUMA locality.
|
||||
|
||||
What: /sys/kernel/slab/cache/cpuslab_flush
|
||||
What: /sys/kernel/slab/<cache>/cpuslab_flush
|
||||
Date: April 2009
|
||||
KernelVersion: 2.6.31
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -128,7 +128,7 @@ Description:
|
||||
current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/ctor
|
||||
What: /sys/kernel/slab/<cache>/ctor
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -138,7 +138,7 @@ Description:
|
||||
constructor function, which is invoked for each object when a
|
||||
new slab is allocated.
|
||||
|
||||
What: /sys/kernel/slab/cache/deactivate_empty
|
||||
What: /sys/kernel/slab/<cache>/deactivate_empty
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -148,7 +148,7 @@ Description:
|
||||
was deactivated. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/deactivate_full
|
||||
What: /sys/kernel/slab/<cache>/deactivate_full
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -158,7 +158,7 @@ Description:
|
||||
was deactivated. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/deactivate_remote_frees
|
||||
What: /sys/kernel/slab/<cache>/deactivate_remote_frees
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -169,7 +169,7 @@ Description:
|
||||
remotely. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/deactivate_to_head
|
||||
What: /sys/kernel/slab/<cache>/deactivate_to_head
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -180,7 +180,7 @@ Description:
|
||||
list. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/deactivate_to_tail
|
||||
What: /sys/kernel/slab/<cache>/deactivate_to_tail
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -191,7 +191,7 @@ Description:
|
||||
list. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/destroy_by_rcu
|
||||
What: /sys/kernel/slab/<cache>/destroy_by_rcu
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -200,7 +200,7 @@ Description:
|
||||
The destroy_by_rcu file is read-only and specifies whether
|
||||
slabs (not objects) are freed by rcu.
|
||||
|
||||
What: /sys/kernel/slab/cache/free_add_partial
|
||||
What: /sys/kernel/slab/<cache>/free_add_partial
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -211,7 +211,7 @@ Description:
|
||||
partial list. It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/free_calls
|
||||
What: /sys/kernel/slab/<cache>/free_calls
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -221,7 +221,7 @@ Description:
|
||||
object frees if slab debugging is enabled (see
|
||||
Documentation/vm/slub.rst).
|
||||
|
||||
What: /sys/kernel/slab/cache/free_fastpath
|
||||
What: /sys/kernel/slab/<cache>/free_fastpath
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -232,7 +232,7 @@ Description:
|
||||
It can be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/free_frozen
|
||||
What: /sys/kernel/slab/<cache>/free_frozen
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -243,7 +243,7 @@ Description:
|
||||
clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/free_remove_partial
|
||||
What: /sys/kernel/slab/<cache>/free_remove_partial
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -255,7 +255,7 @@ Description:
|
||||
count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/free_slab
|
||||
What: /sys/kernel/slab/<cache>/free_slab
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -266,7 +266,7 @@ Description:
|
||||
the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/free_slowpath
|
||||
What: /sys/kernel/slab/<cache>/free_slowpath
|
||||
Date: February 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -277,7 +277,7 @@ Description:
|
||||
be written to clear the current count.
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/hwcache_align
|
||||
What: /sys/kernel/slab/<cache>/hwcache_align
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -286,7 +286,7 @@ Description:
|
||||
The hwcache_align file is read-only and specifies whether
|
||||
objects are aligned on cachelines.
|
||||
|
||||
What: /sys/kernel/slab/cache/min_partial
|
||||
What: /sys/kernel/slab/<cache>/min_partial
|
||||
Date: February 2009
|
||||
KernelVersion: 2.6.30
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -297,7 +297,7 @@ Description:
|
||||
allocating new slabs. Such slabs may be reclaimed by utilizing
|
||||
the shrink file.
|
||||
|
||||
What: /sys/kernel/slab/cache/object_size
|
||||
What: /sys/kernel/slab/<cache>/object_size
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -306,7 +306,7 @@ Description:
|
||||
The object_size file is read-only and specifies the cache's
|
||||
object size.
|
||||
|
||||
What: /sys/kernel/slab/cache/objects
|
||||
What: /sys/kernel/slab/<cache>/objects
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -315,7 +315,7 @@ Description:
|
||||
The objects file is read-only and displays how many objects are
|
||||
active and from which nodes they are from.
|
||||
|
||||
What: /sys/kernel/slab/cache/objects_partial
|
||||
What: /sys/kernel/slab/<cache>/objects_partial
|
||||
Date: April 2008
|
||||
KernelVersion: 2.6.26
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -325,7 +325,7 @@ Description:
|
||||
objects are on partial slabs and from which nodes they are
|
||||
from.
|
||||
|
||||
What: /sys/kernel/slab/cache/objs_per_slab
|
||||
What: /sys/kernel/slab/<cache>/objs_per_slab
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -333,9 +333,9 @@ Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
Description:
|
||||
The file objs_per_slab is read-only and specifies how many
|
||||
objects may be allocated from a single slab of the order
|
||||
specified in /sys/kernel/slab/cache/order.
|
||||
specified in /sys/kernel/slab/<cache>/order.
|
||||
|
||||
What: /sys/kernel/slab/cache/order
|
||||
What: /sys/kernel/slab/<cache>/order
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -352,7 +352,7 @@ Description:
|
||||
order is used and this sysfs entry can not be used to change
|
||||
the order at run time.
|
||||
|
||||
What: /sys/kernel/slab/cache/order_fallback
|
||||
What: /sys/kernel/slab/<cache>/order_fallback
|
||||
Date: April 2008
|
||||
KernelVersion: 2.6.26
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -365,7 +365,7 @@ Description:
|
||||
|
||||
Available when CONFIG_SLUB_STATS is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/partial
|
||||
What: /sys/kernel/slab/<cache>/partial
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -374,7 +374,7 @@ Description:
|
||||
The partial file is read-only and displays how long many
|
||||
partial slabs there are and how long each node's list is.
|
||||
|
||||
What: /sys/kernel/slab/cache/poison
|
||||
What: /sys/kernel/slab/<cache>/poison
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -383,7 +383,7 @@ Description:
|
||||
The poison file specifies whether objects should be poisoned
|
||||
when a new slab is allocated.
|
||||
|
||||
What: /sys/kernel/slab/cache/reclaim_account
|
||||
What: /sys/kernel/slab/<cache>/reclaim_account
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -392,7 +392,7 @@ Description:
|
||||
The reclaim_account file specifies whether the cache's objects
|
||||
are reclaimable (and grouped by their mobility).
|
||||
|
||||
What: /sys/kernel/slab/cache/red_zone
|
||||
What: /sys/kernel/slab/<cache>/red_zone
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -401,7 +401,7 @@ Description:
|
||||
The red_zone file specifies whether the cache's objects are red
|
||||
zoned.
|
||||
|
||||
What: /sys/kernel/slab/cache/remote_node_defrag_ratio
|
||||
What: /sys/kernel/slab/<cache>/remote_node_defrag_ratio
|
||||
Date: January 2008
|
||||
KernelVersion: 2.6.25
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -415,7 +415,7 @@ Description:
|
||||
|
||||
Available when CONFIG_NUMA is enabled.
|
||||
|
||||
What: /sys/kernel/slab/cache/sanity_checks
|
||||
What: /sys/kernel/slab/<cache>/sanity_checks
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -426,7 +426,7 @@ Description:
|
||||
checks. Caches that enable sanity_checks cannot be merged with
|
||||
caches that do not.
|
||||
|
||||
What: /sys/kernel/slab/cache/shrink
|
||||
What: /sys/kernel/slab/<cache>/shrink
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -442,7 +442,7 @@ Description:
|
||||
adversely impact other running applications. So it
|
||||
should be used with care.
|
||||
|
||||
What: /sys/kernel/slab/cache/slab_size
|
||||
What: /sys/kernel/slab/<cache>/slab_size
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -451,7 +451,7 @@ Description:
|
||||
The slab_size file is read-only and specifies the object size
|
||||
with metadata (debugging information and alignment) in bytes.
|
||||
|
||||
What: /sys/kernel/slab/cache/slabs
|
||||
What: /sys/kernel/slab/<cache>/slabs
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -461,7 +461,7 @@ Description:
|
||||
there are (both cpu and partial) and from which nodes they are
|
||||
from.
|
||||
|
||||
What: /sys/kernel/slab/cache/store_user
|
||||
What: /sys/kernel/slab/<cache>/store_user
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -470,7 +470,7 @@ Description:
|
||||
The store_user file specifies whether the location of
|
||||
allocation or free should be tracked for a cache.
|
||||
|
||||
What: /sys/kernel/slab/cache/total_objects
|
||||
What: /sys/kernel/slab/<cache>/total_objects
|
||||
Date: April 2008
|
||||
KernelVersion: 2.6.26
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -479,7 +479,7 @@ Description:
|
||||
The total_objects file is read-only and displays how many total
|
||||
objects a cache has and from which nodes they are from.
|
||||
|
||||
What: /sys/kernel/slab/cache/trace
|
||||
What: /sys/kernel/slab/<cache>/trace
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -488,7 +488,7 @@ Description:
|
||||
The trace file specifies whether object allocations and frees
|
||||
should be traced.
|
||||
|
||||
What: /sys/kernel/slab/cache/validate
|
||||
What: /sys/kernel/slab/<cache>/validate
|
||||
Date: May 2007
|
||||
KernelVersion: 2.6.22
|
||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
@@ -496,3 +496,24 @@ Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||
Description:
|
||||
Writing to the validate file causes SLUB to traverse all of its
|
||||
cache's objects and check the validity of metadata.
|
||||
|
||||
What: /sys/kernel/slab/<cache>/usersize
|
||||
Date: Jun 2017
|
||||
Contact: David Windsor <dave@nullcore.net>
|
||||
Description:
|
||||
The usersize file is read-only and contains the usercopy
|
||||
region size.
|
||||
|
||||
What: /sys/kernel/slab/<cache>/slabs_cpu_partial
|
||||
Date: Aug 2011
|
||||
Contact: Christoph Lameter <cl@linux.com>
|
||||
Description:
|
||||
This read-only file shows the number of partialli allocated
|
||||
frozen slabs.
|
||||
|
||||
What: /sys/kernel/slab/<cache>/cpu_partial
|
||||
Date: Aug 2011
|
||||
Contact: Christoph Lameter <cl@linux.com>
|
||||
Description:
|
||||
This read-only file shows the number of per cpu partial
|
||||
pages to keep around.
|
||||
|
||||
129
Documentation/ABI/testing/sysfs-mce
Normal file
129
Documentation/ABI/testing/sysfs-mce
Normal file
@@ -0,0 +1,129 @@
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/
|
||||
Contact: Andi Kleen <ak@linux.intel.com>
|
||||
Date: Feb, 2007
|
||||
Description:
|
||||
(X = CPU number)
|
||||
|
||||
Machine checks report internal hardware error conditions
|
||||
detected by the CPU. Uncorrected errors typically cause a
|
||||
machine check (often with panic), corrected ones cause a
|
||||
machine check log entry.
|
||||
|
||||
For more details about the x86 machine check architecture
|
||||
see the Intel and AMD architecture manuals from their
|
||||
developer websites.
|
||||
|
||||
For more details about the architecture
|
||||
see http://one.firstfloor.org/~andi/mce.pdf
|
||||
|
||||
Each CPU has its own directory.
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/bank<Y>
|
||||
Contact: Andi Kleen <ak@linux.intel.com>
|
||||
Date: Feb, 2007
|
||||
Description:
|
||||
(Y bank number)
|
||||
|
||||
64bit Hex bitmask enabling/disabling specific subevents for
|
||||
bank Y.
|
||||
|
||||
When a bit in the bitmask is zero then the respective
|
||||
subevent will not be reported.
|
||||
|
||||
By default all events are enabled.
|
||||
|
||||
Note that BIOS maintain another mask to disable specific events
|
||||
per bank. This is not visible here
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/check_interval
|
||||
Contact: Andi Kleen <ak@linux.intel.com>
|
||||
Date: Feb, 2007
|
||||
Description:
|
||||
The entries appear for each CPU, but they are truly shared
|
||||
between all CPUs.
|
||||
|
||||
How often to poll for corrected machine check errors, in
|
||||
seconds (Note output is hexadecimal). Default 5 minutes.
|
||||
When the poller finds MCEs it triggers an exponential speedup
|
||||
(poll more often) on the polling interval. When the poller
|
||||
stops finding MCEs, it triggers an exponential backoff
|
||||
(poll less often) on the polling interval. The check_interval
|
||||
variable is both the initial and maximum polling interval.
|
||||
0 means no polling for corrected machine check errors
|
||||
(but some corrected errors might be still reported
|
||||
in other ways)
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/tolerant
|
||||
Contact: Andi Kleen <ak@linux.intel.com>
|
||||
Date: Feb, 2007
|
||||
Description:
|
||||
The entries appear for each CPU, but they are truly shared
|
||||
between all CPUs.
|
||||
|
||||
Tolerance level. When a machine check exception occurs for a
|
||||
non corrected machine check the kernel can take different
|
||||
actions.
|
||||
|
||||
Since machine check exceptions can happen any time it is
|
||||
sometimes risky for the kernel to kill a process because it
|
||||
defies normal kernel locking rules. The tolerance level
|
||||
configures how hard the kernel tries to recover even at some
|
||||
risk of deadlock. Higher tolerant values trade potentially
|
||||
better uptime with the risk of a crash or even corruption
|
||||
(for tolerant >= 3).
|
||||
|
||||
== ===========================================================
|
||||
0 always panic on uncorrected errors, log corrected errors
|
||||
1 panic or SIGBUS on uncorrected errors, log corrected errors
|
||||
2 SIGBUS or log uncorrected errors, log corrected errors
|
||||
3 never panic or SIGBUS, log all errors (for testing only)
|
||||
== ===========================================================
|
||||
|
||||
Default: 1
|
||||
|
||||
Note this only makes a difference if the CPU allows recovery
|
||||
from a machine check exception. Current x86 CPUs generally
|
||||
do not.
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/trigger
|
||||
Contact: Andi Kleen <ak@linux.intel.com>
|
||||
Date: Feb, 2007
|
||||
Description:
|
||||
The entries appear for each CPU, but they are truly shared
|
||||
between all CPUs.
|
||||
|
||||
Program to run when a machine check event is detected.
|
||||
This is an alternative to running mcelog regularly from cron
|
||||
and allows to detect events faster.
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/monarch_timeout
|
||||
Contact: Andi Kleen <ak@linux.intel.com>
|
||||
Date: Feb, 2007
|
||||
Description:
|
||||
How long to wait for the other CPUs to machine check too on a
|
||||
exception. 0 to disable waiting for other CPUs.
|
||||
|
||||
Unit: us
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/ignore_ce
|
||||
Contact: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
|
||||
Date: Jun 2009
|
||||
Description:
|
||||
Disables polling and CMCI for corrected errors.
|
||||
All corrected events are not cleared and kept in bank MSRs.
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/dont_log_ce
|
||||
Contact: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
|
||||
Date: Jun 2009
|
||||
Description:
|
||||
Disables logging for corrected errors.
|
||||
All reported corrected errors will be cleared silently.
|
||||
|
||||
This option will be useful if you never care about corrected
|
||||
errors.
|
||||
|
||||
What: /sys/devices/system/machinecheck/machinecheckX/cmci_disabled
|
||||
Contact: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
|
||||
Date: Jun 2009
|
||||
Description:
|
||||
Disables the CMCI feature.
|
||||
@@ -41,6 +41,13 @@ KernelVersion: 3.3
|
||||
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Description: Module size in bytes.
|
||||
|
||||
What: /sys/module/*/initstate
|
||||
Date: Nov 2006
|
||||
KernelVersion: 2.6.19
|
||||
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Description: Show the initialization state(live, coming, going) of
|
||||
the module.
|
||||
|
||||
What: /sys/module/*/taint
|
||||
Date: Jan 2012
|
||||
KernelVersion: 3.3
|
||||
|
||||
@@ -133,7 +133,10 @@ Contact: linux-acpi@vger.kernel.org
|
||||
Description:
|
||||
(RO) Presents SSC (spread spectrum clock) information for EMI
|
||||
(Electro magnetic interference) control. This is a bit mask.
|
||||
|
||||
======= ==========================================
|
||||
Bits Description
|
||||
======= ==========================================
|
||||
[7:0] Sets clock spectrum spread percentage:
|
||||
0x00=0.2% , 0x3F=10%
|
||||
1 LSB = 0.1% increase in spread (for
|
||||
@@ -151,3 +154,4 @@ Description:
|
||||
[10] 0: No white noise. 1: Add white noise
|
||||
to spread waveform
|
||||
[11] When 1, future writes are ignored.
|
||||
======= ==========================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
What: /sys/devices/platform/8086%x:00/firmware_version
|
||||
What: /sys/devices/platform/8086<x>:00/firmware_version
|
||||
Date: November 2016
|
||||
KernelVersion: 4.10
|
||||
Contact: "Sebastien Guiriec" <sebastien.guiriec@intel.com>
|
||||
|
||||
@@ -6,7 +6,7 @@ Description:
|
||||
providing a standardized interface to the ancillary
|
||||
features of PTP hardware clocks.
|
||||
|
||||
What: /sys/class/ptp/ptpN/
|
||||
What: /sys/class/ptp/ptp<N>/
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -14,7 +14,7 @@ Description:
|
||||
hardware clock registered into the PTP class driver
|
||||
subsystem.
|
||||
|
||||
What: /sys/class/ptp/ptpN/clock_name
|
||||
What: /sys/class/ptp/ptp<N>/clock_name
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -25,7 +25,7 @@ Description:
|
||||
MAC based ones. The string does not necessarily have
|
||||
to be any kind of unique id.
|
||||
|
||||
What: /sys/class/ptp/ptpN/max_adjustment
|
||||
What: /sys/class/ptp/ptp<N>/max_adjustment
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -33,42 +33,42 @@ Description:
|
||||
frequency adjustment value (a positive integer) in
|
||||
parts per billion.
|
||||
|
||||
What: /sys/class/ptp/ptpN/max_vclocks
|
||||
What: /sys/class/ptp/ptp<N>/max_vclocks
|
||||
Date: May 2021
|
||||
Contact: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
Description:
|
||||
This file contains the maximum number of ptp vclocks.
|
||||
Write integer to re-configure it.
|
||||
|
||||
What: /sys/class/ptp/ptpN/n_alarms
|
||||
What: /sys/class/ptp/ptp<N>/n_alarms
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
This file contains the number of periodic or one shot
|
||||
alarms offer by the PTP hardware clock.
|
||||
|
||||
What: /sys/class/ptp/ptpN/n_external_timestamps
|
||||
What: /sys/class/ptp/ptp<N>/n_external_timestamps
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
This file contains the number of external timestamp
|
||||
channels offered by the PTP hardware clock.
|
||||
|
||||
What: /sys/class/ptp/ptpN/n_periodic_outputs
|
||||
What: /sys/class/ptp/ptp<N>/n_periodic_outputs
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
This file contains the number of programmable periodic
|
||||
output channels offered by the PTP hardware clock.
|
||||
|
||||
What: /sys/class/ptp/ptpN/n_pins
|
||||
What: /sys/class/ptp/ptp<N>/n_pins
|
||||
Date: March 2014
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
This file contains the number of programmable pins
|
||||
offered by the PTP hardware clock.
|
||||
|
||||
What: /sys/class/ptp/ptpN/n_vclocks
|
||||
What: /sys/class/ptp/ptp<N>/n_vclocks
|
||||
Date: May 2021
|
||||
Contact: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
Description:
|
||||
@@ -81,7 +81,7 @@ Description:
|
||||
switches the physical clock back to normal, adjustable
|
||||
operation.
|
||||
|
||||
What: /sys/class/ptp/ptpN/pins
|
||||
What: /sys/class/ptp/ptp<N>/pins
|
||||
Date: March 2014
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -94,7 +94,7 @@ Description:
|
||||
assignment may be changed by two writing numbers into
|
||||
the file.
|
||||
|
||||
What: /sys/class/ptp/ptpN/pps_available
|
||||
What: /sys/class/ptp/ptp<N>/pps_available
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -103,7 +103,7 @@ Description:
|
||||
"1" means that the PPS is supported, while "0" means
|
||||
not supported.
|
||||
|
||||
What: /sys/class/ptp/ptpN/extts_enable
|
||||
What: /sys/class/ptp/ptp<N>/extts_enable
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -113,7 +113,7 @@ Description:
|
||||
To disable external timestamps, write the channel
|
||||
index followed by a "0" into the file.
|
||||
|
||||
What: /sys/class/ptp/ptpN/fifo
|
||||
What: /sys/class/ptp/ptp<N>/fifo
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -121,7 +121,7 @@ Description:
|
||||
the form of three integers: channel index, seconds,
|
||||
and nanoseconds.
|
||||
|
||||
What: /sys/class/ptp/ptpN/period
|
||||
What: /sys/class/ptp/ptp<N>/period
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
@@ -132,7 +132,7 @@ Description:
|
||||
period nanoseconds. To disable a periodic output, set
|
||||
all the seconds and nanoseconds values to zero.
|
||||
|
||||
What: /sys/class/ptp/ptpN/pps_enable
|
||||
What: /sys/class/ptp/ptp<N>/pps_enable
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
|
||||
@@ -9,7 +9,7 @@ Description:
|
||||
The file supports poll() to detect virtual
|
||||
console switches.
|
||||
|
||||
What: /sys/class/tty/tty0/active
|
||||
What: /sys/class/tty/tty<x>/active
|
||||
Date: Nov 2010
|
||||
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Description:
|
||||
@@ -18,7 +18,7 @@ Description:
|
||||
The file supports poll() to detect virtual
|
||||
console switches.
|
||||
|
||||
What: /sys/class/tty/ttyS0/uartclk
|
||||
What: /sys/class/tty/ttyS<x>/uartclk
|
||||
Date: Sep 2012
|
||||
Contact: Tomas Hlavacek <tmshlvck@gmail.com>
|
||||
Description:
|
||||
@@ -29,7 +29,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/type
|
||||
What: /sys/class/tty/ttyS<x>/type
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -38,7 +38,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/line
|
||||
What: /sys/class/tty/ttyS<x>/line
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -47,7 +47,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/port
|
||||
What: /sys/class/tty/ttyS<x>/port
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -56,7 +56,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/irq
|
||||
What: /sys/class/tty/ttyS<x>/irq
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -65,7 +65,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/flags
|
||||
What: /sys/class/tty/ttyS<x>/flags
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -74,7 +74,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/xmit_fifo_size
|
||||
What: /sys/class/tty/ttyS<x>/xmit_fifo_size
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -83,7 +83,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/close_delay
|
||||
What: /sys/class/tty/ttyS<x>/close_delay
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -92,7 +92,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/closing_wait
|
||||
What: /sys/class/tty/ttyS<x>/closing_wait
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -101,7 +101,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/custom_divisor
|
||||
What: /sys/class/tty/ttyS<x>/custom_divisor
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -110,7 +110,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/io_type
|
||||
What: /sys/class/tty/ttyS<x>/io_type
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -120,7 +120,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/iomem_base
|
||||
What: /sys/class/tty/ttyS<x>/iomem_base
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -129,7 +129,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/iomem_reg_shift
|
||||
What: /sys/class/tty/ttyS<x>/iomem_reg_shift
|
||||
Date: October 2012
|
||||
Contact: Alan Cox <alan@linux.intel.com>
|
||||
Description:
|
||||
@@ -139,7 +139,7 @@ Description:
|
||||
These sysfs values expose the TIOCGSERIAL interface via
|
||||
sysfs rather than via ioctls.
|
||||
|
||||
What: /sys/class/tty/ttyS0/rx_trig_bytes
|
||||
What: /sys/class/tty/ttyS<x>/rx_trig_bytes
|
||||
Date: May 2014
|
||||
Contact: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
|
||||
Description:
|
||||
@@ -155,7 +155,7 @@ Description:
|
||||
16550A, which has 1/4/8/14 bytes trigger, the RX trigger is
|
||||
automatically changed to 4 bytes.
|
||||
|
||||
What: /sys/class/tty/ttyS0/console
|
||||
What: /sys/class/tty/ttyS<x>/console
|
||||
Date: February 2020
|
||||
Contact: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||
Description:
|
||||
|
||||
@@ -249,8 +249,7 @@ Debug messages during Boot Process
|
||||
|
||||
To activate debug messages for core code and built-in modules during
|
||||
the boot process, even before userspace and debugfs exists, use
|
||||
``dyndbg="QUERY"``, ``module.dyndbg="QUERY"``, or ``ddebug_query="QUERY"``
|
||||
(``ddebug_query`` is obsoleted by ``dyndbg``, and deprecated). QUERY follows
|
||||
``dyndbg="QUERY"`` or ``module.dyndbg="QUERY"``. QUERY follows
|
||||
the syntax described above, but must not exceed 1023 characters. Your
|
||||
bootloader may impose lower limits.
|
||||
|
||||
@@ -270,8 +269,7 @@ this boot parameter for debugging purposes.
|
||||
|
||||
If ``foo`` module is not built-in, ``foo.dyndbg`` will still be processed at
|
||||
boot time, without effect, but will be reprocessed when module is
|
||||
loaded later. ``ddebug_query=`` and bare ``dyndbg=`` are only processed at
|
||||
boot.
|
||||
loaded later. Bare ``dyndbg=`` is only processed at boot.
|
||||
|
||||
|
||||
Debug Messages at Module Initialization Time
|
||||
@@ -358,8 +356,11 @@ Examples
|
||||
// boot-args example, with newlines and comments for readability
|
||||
Kernel command line: ...
|
||||
// see whats going on in dyndbg=value processing
|
||||
dynamic_debug.verbose=1
|
||||
// enable pr_debugs in 2 builtins, #cmt is stripped
|
||||
dyndbg="module params +p #cmt ; module sys +p"
|
||||
dynamic_debug.verbose=3
|
||||
// enable pr_debugs in the btrfs module (can be builtin or loadable)
|
||||
btrfs.dyndbg="+p"
|
||||
// enable pr_debugs in all files under init/
|
||||
// and the function parse_one, #cmt is stripped
|
||||
dyndbg="file init/* +p #cmt ; func parse_one +p"
|
||||
// enable pr_debugs in 2 functions in a module loaded later
|
||||
pc87360.dyndbg="func pc87360_init_device +p; func pc87360_find +p"
|
||||
|
||||
@@ -841,11 +841,6 @@
|
||||
Format: <port#>,<type>
|
||||
See also Documentation/input/devices/joystick-parport.rst
|
||||
|
||||
ddebug_query= [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
|
||||
time. See
|
||||
Documentation/admin-guide/dynamic-debug-howto.rst for
|
||||
details. Deprecated, see dyndbg.
|
||||
|
||||
debug [KNL] Enable kernel debugging (events log level).
|
||||
|
||||
debug_boot_weak_hash
|
||||
|
||||
@@ -89,6 +89,8 @@ hardware implementation.
|
||||
All entries (except name) are optional, and should only be created in a
|
||||
given driver if the chip has the feature.
|
||||
|
||||
See Documentation/ABI/testing/sysfs-class-hwmon for a complete description
|
||||
of the attributes.
|
||||
|
||||
*****************
|
||||
Global attributes
|
||||
@@ -96,22 +98,9 @@ Global attributes
|
||||
|
||||
`name`
|
||||
The chip name.
|
||||
This should be a short, lowercase string, not containing
|
||||
whitespace, dashes, or the wildcard character '*'.
|
||||
This attribute represents the chip name. It is the only
|
||||
mandatory attribute.
|
||||
I2C devices get this attribute created automatically.
|
||||
|
||||
RO
|
||||
|
||||
`update_interval`
|
||||
The interval at which the chip will update readings.
|
||||
Unit: millisecond
|
||||
|
||||
RW
|
||||
|
||||
Some devices have a variable update rate or interval.
|
||||
This attribute can be used to change it to the desired value.
|
||||
|
||||
|
||||
********
|
||||
@@ -121,148 +110,51 @@ Voltages
|
||||
`in[0-*]_min`
|
||||
Voltage min value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
`in[0-*]_lcrit`
|
||||
Voltage critical min value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
If voltage drops to or below this limit, the system may
|
||||
take drastic action such as power down or reset. At the very
|
||||
least, it should report a fault.
|
||||
|
||||
`in[0-*]_max`
|
||||
Voltage max value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
`in[0-*]_crit`
|
||||
Voltage critical max value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RW
|
||||
|
||||
If voltage reaches or exceeds this limit, the system may
|
||||
take drastic action such as power down or reset. At the very
|
||||
least, it should report a fault.
|
||||
|
||||
`in[0-*]_input`
|
||||
Voltage input value.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
Voltage measured on the chip pin.
|
||||
|
||||
Actual voltage depends on the scaling resistors on the
|
||||
motherboard, as recommended in the chip datasheet.
|
||||
|
||||
This varies by chip and by motherboard.
|
||||
Because of this variation, values are generally NOT scaled
|
||||
by the chip driver, and must be done by the application.
|
||||
However, some drivers (notably lm87 and via686a)
|
||||
do scale, because of internal resistors built into a chip.
|
||||
These drivers will output the actual voltage. Rule of
|
||||
thumb: drivers should report the voltage values at the
|
||||
"pins" of the chip.
|
||||
|
||||
`in[0-*]_average`
|
||||
Average voltage
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
`in[0-*]_lowest`
|
||||
Historical minimum voltage
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
`in[0-*]_highest`
|
||||
Historical maximum voltage
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
`in[0-*]_reset_history`
|
||||
Reset inX_lowest and inX_highest
|
||||
|
||||
WO
|
||||
|
||||
`in_reset_history`
|
||||
Reset inX_lowest and inX_highest for all sensors
|
||||
|
||||
WO
|
||||
|
||||
`in[0-*]_label`
|
||||
Suggested voltage channel label.
|
||||
|
||||
Text string
|
||||
|
||||
Should only be created if the driver has hints about what
|
||||
this voltage channel is being used for, and user-space
|
||||
doesn't. In all other cases, the label is provided by
|
||||
user-space.
|
||||
|
||||
RO
|
||||
|
||||
`in[0-*]_enable`
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
`cpu[0-*]_vid`
|
||||
CPU core reference voltage.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
Not always correct.
|
||||
|
||||
`vrm`
|
||||
Voltage Regulator Module version number.
|
||||
|
||||
RW (but changing it should no more be necessary)
|
||||
|
||||
Originally the VRM standard version multiplied by 10, but now
|
||||
an arbitrary number, as not all standards have a version
|
||||
number.
|
||||
|
||||
Affects the way the driver calculates the CPU core reference
|
||||
voltage from the vid pins.
|
||||
|
||||
`in[0-*]_rated_min`
|
||||
Minimum rated voltage.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
`in[0-*]_rated_max`
|
||||
Maximum rated voltage.
|
||||
|
||||
Unit: millivolt
|
||||
|
||||
RO
|
||||
|
||||
Also see the Alarms section for status flags associated with voltages.
|
||||
|
||||
|
||||
@@ -273,83 +165,27 @@ Fans
|
||||
`fan[1-*]_min`
|
||||
Fan minimum value
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
RW
|
||||
|
||||
`fan[1-*]_max`
|
||||
Fan maximum value
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
Only rarely supported by the hardware.
|
||||
RW
|
||||
|
||||
`fan[1-*]_input`
|
||||
Fan input value.
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
RO
|
||||
|
||||
`fan[1-*]_div`
|
||||
Fan divisor.
|
||||
|
||||
Integer value in powers of two (1, 2, 4, 8, 16, 32, 64, 128).
|
||||
|
||||
RW
|
||||
|
||||
Some chips only support values 1, 2, 4 and 8.
|
||||
Note that this is actually an internal clock divisor, which
|
||||
affects the measurable speed range, not the read value.
|
||||
|
||||
`fan[1-*]_pulses`
|
||||
Number of tachometer pulses per fan revolution.
|
||||
|
||||
Integer value, typically between 1 and 4.
|
||||
|
||||
RW
|
||||
|
||||
This value is a characteristic of the fan connected to the
|
||||
device's input, so it has to be set in accordance with the fan
|
||||
model.
|
||||
|
||||
Should only be created if the chip has a register to configure
|
||||
the number of pulses. In the absence of such a register (and
|
||||
thus attribute) the value assumed by all devices is 2 pulses
|
||||
per fan revolution.
|
||||
|
||||
`fan[1-*]_target`
|
||||
Desired fan speed
|
||||
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
RW
|
||||
|
||||
Only makes sense if the chip supports closed-loop fan speed
|
||||
control based on the measured fan speed.
|
||||
|
||||
`fan[1-*]_label`
|
||||
Suggested fan channel label.
|
||||
|
||||
Text string
|
||||
|
||||
Should only be created if the driver has hints about what
|
||||
this fan channel is being used for, and user-space doesn't.
|
||||
In all other cases, the label is provided by user-space.
|
||||
|
||||
RO
|
||||
|
||||
`fan[1-*]_enable`
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
Also see the Alarms section for status flags associated with fans.
|
||||
|
||||
|
||||
@@ -360,63 +196,25 @@ PWM
|
||||
`pwm[1-*]`
|
||||
Pulse width modulation fan control.
|
||||
|
||||
Integer value in the range 0 to 255
|
||||
|
||||
RW
|
||||
|
||||
255 is max or 100%.
|
||||
|
||||
`pwm[1-*]_enable`
|
||||
Fan speed control method:
|
||||
|
||||
- 0: no fan speed control (i.e. fan at full speed)
|
||||
- 1: manual fan speed control enabled (using `pwm[1-*]`)
|
||||
- 2+: automatic fan speed control enabled
|
||||
|
||||
Check individual chip documentation files for automatic mode
|
||||
details.
|
||||
|
||||
RW
|
||||
|
||||
`pwm[1-*]_mode`
|
||||
- 0: DC mode (direct current)
|
||||
- 1: PWM mode (pulse-width modulation)
|
||||
|
||||
RW
|
||||
direct current or pulse-width modulation.
|
||||
|
||||
`pwm[1-*]_freq`
|
||||
Base PWM frequency in Hz.
|
||||
|
||||
Only possibly available when pwmN_mode is PWM, but not always
|
||||
present even then.
|
||||
|
||||
RW
|
||||
|
||||
`pwm[1-*]_auto_channels_temp`
|
||||
Select which temperature channels affect this PWM output in
|
||||
auto mode.
|
||||
|
||||
Bitfield, 1 is temp1, 2 is temp2, 4 is temp3 etc...
|
||||
Which values are possible depend on the chip used.
|
||||
|
||||
RW
|
||||
|
||||
`pwm[1-*]_auto_point[1-*]_pwm` / `pwm[1-*]_auto_point[1-*]_temp` / `pwm[1-*]_auto_point[1-*]_temp_hyst`
|
||||
Define the PWM vs temperature curve.
|
||||
|
||||
Number of trip points is chip-dependent. Use this for chips
|
||||
which associate trip points to PWM output channels.
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_auto_point[1-*]_pwm` / `temp[1-*]_auto_point[1-*]_temp` / `temp[1-*]_auto_point[1-*]_temp_hyst`
|
||||
Define the PWM vs temperature curve.
|
||||
|
||||
Number of trip points is chip-dependent. Use this for chips
|
||||
which associate trip points to temperature channels.
|
||||
|
||||
RW
|
||||
|
||||
There is a third case where trip points are associated to both PWM output
|
||||
channels and temperature channels: the PWM values are associated to PWM
|
||||
output channels while the temperature values are associated to temperature
|
||||
@@ -434,182 +232,70 @@ Temperatures
|
||||
`temp[1-*]_type`
|
||||
Sensor type selection.
|
||||
|
||||
Integers 1 to 6
|
||||
|
||||
RW
|
||||
|
||||
- 1: CPU embedded diode
|
||||
- 2: 3904 transistor
|
||||
- 3: thermal diode
|
||||
- 4: thermistor
|
||||
- 5: AMD AMDSI
|
||||
- 6: Intel PECI
|
||||
|
||||
Not all types are supported by all chips
|
||||
|
||||
`temp[1-*]_max`
|
||||
Temperature max value.
|
||||
|
||||
Unit: millidegree Celsius (or millivolt, see below)
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_min`
|
||||
Temperature min value.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_max_hyst`
|
||||
Temperature hysteresis value for max limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the max value.
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_min_hyst`
|
||||
Temperature hysteresis value for min limit.
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the min value.
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_input`
|
||||
Temperature input value.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
Temperature input value.
|
||||
|
||||
`temp[1-*]_crit`
|
||||
Temperature critical max value, typically greater than
|
||||
corresponding temp_max values.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_crit_hyst`
|
||||
Temperature hysteresis value for critical limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the critical value.
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_emergency`
|
||||
Temperature emergency max value, for chips supporting more than
|
||||
two upper temperature limits. Must be equal or greater than
|
||||
corresponding temp_crit values.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
two upper temperature limits.
|
||||
|
||||
`temp[1-*]_emergency_hyst`
|
||||
Temperature hysteresis value for emergency limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the emergency value.
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_lcrit`
|
||||
Temperature critical min value, typically lower than
|
||||
corresponding temp_min values.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_lcrit_hyst`
|
||||
Temperature hysteresis value for critical min limit.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the critical min value.
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_offset`
|
||||
Temperature offset which is added to the temperature reading
|
||||
by the chip.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
Read/Write value.
|
||||
|
||||
`temp[1-*]_label`
|
||||
Suggested temperature channel label.
|
||||
|
||||
Text string
|
||||
|
||||
Should only be created if the driver has hints about what
|
||||
this temperature channel is being used for, and user-space
|
||||
doesn't. In all other cases, the label is provided by
|
||||
user-space.
|
||||
|
||||
RO
|
||||
|
||||
`temp[1-*]_lowest`
|
||||
Historical minimum temperature
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
`temp[1-*]_highest`
|
||||
Historical maximum temperature
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
`temp[1-*]_reset_history`
|
||||
Reset temp_lowest and temp_highest
|
||||
|
||||
WO
|
||||
|
||||
`temp_reset_history`
|
||||
Reset temp_lowest and temp_highest for all sensors
|
||||
|
||||
WO
|
||||
|
||||
`temp[1-*]_enable`
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
`temp[1-*]_rated_min`
|
||||
Minimum rated temperature.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
`temp[1-*]_rated_max`
|
||||
Maximum rated temperature.
|
||||
|
||||
Unit: millidegree Celsius
|
||||
|
||||
RO
|
||||
|
||||
Some chips measure temperature using external thermistors and an ADC, and
|
||||
report the temperature measurement as a voltage. Converting this voltage
|
||||
back to a temperature (or the other way around for limits) requires
|
||||
@@ -627,58 +313,28 @@ Currents
|
||||
********
|
||||
|
||||
`curr[1-*]_max`
|
||||
Current max value
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
Current max value.
|
||||
|
||||
`curr[1-*]_min`
|
||||
Current min value.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
`curr[1-*]_lcrit`
|
||||
Current critical low value
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
`curr[1-*]_crit`
|
||||
Current critical high value.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RW
|
||||
|
||||
`curr[1-*]_input`
|
||||
Current input value
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
Current input value.
|
||||
|
||||
`curr[1-*]_average`
|
||||
Average current use
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
Average current use.
|
||||
|
||||
`curr[1-*]_lowest`
|
||||
Historical minimum current
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
Historical minimum current.
|
||||
|
||||
`curr[1-*]_highest`
|
||||
Historical maximum current
|
||||
Unit: milliampere
|
||||
RO
|
||||
Historical maximum current.
|
||||
|
||||
`curr[1-*]_reset_history`
|
||||
Reset currX_lowest and currX_highest
|
||||
@@ -686,34 +342,17 @@ Currents
|
||||
WO
|
||||
|
||||
`curr_reset_history`
|
||||
Reset currX_lowest and currX_highest for all sensors
|
||||
|
||||
WO
|
||||
Reset currX_lowest and currX_highest for all sensors.
|
||||
|
||||
`curr[1-*]_enable`
|
||||
Enable or disable the sensors.
|
||||
|
||||
When disabled the sensor read will return -ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
|
||||
`curr[1-*]_rated_min`
|
||||
Minimum rated current.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
`curr[1-*]_rated_max`
|
||||
Maximum rated current.
|
||||
|
||||
Unit: milliampere
|
||||
|
||||
RO
|
||||
|
||||
Also see the Alarms section for status flags associated with currents.
|
||||
|
||||
*****
|
||||
@@ -721,141 +360,62 @@ Power
|
||||
*****
|
||||
|
||||
`power[1-*]_average`
|
||||
Average power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Average power use.
|
||||
|
||||
`power[1-*]_average_interval`
|
||||
Power use averaging interval. A poll
|
||||
notification is sent to this file if the
|
||||
hardware changes the averaging interval.
|
||||
|
||||
Unit: milliseconds
|
||||
|
||||
RW
|
||||
Power use averaging interval.
|
||||
|
||||
`power[1-*]_average_interval_max`
|
||||
Maximum power use averaging interval
|
||||
|
||||
Unit: milliseconds
|
||||
|
||||
RO
|
||||
Maximum power use averaging interval.
|
||||
|
||||
`power[1-*]_average_interval_min`
|
||||
Minimum power use averaging interval
|
||||
|
||||
Unit: milliseconds
|
||||
|
||||
RO
|
||||
Minimum power use averaging interval.
|
||||
|
||||
`power[1-*]_average_highest`
|
||||
Historical average maximum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Historical average maximum power use
|
||||
|
||||
`power[1-*]_average_lowest`
|
||||
Historical average minimum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Historical average minimum power use
|
||||
|
||||
`power[1-*]_average_max`
|
||||
A poll notification is sent to
|
||||
`power[1-*]_average` when power use
|
||||
rises above this value.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
A poll notification is sent to `power[1-*]_average` when
|
||||
power use rises above this value.
|
||||
|
||||
`power[1-*]_average_min`
|
||||
A poll notification is sent to
|
||||
`power[1-*]_average` when power use
|
||||
sinks below this value.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
A poll notification is sent to `power[1-*]_average` when
|
||||
power use sinks below this value.
|
||||
|
||||
`power[1-*]_input`
|
||||
Instantaneous power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Instantaneous power use.
|
||||
|
||||
`power[1-*]_input_highest`
|
||||
Historical maximum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Historical maximum power use
|
||||
|
||||
`power[1-*]_input_lowest`
|
||||
Historical minimum power use
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Historical minimum power use.
|
||||
|
||||
`power[1-*]_reset_history`
|
||||
Reset input_highest, input_lowest,
|
||||
average_highest and average_lowest.
|
||||
|
||||
WO
|
||||
Reset input_highest, input_lowest, average_highest and
|
||||
average_lowest.
|
||||
|
||||
`power[1-*]_accuracy`
|
||||
Accuracy of the power meter.
|
||||
|
||||
Unit: Percent
|
||||
|
||||
RO
|
||||
Accuracy of the power meter.
|
||||
|
||||
`power[1-*]_cap`
|
||||
If power use rises above this limit, the
|
||||
system should take action to reduce power use.
|
||||
A poll notification is sent to this file if the
|
||||
cap is changed by the hardware. The `*_cap`
|
||||
files only appear if the cap is known to be
|
||||
enforced by hardware.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
If power use rises above this limit, the
|
||||
system should take action to reduce power use.
|
||||
|
||||
`power[1-*]_cap_hyst`
|
||||
Margin of hysteresis built around capping and
|
||||
notification.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
Margin of hysteresis built around capping and notification.
|
||||
|
||||
`power[1-*]_cap_max`
|
||||
Maximum cap that can be set.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Maximum cap that can be set.
|
||||
|
||||
`power[1-*]_cap_min`
|
||||
Minimum cap that can be set.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RO
|
||||
Minimum cap that can be set.
|
||||
|
||||
`power[1-*]_max`
|
||||
Maximum power.
|
||||
|
||||
Unit: microWatt
|
||||
|
||||
RW
|
||||
Maximum power.
|
||||
|
||||
`power[1-*]_crit`
|
||||
Critical maximum power.
|
||||
@@ -923,37 +483,16 @@ Humidity
|
||||
********
|
||||
|
||||
`humidity[1-*]_input`
|
||||
Humidity
|
||||
|
||||
Unit: milli-percent (per cent mille, pcm)
|
||||
|
||||
RO
|
||||
|
||||
Humidity.
|
||||
|
||||
`humidity[1-*]_enable`
|
||||
Enable or disable the sensors
|
||||
|
||||
When disabled the sensor read will return
|
||||
-ENODATA.
|
||||
|
||||
- 1: Enable
|
||||
- 0: Disable
|
||||
|
||||
RW
|
||||
Enable or disable the sensors.
|
||||
|
||||
`humidity[1-*]_rated_min`
|
||||
Minimum rated humidity.
|
||||
|
||||
Unit: milli-percent (per cent mille, pcm)
|
||||
|
||||
RO
|
||||
Minimum rated humidity.
|
||||
|
||||
`humidity[1-*]_rated_max`
|
||||
Maximum rated humidity.
|
||||
|
||||
Unit: milli-percent (per cent mille, pcm)
|
||||
|
||||
RO
|
||||
Maximum rated humidity.
|
||||
|
||||
******
|
||||
Alarms
|
||||
@@ -1004,30 +543,15 @@ supports it. When this boolean has value 1, the measurement for that
|
||||
channel should not be trusted.
|
||||
|
||||
`fan[1-*]_fault` / `temp[1-*]_fault`
|
||||
Input fault condition
|
||||
|
||||
- 0: no fault occurred
|
||||
- 1: fault condition
|
||||
|
||||
RO
|
||||
Input fault condition.
|
||||
|
||||
Some chips also offer the possibility to get beeped when an alarm occurs:
|
||||
|
||||
`beep_enable`
|
||||
Master beep enable
|
||||
|
||||
- 0: no beeps
|
||||
- 1: beeps
|
||||
|
||||
RW
|
||||
Master beep enable.
|
||||
|
||||
`in[0-*]_beep`, `curr[1-*]_beep`, `fan[1-*]_beep`, `temp[1-*]_beep`,
|
||||
Channel beep
|
||||
|
||||
- 0: disable
|
||||
- 1: enable
|
||||
|
||||
RW
|
||||
Channel beep.
|
||||
|
||||
In theory, a chip could provide per-limit beep masking, but no such chip
|
||||
was seen so far.
|
||||
@@ -1039,29 +563,8 @@ for compatibility reasons:
|
||||
`alarms`
|
||||
Alarm bitmask.
|
||||
|
||||
RO
|
||||
|
||||
Integer representation of one to four bytes.
|
||||
|
||||
A '1' bit means an alarm.
|
||||
|
||||
Chips should be programmed for 'comparator' mode so that
|
||||
the alarm will 'come back' after you read the register
|
||||
if it is still valid.
|
||||
|
||||
Generally a direct representation of a chip's internal
|
||||
alarm registers; there is no standard for the position
|
||||
of individual bits. For this reason, the use of this
|
||||
interface file for new drivers is discouraged. Use
|
||||
`individual *_alarm` and `*_fault` files instead.
|
||||
Bits are defined in kernel/include/sensors.h.
|
||||
|
||||
`beep_mask`
|
||||
Bitmask for beep.
|
||||
Same format as 'alarms' with the same bit locations,
|
||||
use discouraged for the same reason. Use individual
|
||||
`*_beep` files instead.
|
||||
RW
|
||||
|
||||
|
||||
*******************
|
||||
@@ -1069,25 +572,10 @@ Intrusion detection
|
||||
*******************
|
||||
|
||||
`intrusion[0-*]_alarm`
|
||||
Chassis intrusion detection
|
||||
|
||||
- 0: OK
|
||||
- 1: intrusion detected
|
||||
|
||||
RW
|
||||
|
||||
Contrary to regular alarm flags which clear themselves
|
||||
automatically when read, this one sticks until cleared by
|
||||
the user. This is done by writing 0 to the file. Writing
|
||||
other values is unsupported.
|
||||
Chassis intrusion detection.
|
||||
|
||||
`intrusion[0-*]_beep`
|
||||
Chassis intrusion beep
|
||||
|
||||
0: disable
|
||||
1: enable
|
||||
|
||||
RW
|
||||
Chassis intrusion beep.
|
||||
|
||||
****************************
|
||||
Average sample configuration
|
||||
|
||||
@@ -21,60 +21,8 @@ from /dev/mcelog. Normally mcelog should be run regularly from a cronjob.
|
||||
Each CPU has a directory in /sys/devices/system/machinecheck/machinecheckN
|
||||
(N = CPU number).
|
||||
|
||||
The directory contains some configurable entries:
|
||||
|
||||
bankNctl
|
||||
(N bank number)
|
||||
|
||||
64bit Hex bitmask enabling/disabling specific subevents for bank N
|
||||
When a bit in the bitmask is zero then the respective
|
||||
subevent will not be reported.
|
||||
By default all events are enabled.
|
||||
Note that BIOS maintain another mask to disable specific events
|
||||
per bank. This is not visible here
|
||||
|
||||
The following entries appear for each CPU, but they are truly shared
|
||||
between all CPUs.
|
||||
|
||||
check_interval
|
||||
How often to poll for corrected machine check errors, in seconds
|
||||
(Note output is hexadecimal). Default 5 minutes. When the poller
|
||||
finds MCEs it triggers an exponential speedup (poll more often) on
|
||||
the polling interval. When the poller stops finding MCEs, it
|
||||
triggers an exponential backoff (poll less often) on the polling
|
||||
interval. The check_interval variable is both the initial and
|
||||
maximum polling interval. 0 means no polling for corrected machine
|
||||
check errors (but some corrected errors might be still reported
|
||||
in other ways)
|
||||
|
||||
tolerant
|
||||
Tolerance level. When a machine check exception occurs for a non
|
||||
corrected machine check the kernel can take different actions.
|
||||
Since machine check exceptions can happen any time it is sometimes
|
||||
risky for the kernel to kill a process because it defies
|
||||
normal kernel locking rules. The tolerance level configures
|
||||
how hard the kernel tries to recover even at some risk of
|
||||
deadlock. Higher tolerant values trade potentially better uptime
|
||||
with the risk of a crash or even corruption (for tolerant >= 3).
|
||||
|
||||
0: always panic on uncorrected errors, log corrected errors
|
||||
1: panic or SIGBUS on uncorrected errors, log corrected errors
|
||||
2: SIGBUS or log uncorrected errors, log corrected errors
|
||||
3: never panic or SIGBUS, log all errors (for testing only)
|
||||
|
||||
Default: 1
|
||||
|
||||
Note this only makes a difference if the CPU allows recovery
|
||||
from a machine check exception. Current x86 CPUs generally do not.
|
||||
|
||||
trigger
|
||||
Program to run when a machine check event is detected.
|
||||
This is an alternative to running mcelog regularly from cron
|
||||
and allows to detect events faster.
|
||||
monarch_timeout
|
||||
How long to wait for the other CPUs to machine check too on a
|
||||
exception. 0 to disable waiting for other CPUs.
|
||||
Unit: us
|
||||
The directory contains some configurable entries. See
|
||||
Documentation/ABI/testing/sysfs-mce for more details.
|
||||
|
||||
TBD document entries for AMD threshold interrupt configuration
|
||||
|
||||
|
||||
@@ -8317,6 +8317,7 @@ L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://hwmon.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
|
||||
F: Documentation/ABI/testing/sysfs-class-hwmon
|
||||
F: Documentation/devicetree/bindings/hwmon/
|
||||
F: Documentation/hwmon/
|
||||
F: drivers/hwmon/
|
||||
@@ -20570,6 +20571,8 @@ M: Tony Luck <tony.luck@intel.com>
|
||||
M: Borislav Petkov <bp@alien8.de>
|
||||
L: linux-edac@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/ABI/testing/sysfs-mce
|
||||
F: Documentation/x86/x86_64/machinecheck.rst
|
||||
F: arch/x86/kernel/cpu/mce/*
|
||||
|
||||
X86 MICROCODE UPDATE SUPPORT
|
||||
|
||||
@@ -130,14 +130,11 @@ static inline unsigned int x86_cpuid_family(void)
|
||||
extern void __init load_ucode_bsp(void);
|
||||
extern void load_ucode_ap(void);
|
||||
void reload_early_microcode(void);
|
||||
extern bool get_builtin_firmware(struct cpio_data *cd, const char *name);
|
||||
extern bool initrd_gone;
|
||||
#else
|
||||
static inline void __init load_ucode_bsp(void) { }
|
||||
static inline void load_ucode_ap(void) { }
|
||||
static inline void reload_early_microcode(void) { }
|
||||
static inline bool
|
||||
get_builtin_firmware(struct cpio_data *cd, const char *name) { return false; }
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_X86_MICROCODE_H */
|
||||
|
||||
@@ -456,17 +456,23 @@ apply_microcode_early_amd(u32 cpuid_1_eax, void *ucode, size_t size, bool save_p
|
||||
|
||||
static bool get_builtin_microcode(struct cpio_data *cp, unsigned int family)
|
||||
{
|
||||
#ifdef CONFIG_X86_64
|
||||
char fw_name[36] = "amd-ucode/microcode_amd.bin";
|
||||
struct firmware fw;
|
||||
|
||||
if (IS_ENABLED(CONFIG_X86_32))
|
||||
return false;
|
||||
|
||||
if (family >= 0x15)
|
||||
snprintf(fw_name, sizeof(fw_name),
|
||||
"amd-ucode/microcode_amd_fam%.2xh.bin", family);
|
||||
|
||||
return get_builtin_firmware(cp, fw_name);
|
||||
#else
|
||||
if (firmware_request_builtin(&fw, fw_name)) {
|
||||
cp->size = fw.size;
|
||||
cp->data = (void *)fw.data;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void __load_ucode_amd(unsigned int cpuid_1_eax, struct cpio_data *ret)
|
||||
|
||||
@@ -140,23 +140,6 @@ static bool __init check_loader_disabled_bsp(void)
|
||||
return *res;
|
||||
}
|
||||
|
||||
extern struct builtin_fw __start_builtin_fw[];
|
||||
extern struct builtin_fw __end_builtin_fw[];
|
||||
|
||||
bool get_builtin_firmware(struct cpio_data *cd, const char *name)
|
||||
{
|
||||
struct builtin_fw *b_fw;
|
||||
|
||||
for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) {
|
||||
if (!strcmp(name, b_fw->name)) {
|
||||
cd->size = b_fw->size;
|
||||
cd->data = b_fw->data;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void __init load_ucode_bsp(void)
|
||||
{
|
||||
unsigned int cpuid_1_eax;
|
||||
|
||||
@@ -456,6 +456,7 @@ static void save_mc_for_early(struct ucode_cpu_info *uci, u8 *mc, unsigned int s
|
||||
static bool load_builtin_intel_microcode(struct cpio_data *cp)
|
||||
{
|
||||
unsigned int eax = 1, ebx, ecx = 0, edx;
|
||||
struct firmware fw;
|
||||
char name[30];
|
||||
|
||||
if (IS_ENABLED(CONFIG_X86_32))
|
||||
@@ -466,7 +467,13 @@ static bool load_builtin_intel_microcode(struct cpio_data *cp)
|
||||
sprintf(name, "intel-ucode/%02x-%02x-%02x",
|
||||
x86_family(eax), x86_model(eax), x86_stepping(eax));
|
||||
|
||||
return get_builtin_firmware(cp, name);
|
||||
if (firmware_request_builtin(&fw, name)) {
|
||||
cp->size = fw.size;
|
||||
cp->data = (void *)fw.data;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -68,7 +68,9 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
|
||||
"(__parainstructions|__alt_instructions)(_end)?|"
|
||||
"(__iommu_table|__apicdrivers|__smp_locks)(_end)?|"
|
||||
"__(start|end)_pci_.*|"
|
||||
#if CONFIG_FW_LOADER_BUILTIN
|
||||
"__(start|end)_builtin_fw|"
|
||||
#endif
|
||||
"__(start|stop)___ksymtab(_gpl)?|"
|
||||
"__(start|stop)___kcrctab(_gpl)?|"
|
||||
"__(start|stop)___param|"
|
||||
|
||||
@@ -12,15 +12,12 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/sched/topology.h>
|
||||
#include <linux/cpuset.h>
|
||||
#include <linux/cpumask.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/percpu.h>
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/smp.h>
|
||||
#include <trace/hooks/topology.h>
|
||||
|
||||
static DEFINE_PER_CPU(struct scale_freq_data __rcu *, sft_data);
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
*/
|
||||
#include <linux/component.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/kref.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/slab.h>
|
||||
@@ -246,7 +245,7 @@ static int try_to_bring_up_master(struct master *master,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!devres_open_group(master->parent, NULL, GFP_KERNEL))
|
||||
if (!devres_open_group(master->parent, master, GFP_KERNEL))
|
||||
return -ENOMEM;
|
||||
|
||||
/* Found all components */
|
||||
@@ -258,6 +257,7 @@ static int try_to_bring_up_master(struct master *master,
|
||||
return ret;
|
||||
}
|
||||
|
||||
devres_close_group(master->parent, NULL);
|
||||
master->bound = true;
|
||||
return 1;
|
||||
}
|
||||
@@ -282,7 +282,7 @@ static void take_down_master(struct master *master)
|
||||
{
|
||||
if (master->bound) {
|
||||
master->ops->unbind(master->parent);
|
||||
devres_release_group(master->parent, NULL);
|
||||
devres_release_group(master->parent, master);
|
||||
master->bound = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -821,9 +821,7 @@ struct device_link *device_link_add(struct device *consumer,
|
||||
dev_bus_name(supplier), dev_name(supplier),
|
||||
dev_bus_name(consumer), dev_name(consumer));
|
||||
if (device_register(&link->link_dev)) {
|
||||
put_device(consumer);
|
||||
put_device(supplier);
|
||||
kfree(link);
|
||||
put_device(&link->link_dev);
|
||||
link = NULL;
|
||||
goto out;
|
||||
}
|
||||
@@ -2875,7 +2873,7 @@ void device_initialize(struct device *dev)
|
||||
spin_lock_init(&dev->devres_lock);
|
||||
INIT_LIST_HEAD(&dev->devres_head);
|
||||
device_pm_init(dev);
|
||||
set_dev_node(dev, -1);
|
||||
set_dev_node(dev, NUMA_NO_NODE);
|
||||
#ifdef CONFIG_GENERIC_MSI_IRQ
|
||||
raw_spin_lock_init(&dev->msi_lock);
|
||||
INIT_LIST_HEAD(&dev->msi_list);
|
||||
@@ -4690,6 +4688,11 @@ define_dev_printk_level(_dev_info, KERN_INFO);
|
||||
*
|
||||
* return dev_err_probe(dev, err, ...);
|
||||
*
|
||||
* Note that it is deemed acceptable to use this function for error
|
||||
* prints during probe even if the @err is known to never be -EPROBE_DEFER.
|
||||
* The benefit compared to a normal dev_err() is the standardized format
|
||||
* of the error code and the fact that the error code is returned.
|
||||
*
|
||||
* Returns @err.
|
||||
*
|
||||
*/
|
||||
@@ -4835,6 +4838,12 @@ int device_match_acpi_dev(struct device *dev, const void *adev)
|
||||
}
|
||||
EXPORT_SYMBOL(device_match_acpi_dev);
|
||||
|
||||
int device_match_acpi_handle(struct device *dev, const void *handle)
|
||||
{
|
||||
return ACPI_HANDLE(dev) == handle;
|
||||
}
|
||||
EXPORT_SYMBOL(device_match_acpi_handle);
|
||||
|
||||
int device_match_any(struct device *dev, const void *unused)
|
||||
{
|
||||
return 1;
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-y += main.o
|
||||
|
||||
# Create $(fwdir) from $(CONFIG_EXTRA_FIRMWARE_DIR) -- if it doesn't have a
|
||||
# leading /, it's relative to $(srctree).
|
||||
fwdir := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE_DIR))
|
||||
fwdir := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir))
|
||||
|
||||
obj-y := $(addsuffix .gen.o, $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)))
|
||||
firmware := $(addsuffix .gen.o, $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)))
|
||||
obj-y += $(firmware)
|
||||
|
||||
FWNAME = $(patsubst $(obj)/%.gen.S,%,$@)
|
||||
FWSTR = $(subst $(comma),_,$(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME)))))
|
||||
@@ -34,7 +36,7 @@ $(obj)/%.gen.S: FORCE
|
||||
$(call filechk,fwbin)
|
||||
|
||||
# The .o files depend on the binaries directly; the .S files don't.
|
||||
$(addprefix $(obj)/, $(obj-y)): $(obj)/%.gen.o: $(fwdir)/%
|
||||
$(addprefix $(obj)/, $(firmware)): $(obj)/%.gen.o: $(fwdir)/%
|
||||
|
||||
targets := $(patsubst $(obj)/%,%, \
|
||||
$(shell find $(obj) -name \*.gen.S 2>/dev/null))
|
||||
|
||||
106
drivers/base/firmware_loader/builtin/main.c
Normal file
106
drivers/base/firmware_loader/builtin/main.c
Normal file
@@ -0,0 +1,106 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/* Builtin firmware support */
|
||||
|
||||
#include <linux/firmware.h>
|
||||
#include "../firmware.h"
|
||||
|
||||
/* Only if FW_LOADER=y */
|
||||
#ifdef CONFIG_FW_LOADER
|
||||
|
||||
struct builtin_fw {
|
||||
char *name;
|
||||
void *data;
|
||||
unsigned long size;
|
||||
};
|
||||
|
||||
extern struct builtin_fw __start_builtin_fw[];
|
||||
extern struct builtin_fw __end_builtin_fw[];
|
||||
|
||||
static bool fw_copy_to_prealloc_buf(struct firmware *fw,
|
||||
void *buf, size_t size)
|
||||
{
|
||||
if (!buf)
|
||||
return true;
|
||||
if (size < fw->size)
|
||||
return false;
|
||||
memcpy(buf, fw->data, fw->size);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* firmware_request_builtin() - load builtin firmware
|
||||
* @fw: pointer to firmware struct
|
||||
* @name: name of firmware file
|
||||
*
|
||||
* Some use cases in the kernel have a requirement so that no memory allocator
|
||||
* is involved as these calls take place early in boot process. An example is
|
||||
* the x86 CPU microcode loader. In these cases all the caller wants is to see
|
||||
* if the firmware was built-in and if so use it right away. This can be used
|
||||
* for such cases.
|
||||
*
|
||||
* This looks for the firmware in the built-in kernel. Only if the kernel was
|
||||
* built-in with the firmware you are looking for will this return successfully.
|
||||
*
|
||||
* Callers of this API do not need to use release_firmware() as the pointer to
|
||||
* the firmware is expected to be provided locally on the stack of the caller.
|
||||
**/
|
||||
bool firmware_request_builtin(struct firmware *fw, const char *name)
|
||||
{
|
||||
struct builtin_fw *b_fw;
|
||||
|
||||
if (!fw)
|
||||
return false;
|
||||
|
||||
for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) {
|
||||
if (strcmp(name, b_fw->name) == 0) {
|
||||
fw->size = b_fw->size;
|
||||
fw->data = b_fw->data;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(firmware_request_builtin, TEST_FIRMWARE);
|
||||
|
||||
/**
|
||||
* firmware_request_builtin_buf() - load builtin firmware into optional buffer
|
||||
* @fw: pointer to firmware struct
|
||||
* @name: name of firmware file
|
||||
* @buf: If set this lets you use a pre-allocated buffer so that the built-in
|
||||
* firmware into is copied into. This field can be NULL. It is used by
|
||||
* callers such as request_firmware_into_buf() and
|
||||
* request_partial_firmware_into_buf()
|
||||
* @size: if buf was provided, the max size of the allocated buffer available.
|
||||
* If the built-in firmware does not fit into the pre-allocated @buf this
|
||||
* call will fail.
|
||||
*
|
||||
* This looks for the firmware in the built-in kernel. Only if the kernel was
|
||||
* built-in with the firmware you are looking for will this call possibly
|
||||
* succeed. If you passed a @buf the firmware will be copied into it *iff* the
|
||||
* built-in firmware fits into the pre-allocated buffer size specified in
|
||||
* @size.
|
||||
*
|
||||
* This caller is to be used internally by the firmware_loader only.
|
||||
**/
|
||||
bool firmware_request_builtin_buf(struct firmware *fw, const char *name,
|
||||
void *buf, size_t size)
|
||||
{
|
||||
if (!firmware_request_builtin(fw, name))
|
||||
return false;
|
||||
|
||||
return fw_copy_to_prealloc_buf(fw, buf, size);
|
||||
}
|
||||
|
||||
bool firmware_is_builtin(const struct firmware *fw)
|
||||
{
|
||||
struct builtin_fw *b_fw;
|
||||
|
||||
for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++)
|
||||
if (fw->data == b_fw->data)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -151,6 +151,23 @@ static inline void fw_state_done(struct fw_priv *fw_priv)
|
||||
|
||||
int assign_fw(struct firmware *fw, struct device *device);
|
||||
|
||||
#ifdef CONFIG_FW_LOADER
|
||||
bool firmware_is_builtin(const struct firmware *fw);
|
||||
bool firmware_request_builtin_buf(struct firmware *fw, const char *name,
|
||||
void *buf, size_t size);
|
||||
#else /* module case */
|
||||
static inline bool firmware_is_builtin(const struct firmware *fw)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
static inline bool firmware_request_builtin_buf(struct firmware *fw,
|
||||
const char *name,
|
||||
void *buf, size_t size)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FW_LOADER_PAGED_BUF
|
||||
void fw_free_paged_buf(struct fw_priv *fw_priv);
|
||||
int fw_grow_paged_buf(struct fw_priv *fw_priv, int pages_needed);
|
||||
|
||||
@@ -93,65 +93,6 @@ DEFINE_MUTEX(fw_lock);
|
||||
|
||||
static struct firmware_cache fw_cache;
|
||||
|
||||
/* Builtin firmware support */
|
||||
|
||||
#ifdef CONFIG_FW_LOADER
|
||||
|
||||
extern struct builtin_fw __start_builtin_fw[];
|
||||
extern struct builtin_fw __end_builtin_fw[];
|
||||
|
||||
static void fw_copy_to_prealloc_buf(struct firmware *fw,
|
||||
void *buf, size_t size)
|
||||
{
|
||||
if (!buf || size < fw->size)
|
||||
return;
|
||||
memcpy(buf, fw->data, fw->size);
|
||||
}
|
||||
|
||||
static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,
|
||||
void *buf, size_t size)
|
||||
{
|
||||
struct builtin_fw *b_fw;
|
||||
|
||||
for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) {
|
||||
if (strcmp(name, b_fw->name) == 0) {
|
||||
fw->size = b_fw->size;
|
||||
fw->data = b_fw->data;
|
||||
fw_copy_to_prealloc_buf(fw, buf, size);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool fw_is_builtin_firmware(const struct firmware *fw)
|
||||
{
|
||||
struct builtin_fw *b_fw;
|
||||
|
||||
for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++)
|
||||
if (fw->data == b_fw->data)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#else /* Module case - no builtin firmware support */
|
||||
|
||||
static inline bool fw_get_builtin_firmware(struct firmware *fw,
|
||||
const char *name, void *buf,
|
||||
size_t size)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool fw_is_builtin_firmware(const struct firmware *fw)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void fw_state_init(struct fw_priv *fw_priv)
|
||||
{
|
||||
struct fw_state *fw_st = &fw_priv->fw_st;
|
||||
@@ -736,7 +677,7 @@ _request_firmware_prepare(struct firmware **firmware_p, const char *name,
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
if (fw_get_builtin_firmware(firmware, name, dbuf, size)) {
|
||||
if (firmware_request_builtin_buf(firmware, name, dbuf, size)) {
|
||||
dev_dbg(device, "using built-in %s\n", name);
|
||||
return 0; /* assigned */
|
||||
}
|
||||
@@ -1051,7 +992,7 @@ EXPORT_SYMBOL(request_partial_firmware_into_buf);
|
||||
void release_firmware(const struct firmware *fw)
|
||||
{
|
||||
if (fw) {
|
||||
if (!fw_is_builtin_firmware(fw))
|
||||
if (!firmware_is_builtin(fw))
|
||||
firmware_free_data(fw);
|
||||
kfree(fw);
|
||||
}
|
||||
@@ -1215,7 +1156,7 @@ static int uncache_firmware(const char *fw_name)
|
||||
|
||||
pr_debug("%s: %s\n", __func__, fw_name);
|
||||
|
||||
if (fw_get_builtin_firmware(&fw, fw_name, NULL, 0))
|
||||
if (firmware_request_builtin(&fw, fw_name))
|
||||
return 0;
|
||||
|
||||
fw_priv = lookup_fw_priv(fw_name);
|
||||
|
||||
@@ -1466,8 +1466,7 @@ int platform_dma_configure(struct device *dev)
|
||||
}
|
||||
|
||||
static const struct dev_pm_ops platform_dev_pm_ops = {
|
||||
.runtime_suspend = pm_generic_runtime_suspend,
|
||||
.runtime_resume = pm_generic_runtime_resume,
|
||||
SET_RUNTIME_PM_OPS(pm_generic_runtime_suspend, pm_generic_runtime_resume, NULL)
|
||||
USE_PLATFORM_PM_SLEEP_OPS
|
||||
};
|
||||
|
||||
|
||||
@@ -413,9 +413,6 @@ software_node_get_name(const struct fwnode_handle *fwnode)
|
||||
{
|
||||
const struct swnode *swnode = to_swnode(fwnode);
|
||||
|
||||
if (!swnode)
|
||||
return "(null)";
|
||||
|
||||
return kobject_name(&swnode->kobj);
|
||||
}
|
||||
|
||||
@@ -507,9 +504,6 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode,
|
||||
int error;
|
||||
int i;
|
||||
|
||||
if (!swnode)
|
||||
return -ENOENT;
|
||||
|
||||
prop = property_entry_get(swnode->node->properties, propname);
|
||||
if (!prop)
|
||||
return -ENOENT;
|
||||
|
||||
@@ -95,10 +95,7 @@ static bool acpi_gpio_deferred_req_irqs_done;
|
||||
|
||||
static int acpi_gpiochip_find(struct gpio_chip *gc, void *data)
|
||||
{
|
||||
if (!gc->parent)
|
||||
return false;
|
||||
|
||||
return ACPI_HANDLE(gc->parent) == data;
|
||||
return gc->parent && device_match_acpi_handle(gc->parent, data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -398,24 +398,20 @@ u32 i2c_acpi_find_bus_speed(struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(i2c_acpi_find_bus_speed);
|
||||
|
||||
static int i2c_acpi_find_match_adapter(struct device *dev, const void *data)
|
||||
{
|
||||
struct i2c_adapter *adapter = i2c_verify_adapter(dev);
|
||||
|
||||
if (!adapter)
|
||||
return 0;
|
||||
|
||||
return ACPI_HANDLE(dev) == (acpi_handle)data;
|
||||
}
|
||||
|
||||
struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
|
||||
{
|
||||
struct i2c_adapter *adapter;
|
||||
struct device *dev;
|
||||
|
||||
dev = bus_find_device(&i2c_bus_type, NULL, handle,
|
||||
i2c_acpi_find_match_adapter);
|
||||
dev = bus_find_device(&i2c_bus_type, NULL, handle, device_match_acpi_handle);
|
||||
if (!dev)
|
||||
return NULL;
|
||||
|
||||
return dev ? i2c_verify_adapter(dev) : NULL;
|
||||
adapter = i2c_verify_adapter(dev);
|
||||
if (!adapter)
|
||||
put_device(dev);
|
||||
|
||||
return adapter;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(i2c_acpi_find_adapter_by_handle);
|
||||
|
||||
|
||||
@@ -81,8 +81,10 @@ static ssize_t pci_dev_show_local_cpu(struct device *dev, bool list,
|
||||
const struct cpumask *mask;
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
mask = (dev_to_node(dev) == -1) ? cpu_online_mask :
|
||||
cpumask_of_node(dev_to_node(dev));
|
||||
if (dev_to_node(dev) == NUMA_NO_NODE)
|
||||
mask = cpu_online_mask;
|
||||
else
|
||||
mask = cpumask_of_node(dev_to_node(dev));
|
||||
#else
|
||||
mask = cpumask_of_pcibus(to_pci_dev(dev)->bus);
|
||||
#endif
|
||||
|
||||
@@ -36,8 +36,7 @@ struct kernfs_node *kernfs_create_link(struct kernfs_node *parent,
|
||||
gid = target->iattr->ia_gid;
|
||||
}
|
||||
|
||||
kn = kernfs_new_node(parent, name, S_IFLNK|S_IRWXUGO, uid, gid,
|
||||
KERNFS_LINK);
|
||||
kn = kernfs_new_node(parent, name, S_IFLNK|0777, uid, gid, KERNFS_LINK);
|
||||
if (!kn)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
||||
@@ -56,8 +56,7 @@ int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
|
||||
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
|
||||
kn = kernfs_create_dir_ns(parent, kobject_name(kobj),
|
||||
S_IRWXU | S_IRUGO | S_IXUGO, uid, gid,
|
||||
kn = kernfs_create_dir_ns(parent, kobject_name(kobj), 0755, uid, gid,
|
||||
kobj, ns);
|
||||
if (IS_ERR(kn)) {
|
||||
if (PTR_ERR(kn) == -EEXIST)
|
||||
|
||||
136
fs/sysfs/file.c
136
fs/sysfs/file.c
@@ -45,6 +45,9 @@ static int sysfs_kf_seq_show(struct seq_file *sf, void *v)
|
||||
ssize_t count;
|
||||
char *buf;
|
||||
|
||||
if (WARN_ON_ONCE(!ops->show))
|
||||
return -EINVAL;
|
||||
|
||||
/* acquire buffer and ensure that it's >= PAGE_SIZE and clear */
|
||||
count = seq_get_buf(sf, &buf);
|
||||
if (count < PAGE_SIZE) {
|
||||
@@ -53,15 +56,9 @@ static int sysfs_kf_seq_show(struct seq_file *sf, void *v)
|
||||
}
|
||||
memset(buf, 0, PAGE_SIZE);
|
||||
|
||||
/*
|
||||
* Invoke show(). Control may reach here via seq file lseek even
|
||||
* if @ops->show() isn't implemented.
|
||||
*/
|
||||
if (ops->show) {
|
||||
count = ops->show(kobj, of->kn->priv, buf);
|
||||
if (count < 0)
|
||||
return count;
|
||||
}
|
||||
count = ops->show(kobj, of->kn->priv, buf);
|
||||
if (count < 0)
|
||||
return count;
|
||||
|
||||
/*
|
||||
* The code works fine with PAGE_SIZE return but it's likely to
|
||||
@@ -255,67 +252,82 @@ static const struct kernfs_ops sysfs_bin_kfops_mmap = {
|
||||
};
|
||||
|
||||
int sysfs_add_file_mode_ns(struct kernfs_node *parent,
|
||||
const struct attribute *attr, bool is_bin,
|
||||
umode_t mode, kuid_t uid, kgid_t gid, const void *ns)
|
||||
const struct attribute *attr, umode_t mode, kuid_t uid,
|
||||
kgid_t gid, const void *ns)
|
||||
{
|
||||
struct kobject *kobj = parent->priv;
|
||||
const struct sysfs_ops *sysfs_ops = kobj->ktype->sysfs_ops;
|
||||
struct lock_class_key *key = NULL;
|
||||
const struct kernfs_ops *ops;
|
||||
const struct kernfs_ops *ops = NULL;
|
||||
struct kernfs_node *kn;
|
||||
loff_t size;
|
||||
|
||||
if (!is_bin) {
|
||||
struct kobject *kobj = parent->priv;
|
||||
const struct sysfs_ops *sysfs_ops = kobj->ktype->sysfs_ops;
|
||||
/* every kobject with an attribute needs a ktype assigned */
|
||||
if (WARN(!sysfs_ops, KERN_ERR
|
||||
"missing sysfs attribute operations for kobject: %s\n",
|
||||
kobject_name(kobj)))
|
||||
return -EINVAL;
|
||||
|
||||
/* every kobject with an attribute needs a ktype assigned */
|
||||
if (WARN(!sysfs_ops, KERN_ERR
|
||||
"missing sysfs attribute operations for kobject: %s\n",
|
||||
kobject_name(kobj)))
|
||||
return -EINVAL;
|
||||
|
||||
if (sysfs_ops->show && sysfs_ops->store) {
|
||||
if (mode & SYSFS_PREALLOC)
|
||||
ops = &sysfs_prealloc_kfops_rw;
|
||||
else
|
||||
ops = &sysfs_file_kfops_rw;
|
||||
} else if (sysfs_ops->show) {
|
||||
if (mode & SYSFS_PREALLOC)
|
||||
ops = &sysfs_prealloc_kfops_ro;
|
||||
else
|
||||
ops = &sysfs_file_kfops_ro;
|
||||
} else if (sysfs_ops->store) {
|
||||
if (mode & SYSFS_PREALLOC)
|
||||
ops = &sysfs_prealloc_kfops_wo;
|
||||
else
|
||||
ops = &sysfs_file_kfops_wo;
|
||||
} else
|
||||
ops = &sysfs_file_kfops_empty;
|
||||
|
||||
size = PAGE_SIZE;
|
||||
if (mode & SYSFS_PREALLOC) {
|
||||
if (sysfs_ops->show && sysfs_ops->store)
|
||||
ops = &sysfs_prealloc_kfops_rw;
|
||||
else if (sysfs_ops->show)
|
||||
ops = &sysfs_prealloc_kfops_ro;
|
||||
else if (sysfs_ops->store)
|
||||
ops = &sysfs_prealloc_kfops_wo;
|
||||
} else {
|
||||
struct bin_attribute *battr = (void *)attr;
|
||||
|
||||
if (battr->mmap)
|
||||
ops = &sysfs_bin_kfops_mmap;
|
||||
else if (battr->read && battr->write)
|
||||
ops = &sysfs_bin_kfops_rw;
|
||||
else if (battr->read)
|
||||
ops = &sysfs_bin_kfops_ro;
|
||||
else if (battr->write)
|
||||
ops = &sysfs_bin_kfops_wo;
|
||||
else
|
||||
ops = &sysfs_file_kfops_empty;
|
||||
|
||||
size = battr->size;
|
||||
if (sysfs_ops->show && sysfs_ops->store)
|
||||
ops = &sysfs_file_kfops_rw;
|
||||
else if (sysfs_ops->show)
|
||||
ops = &sysfs_file_kfops_ro;
|
||||
else if (sysfs_ops->store)
|
||||
ops = &sysfs_file_kfops_wo;
|
||||
}
|
||||
|
||||
if (!ops)
|
||||
ops = &sysfs_file_kfops_empty;
|
||||
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
if (!attr->ignore_lockdep)
|
||||
key = attr->key ?: (struct lock_class_key *)&attr->skey;
|
||||
#endif
|
||||
|
||||
kn = __kernfs_create_file(parent, attr->name, mode & 0777, uid, gid,
|
||||
size, ops, (void *)attr, ns, key);
|
||||
PAGE_SIZE, ops, (void *)attr, ns, key);
|
||||
if (IS_ERR(kn)) {
|
||||
if (PTR_ERR(kn) == -EEXIST)
|
||||
sysfs_warn_dup(parent, attr->name);
|
||||
return PTR_ERR(kn);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sysfs_add_bin_file_mode_ns(struct kernfs_node *parent,
|
||||
const struct bin_attribute *battr, umode_t mode,
|
||||
kuid_t uid, kgid_t gid, const void *ns)
|
||||
{
|
||||
const struct attribute *attr = &battr->attr;
|
||||
struct lock_class_key *key = NULL;
|
||||
const struct kernfs_ops *ops;
|
||||
struct kernfs_node *kn;
|
||||
|
||||
if (battr->mmap)
|
||||
ops = &sysfs_bin_kfops_mmap;
|
||||
else if (battr->read && battr->write)
|
||||
ops = &sysfs_bin_kfops_rw;
|
||||
else if (battr->read)
|
||||
ops = &sysfs_bin_kfops_ro;
|
||||
else if (battr->write)
|
||||
ops = &sysfs_bin_kfops_wo;
|
||||
else
|
||||
ops = &sysfs_file_kfops_empty;
|
||||
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
if (!attr->ignore_lockdep)
|
||||
key = attr->key ?: (struct lock_class_key *)&attr->skey;
|
||||
#endif
|
||||
|
||||
kn = __kernfs_create_file(parent, attr->name, mode & 0777, uid, gid,
|
||||
battr->size, ops, (void *)attr, ns, key);
|
||||
if (IS_ERR(kn)) {
|
||||
if (PTR_ERR(kn) == -EEXIST)
|
||||
sysfs_warn_dup(parent, attr->name);
|
||||
@@ -340,9 +352,7 @@ int sysfs_create_file_ns(struct kobject *kobj, const struct attribute *attr,
|
||||
return -EINVAL;
|
||||
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
return sysfs_add_file_mode_ns(kobj->sd, attr, false, attr->mode,
|
||||
uid, gid, ns);
|
||||
|
||||
return sysfs_add_file_mode_ns(kobj->sd, attr, attr->mode, uid, gid, ns);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sysfs_create_file_ns);
|
||||
|
||||
@@ -385,8 +395,8 @@ int sysfs_add_file_to_group(struct kobject *kobj,
|
||||
return -ENOENT;
|
||||
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
error = sysfs_add_file_mode_ns(parent, attr, false,
|
||||
attr->mode, uid, gid, NULL);
|
||||
error = sysfs_add_file_mode_ns(parent, attr, attr->mode, uid, gid,
|
||||
NULL);
|
||||
kernfs_put(parent);
|
||||
|
||||
return error;
|
||||
@@ -555,8 +565,8 @@ int sysfs_create_bin_file(struct kobject *kobj,
|
||||
return -EINVAL;
|
||||
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
return sysfs_add_file_mode_ns(kobj->sd, &attr->attr, true,
|
||||
attr->attr.mode, uid, gid, NULL);
|
||||
return sysfs_add_bin_file_mode_ns(kobj->sd, attr, attr->attr.mode, uid,
|
||||
gid, NULL);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sysfs_create_bin_file);
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ static int create_files(struct kernfs_node *parent, struct kobject *kobj,
|
||||
(*attr)->name, mode);
|
||||
|
||||
mode &= SYSFS_PREALLOC | 0664;
|
||||
error = sysfs_add_file_mode_ns(parent, *attr, false,
|
||||
mode, uid, gid, NULL);
|
||||
error = sysfs_add_file_mode_ns(parent, *attr, mode, uid,
|
||||
gid, NULL);
|
||||
if (unlikely(error))
|
||||
break;
|
||||
}
|
||||
@@ -90,10 +90,9 @@ static int create_files(struct kernfs_node *parent, struct kobject *kobj,
|
||||
(*bin_attr)->attr.name, mode);
|
||||
|
||||
mode &= SYSFS_PREALLOC | 0664;
|
||||
error = sysfs_add_file_mode_ns(parent,
|
||||
&(*bin_attr)->attr, true,
|
||||
mode,
|
||||
uid, gid, NULL);
|
||||
error = sysfs_add_bin_file_mode_ns(parent, *bin_attr,
|
||||
mode, uid, gid,
|
||||
NULL);
|
||||
if (error)
|
||||
break;
|
||||
}
|
||||
@@ -340,8 +339,8 @@ int sysfs_merge_group(struct kobject *kobj,
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
|
||||
for ((i = 0, attr = grp->attrs); *attr && !error; (++i, ++attr))
|
||||
error = sysfs_add_file_mode_ns(parent, *attr, false,
|
||||
(*attr)->mode, uid, gid, NULL);
|
||||
error = sysfs_add_file_mode_ns(parent, *attr, (*attr)->mode,
|
||||
uid, gid, NULL);
|
||||
if (error) {
|
||||
while (--i >= 0)
|
||||
kernfs_remove_by_name(parent, (*--attr)->name);
|
||||
|
||||
@@ -28,9 +28,11 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name);
|
||||
* file.c
|
||||
*/
|
||||
int sysfs_add_file_mode_ns(struct kernfs_node *parent,
|
||||
const struct attribute *attr, bool is_bin,
|
||||
umode_t amode, kuid_t uid, kgid_t gid,
|
||||
const void *ns);
|
||||
const struct attribute *attr, umode_t amode, kuid_t uid,
|
||||
kgid_t gid, const void *ns);
|
||||
int sysfs_add_bin_file_mode_ns(struct kernfs_node *parent,
|
||||
const struct bin_attribute *battr, umode_t mode,
|
||||
kuid_t uid, kgid_t gid, const void *ns);
|
||||
|
||||
/*
|
||||
* symlink.c
|
||||
|
||||
@@ -476,13 +476,7 @@
|
||||
__end_pci_fixups_suspend_late = .; \
|
||||
} \
|
||||
\
|
||||
/* Built-in firmware blobs */ \
|
||||
.builtin_fw : AT(ADDR(.builtin_fw) - LOAD_OFFSET) ALIGN(8) { \
|
||||
__start_builtin_fw = .; \
|
||||
KEEP(*(.builtin_fw)) \
|
||||
__end_builtin_fw = .; \
|
||||
} \
|
||||
\
|
||||
FW_LOADER_BUILT_IN_DATA \
|
||||
TRACEDATA \
|
||||
\
|
||||
PRINTK_INDEX \
|
||||
@@ -887,6 +881,18 @@
|
||||
#define ORC_UNWIND_TABLE
|
||||
#endif
|
||||
|
||||
/* Built-in firmware blobs */
|
||||
#ifdef CONFIG_FW_LOADER
|
||||
#define FW_LOADER_BUILT_IN_DATA \
|
||||
.builtin_fw : AT(ADDR(.builtin_fw) - LOAD_OFFSET) ALIGN(8) { \
|
||||
__start_builtin_fw = .; \
|
||||
KEEP(*(.builtin_fw)) \
|
||||
__end_builtin_fw = .; \
|
||||
}
|
||||
#else
|
||||
#define FW_LOADER_BUILT_IN_DATA
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM_TRACE
|
||||
#define TRACEDATA \
|
||||
. = ALIGN(4); \
|
||||
|
||||
@@ -143,6 +143,7 @@ int device_match_of_node(struct device *dev, const void *np);
|
||||
int device_match_fwnode(struct device *dev, const void *fwnode);
|
||||
int device_match_devt(struct device *dev, const void *pdevt);
|
||||
int device_match_acpi_dev(struct device *dev, const void *adev);
|
||||
int device_match_acpi_handle(struct device *dev, const void *handle);
|
||||
int device_match_any(struct device *dev, const void *unused);
|
||||
|
||||
/* iterator helpers for buses */
|
||||
|
||||
@@ -20,23 +20,19 @@ struct firmware {
|
||||
struct module;
|
||||
struct device;
|
||||
|
||||
struct builtin_fw {
|
||||
char *name;
|
||||
void *data;
|
||||
unsigned long size;
|
||||
};
|
||||
|
||||
/* We have to play tricks here much like stringify() to get the
|
||||
__COUNTER__ macro to be expanded as we want it */
|
||||
#define __fw_concat1(x, y) x##y
|
||||
#define __fw_concat(x, y) __fw_concat1(x, y)
|
||||
|
||||
#define DECLARE_BUILTIN_FIRMWARE(name, blob) \
|
||||
DECLARE_BUILTIN_FIRMWARE_SIZE(name, &(blob), sizeof(blob))
|
||||
|
||||
#define DECLARE_BUILTIN_FIRMWARE_SIZE(name, blob, size) \
|
||||
static const struct builtin_fw __fw_concat(__builtin_fw,__COUNTER__) \
|
||||
__used __section(".builtin_fw") = { name, blob, size }
|
||||
/*
|
||||
* Built-in firmware functionality is only available if FW_LOADER=y, but not
|
||||
* FW_LOADER=m
|
||||
*/
|
||||
#ifdef CONFIG_FW_LOADER
|
||||
bool firmware_request_builtin(struct firmware *fw, const char *name);
|
||||
#else
|
||||
static inline bool firmware_request_builtin(struct firmware *fw,
|
||||
const char *name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_FW_LOADER) || (defined(CONFIG_FW_LOADER_MODULE) && defined(MODULE))
|
||||
int request_firmware(const struct firmware **fw, const char *name,
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
struct fwnode_operations;
|
||||
|
||||
@@ -269,10 +269,6 @@ struct kernfs_ops {
|
||||
struct poll_table_struct *pt);
|
||||
|
||||
int (*mmap)(struct kernfs_open_file *of, struct vm_area_struct *vma);
|
||||
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
struct lock_class_key lockdep_key;
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -568,30 +564,6 @@ kernfs_create_dir(struct kernfs_node *parent, const char *name, umode_t mode,
|
||||
priv, NULL);
|
||||
}
|
||||
|
||||
static inline struct kernfs_node *
|
||||
kernfs_create_file_ns(struct kernfs_node *parent, const char *name,
|
||||
umode_t mode, kuid_t uid, kgid_t gid,
|
||||
loff_t size, const struct kernfs_ops *ops,
|
||||
void *priv, const void *ns)
|
||||
{
|
||||
struct lock_class_key *key = NULL;
|
||||
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
key = (struct lock_class_key *)&ops->lockdep_key;
|
||||
#endif
|
||||
return __kernfs_create_file(parent, name, mode, uid, gid,
|
||||
size, ops, priv, ns, key);
|
||||
}
|
||||
|
||||
static inline struct kernfs_node *
|
||||
kernfs_create_file(struct kernfs_node *parent, const char *name, umode_t mode,
|
||||
loff_t size, const struct kernfs_ops *ops, void *priv)
|
||||
{
|
||||
return kernfs_create_file_ns(parent, name, mode,
|
||||
GLOBAL_ROOT_UID, GLOBAL_ROOT_GID,
|
||||
size, ops, priv, NULL);
|
||||
}
|
||||
|
||||
static inline int kernfs_remove_by_name(struct kernfs_node *parent,
|
||||
const char *name)
|
||||
{
|
||||
|
||||
@@ -101,7 +101,6 @@ int kobject_init_and_add(struct kobject *kobj,
|
||||
|
||||
extern void kobject_del(struct kobject *kobj);
|
||||
|
||||
extern struct kobject * __must_check kobject_create(void);
|
||||
extern struct kobject * __must_check kobject_create_and_add(const char *name,
|
||||
struct kobject *parent);
|
||||
|
||||
|
||||
@@ -71,6 +71,8 @@ static DEFINE_MUTEX(ddebug_lock);
|
||||
static LIST_HEAD(ddebug_tables);
|
||||
static int verbose;
|
||||
module_param(verbose, int, 0644);
|
||||
MODULE_PARM_DESC(verbose, " dynamic_debug/control processing "
|
||||
"( 0 = off (default), 1 = module add/rm, 2 = >control summary, 3 = parsing, 4 = per-site changes)");
|
||||
|
||||
/* Return the path relative to source root */
|
||||
static inline const char *trim_prefix(const char *path)
|
||||
@@ -118,6 +120,8 @@ do { \
|
||||
|
||||
#define vpr_info(fmt, ...) vnpr_info(1, fmt, ##__VA_ARGS__)
|
||||
#define v2pr_info(fmt, ...) vnpr_info(2, fmt, ##__VA_ARGS__)
|
||||
#define v3pr_info(fmt, ...) vnpr_info(3, fmt, ##__VA_ARGS__)
|
||||
#define v4pr_info(fmt, ...) vnpr_info(4, fmt, ##__VA_ARGS__)
|
||||
|
||||
static void vpr_info_dq(const struct ddebug_query *query, const char *msg)
|
||||
{
|
||||
@@ -130,7 +134,7 @@ static void vpr_info_dq(const struct ddebug_query *query, const char *msg)
|
||||
fmtlen--;
|
||||
}
|
||||
|
||||
vpr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" lineno=%u-%u\n",
|
||||
v3pr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" lineno=%u-%u\n",
|
||||
msg,
|
||||
query->function ?: "",
|
||||
query->filename ?: "",
|
||||
@@ -213,7 +217,7 @@ static int ddebug_change(const struct ddebug_query *query,
|
||||
static_branch_enable(&dp->key.dd_key_true);
|
||||
#endif
|
||||
dp->flags = newflags;
|
||||
v2pr_info("changed %s:%d [%s]%s =%s\n",
|
||||
v4pr_info("changed %s:%d [%s]%s =%s\n",
|
||||
trim_prefix(dp->filename), dp->lineno,
|
||||
dt->mod_name, dp->function,
|
||||
ddebug_describe_flags(dp->flags, &fbuf));
|
||||
@@ -273,7 +277,7 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords)
|
||||
buf = end;
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
if (verbose >= 3) {
|
||||
int i;
|
||||
pr_info("split into words:");
|
||||
for (i = 0; i < nwords; i++)
|
||||
@@ -333,7 +337,7 @@ static int parse_linerange(struct ddebug_query *query, const char *first)
|
||||
} else {
|
||||
query->last_lineno = query->first_lineno;
|
||||
}
|
||||
vpr_info("parsed line %d-%d\n", query->first_lineno,
|
||||
v3pr_info("parsed line %d-%d\n", query->first_lineno,
|
||||
query->last_lineno);
|
||||
return 0;
|
||||
}
|
||||
@@ -447,7 +451,7 @@ static int ddebug_parse_flags(const char *str, struct flag_settings *modifiers)
|
||||
pr_err("bad flag-op %c, at start of %s\n", *str, str);
|
||||
return -EINVAL;
|
||||
}
|
||||
vpr_info("op='%c'\n", op);
|
||||
v3pr_info("op='%c'\n", op);
|
||||
|
||||
for (; *str ; ++str) {
|
||||
for (i = ARRAY_SIZE(opt_array) - 1; i >= 0; i--) {
|
||||
@@ -461,7 +465,7 @@ static int ddebug_parse_flags(const char *str, struct flag_settings *modifiers)
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
vpr_info("flags=0x%x\n", modifiers->flags);
|
||||
v3pr_info("flags=0x%x\n", modifiers->flags);
|
||||
|
||||
/* calculate final flags, mask based upon op */
|
||||
switch (op) {
|
||||
@@ -477,7 +481,7 @@ static int ddebug_parse_flags(const char *str, struct flag_settings *modifiers)
|
||||
modifiers->flags = 0;
|
||||
break;
|
||||
}
|
||||
vpr_info("*flagsp=0x%x *maskp=0x%x\n", modifiers->flags, modifiers->mask);
|
||||
v3pr_info("*flagsp=0x%x *maskp=0x%x\n", modifiers->flags, modifiers->mask);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -529,7 +533,7 @@ static int ddebug_exec_queries(char *query, const char *modname)
|
||||
if (!query || !*query || *query == '#')
|
||||
continue;
|
||||
|
||||
vpr_info("query %d: \"%s\"\n", i, query);
|
||||
vpr_info("query %d: \"%s\" mod:%s\n", i, query, modname ?: "*");
|
||||
|
||||
rc = ddebug_exec_query(query, modname);
|
||||
if (rc < 0) {
|
||||
@@ -540,8 +544,9 @@ static int ddebug_exec_queries(char *query, const char *modname)
|
||||
}
|
||||
i++;
|
||||
}
|
||||
vpr_info("processed %d queries, with %d matches, %d errs\n",
|
||||
i, nfound, errs);
|
||||
if (i)
|
||||
v2pr_info("processed %d queries, with %d matches, %d errs\n",
|
||||
i, nfound, errs);
|
||||
|
||||
if (exitcode)
|
||||
return exitcode;
|
||||
@@ -746,20 +751,17 @@ EXPORT_SYMBOL(__dynamic_ibdev_dbg);
|
||||
|
||||
#endif
|
||||
|
||||
#define DDEBUG_STRING_SIZE 1024
|
||||
static __initdata char ddebug_setup_string[DDEBUG_STRING_SIZE];
|
||||
|
||||
static __init int ddebug_setup_query(char *str)
|
||||
/*
|
||||
* Install a noop handler to make dyndbg look like a normal kernel cli param.
|
||||
* This avoids warnings about dyndbg being an unknown cli param when supplied
|
||||
* by a user.
|
||||
*/
|
||||
static __init int dyndbg_setup(char *str)
|
||||
{
|
||||
if (strlen(str) >= DDEBUG_STRING_SIZE) {
|
||||
pr_warn("ddebug boot param string too large\n");
|
||||
return 0;
|
||||
}
|
||||
strlcpy(ddebug_setup_string, str, DDEBUG_STRING_SIZE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
__setup("ddebug_query=", ddebug_setup_query);
|
||||
__setup("dyndbg=", dyndbg_setup);
|
||||
|
||||
/*
|
||||
* File_ops->write method for <debugfs>/dynamic_debug/control. Gathers the
|
||||
@@ -781,7 +783,7 @@ static ssize_t ddebug_proc_write(struct file *file, const char __user *ubuf,
|
||||
tmpbuf = memdup_user_nul(ubuf, len);
|
||||
if (IS_ERR(tmpbuf))
|
||||
return PTR_ERR(tmpbuf);
|
||||
vpr_info("read %d bytes from userspace\n", (int)len);
|
||||
v2pr_info("read %zu bytes from userspace\n", len);
|
||||
|
||||
ret = ddebug_exec_queries(tmpbuf, NULL);
|
||||
kfree(tmpbuf);
|
||||
@@ -969,7 +971,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n,
|
||||
list_add(&dt->link, &ddebug_tables);
|
||||
mutex_unlock(&ddebug_lock);
|
||||
|
||||
v2pr_info("%3u debug prints in module %s\n", n, dt->mod_name);
|
||||
vpr_info("%3u debug prints in module %s\n", n, dt->mod_name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1028,8 +1030,6 @@ int ddebug_remove_module(const char *mod_name)
|
||||
struct ddebug_table *dt, *nextdt;
|
||||
int ret = -ENOENT;
|
||||
|
||||
v2pr_info("removing module \"%s\"\n", mod_name);
|
||||
|
||||
mutex_lock(&ddebug_lock);
|
||||
list_for_each_entry_safe(dt, nextdt, &ddebug_tables, link) {
|
||||
if (dt->mod_name == mod_name) {
|
||||
@@ -1039,6 +1039,8 @@ int ddebug_remove_module(const char *mod_name)
|
||||
}
|
||||
}
|
||||
mutex_unlock(&ddebug_lock);
|
||||
if (!ret)
|
||||
v2pr_info("removed module \"%s\"\n", mod_name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1121,16 +1123,6 @@ static int __init dynamic_debug_init(void)
|
||||
entries, modct, (int)((modct * sizeof(struct ddebug_table)) >> 10),
|
||||
(int)((entries * sizeof(struct _ddebug)) >> 10));
|
||||
|
||||
/* apply ddebug_query boot param, dont unload tables on err */
|
||||
if (ddebug_setup_string[0] != '\0') {
|
||||
pr_warn("ddebug_query param name is deprecated, change it to dyndbg\n");
|
||||
ret = ddebug_exec_queries(ddebug_setup_string, NULL);
|
||||
if (ret < 0)
|
||||
pr_warn("Invalid ddebug boot param %s\n",
|
||||
ddebug_setup_string);
|
||||
else
|
||||
pr_info("%d changes by ddebug_query\n", ret);
|
||||
}
|
||||
/* now that ddebug tables are loaded, process all boot args
|
||||
* again to find and activate queries given in dyndbg params.
|
||||
* While this has already been done for known boot params, it
|
||||
|
||||
@@ -777,7 +777,7 @@ static struct kobj_type dynamic_kobj_ktype = {
|
||||
* call to kobject_put() and not kfree(), as kobject_init() has
|
||||
* already been called on this structure.
|
||||
*/
|
||||
struct kobject *kobject_create(void)
|
||||
static struct kobject *kobject_create(void)
|
||||
{
|
||||
struct kobject *kobj;
|
||||
|
||||
|
||||
@@ -1,19 +1,37 @@
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Termcap'; }
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
use Pod::Usage;
|
||||
use Pod::Usage qw(pod2usage);
|
||||
use Getopt::Long;
|
||||
use File::Find;
|
||||
use IO::Handle;
|
||||
use Fcntl ':mode';
|
||||
use Cwd 'abs_path';
|
||||
use Data::Dumper;
|
||||
|
||||
my $help = 0;
|
||||
my $hint = 0;
|
||||
my $man = 0;
|
||||
my $debug = 0;
|
||||
my $enable_lineno = 0;
|
||||
my $show_warnings = 1;
|
||||
my $prefix="Documentation/ABI";
|
||||
my $sysfs_prefix="/sys";
|
||||
my $search_string;
|
||||
|
||||
# Debug options
|
||||
my $dbg_what_parsing = 1;
|
||||
my $dbg_what_open = 2;
|
||||
my $dbg_dump_abi_structs = 4;
|
||||
my $dbg_undefined = 8;
|
||||
|
||||
$Data::Dumper::Indent = 1;
|
||||
$Data::Dumper::Terse = 1;
|
||||
|
||||
#
|
||||
# If true, assumes that the description is formatted with ReST
|
||||
@@ -21,25 +39,27 @@ my $prefix="Documentation/ABI";
|
||||
my $description_is_rst = 1;
|
||||
|
||||
GetOptions(
|
||||
"debug|d+" => \$debug,
|
||||
"debug=i" => \$debug,
|
||||
"enable-lineno" => \$enable_lineno,
|
||||
"rst-source!" => \$description_is_rst,
|
||||
"dir=s" => \$prefix,
|
||||
'help|?' => \$help,
|
||||
"show-hints" => \$hint,
|
||||
"search-string=s" => \$search_string,
|
||||
man => \$man
|
||||
) or pod2usage(2);
|
||||
|
||||
pod2usage(1) if $help;
|
||||
pod2usage(-exitstatus => 0, -verbose => 2) if $man;
|
||||
pod2usage(-exitstatus => 0, -noperldoc, -verbose => 2) if $man;
|
||||
|
||||
pod2usage(2) if (scalar @ARGV < 1 || @ARGV > 2);
|
||||
|
||||
my ($cmd, $arg) = @ARGV;
|
||||
|
||||
pod2usage(2) if ($cmd ne "search" && $cmd ne "rest" && $cmd ne "validate");
|
||||
pod2usage(2) if ($cmd ne "search" && $cmd ne "rest" && $cmd ne "validate" && $cmd ne "undefined");
|
||||
pod2usage(2) if ($cmd eq "search" && !$arg);
|
||||
|
||||
require Data::Dumper if ($debug);
|
||||
require Data::Dumper if ($debug & $dbg_dump_abi_structs);
|
||||
|
||||
my %data;
|
||||
my %symbols;
|
||||
@@ -50,6 +70,8 @@ my %symbols;
|
||||
sub parse_error($$$$) {
|
||||
my ($file, $ln, $msg, $data) = @_;
|
||||
|
||||
return if (!$show_warnings);
|
||||
|
||||
$data =~ s/\s+$/\n/;
|
||||
|
||||
print STDERR "Warning: file $file#$ln:\n\t$msg";
|
||||
@@ -97,7 +119,7 @@ sub parse_abi {
|
||||
my @labels;
|
||||
my $label = "";
|
||||
|
||||
print STDERR "Opening $file\n" if ($debug > 1);
|
||||
print STDERR "Opening $file\n" if ($debug & $dbg_what_open);
|
||||
open IN, $file;
|
||||
while(<IN>) {
|
||||
$ln++;
|
||||
@@ -129,12 +151,12 @@ sub parse_abi {
|
||||
push @{$symbols{$content}->{file}}, " $file:" . ($ln - 1);
|
||||
|
||||
if ($tag =~ m/what/) {
|
||||
$what .= ", " . $content;
|
||||
$what .= "\xac" . $content;
|
||||
} else {
|
||||
if ($what) {
|
||||
parse_error($file, $ln, "What '$what' doesn't have a description", "") if (!$data{$what}->{description});
|
||||
|
||||
foreach my $w(split /, /, $what) {
|
||||
foreach my $w(split /\xac/, $what) {
|
||||
$symbols{$w}->{xref} = $what;
|
||||
};
|
||||
}
|
||||
@@ -164,12 +186,13 @@ sub parse_abi {
|
||||
$data{$what}->{file} = $name;
|
||||
$data{$what}->{filepath} = $file;
|
||||
} else {
|
||||
$data{$what}->{description} .= "\n\n" if (defined($data{$what}->{description}));
|
||||
if ($name ne $data{$what}->{file}) {
|
||||
$data{$what}->{file} .= " " . $name;
|
||||
$data{$what}->{filepath} .= " " . $file;
|
||||
}
|
||||
}
|
||||
print STDERR "\twhat: $what\n" if ($debug > 1);
|
||||
print STDERR "\twhat: $what\n" if ($debug & $dbg_what_parsing);
|
||||
$data{$what}->{line_no} = $ln;
|
||||
} else {
|
||||
$data{$what}->{line_no} = $ln if (!defined($data{$what}->{line_no}));
|
||||
@@ -239,7 +262,7 @@ sub parse_abi {
|
||||
if ($what) {
|
||||
parse_error($file, $ln, "What '$what' doesn't have a description", "") if (!$data{$what}->{description});
|
||||
|
||||
foreach my $w(split /, /,$what) {
|
||||
foreach my $w(split /\xac/,$what) {
|
||||
$symbols{$w}->{xref} = $what;
|
||||
};
|
||||
}
|
||||
@@ -328,7 +351,7 @@ sub output_rest {
|
||||
|
||||
printf ".. _%s:\n\n", $data{$what}->{label};
|
||||
|
||||
my @names = split /, /,$w;
|
||||
my @names = split /\xac/,$w;
|
||||
my $len = 0;
|
||||
|
||||
foreach my $name (@names) {
|
||||
@@ -492,6 +515,7 @@ sub search_symbols {
|
||||
|
||||
my $file = $data{$what}->{filepath};
|
||||
|
||||
$what =~ s/\xac/, /g;
|
||||
my $bar = $what;
|
||||
$bar =~ s/./-/g;
|
||||
|
||||
@@ -521,22 +545,420 @@ sub search_symbols {
|
||||
}
|
||||
}
|
||||
|
||||
# Exclude /sys/kernel/debug and /sys/kernel/tracing from the search path
|
||||
sub dont_parse_special_attributes {
|
||||
if (($File::Find::dir =~ m,^/sys/kernel,)) {
|
||||
return grep {!/(debug|tracing)/ } @_;
|
||||
}
|
||||
|
||||
if (($File::Find::dir =~ m,^/sys/fs,)) {
|
||||
return grep {!/(pstore|bpf|fuse)/ } @_;
|
||||
}
|
||||
|
||||
return @_
|
||||
}
|
||||
|
||||
my %leaf;
|
||||
my %aliases;
|
||||
my @files;
|
||||
my %root;
|
||||
|
||||
sub graph_add_file {
|
||||
my $file = shift;
|
||||
my $type = shift;
|
||||
|
||||
my $dir = $file;
|
||||
$dir =~ s,^(.*/).*,$1,;
|
||||
$file =~ s,.*/,,;
|
||||
|
||||
my $name;
|
||||
my $file_ref = \%root;
|
||||
foreach my $edge(split "/", $dir) {
|
||||
$name .= "$edge/";
|
||||
if (!defined ${$file_ref}{$edge}) {
|
||||
${$file_ref}{$edge} = { };
|
||||
}
|
||||
$file_ref = \%{$$file_ref{$edge}};
|
||||
${$file_ref}{"__name"} = [ $name ];
|
||||
}
|
||||
$name .= "$file";
|
||||
${$file_ref}{$file} = {
|
||||
"__name" => [ $name ]
|
||||
};
|
||||
|
||||
return \%{$$file_ref{$file}};
|
||||
}
|
||||
|
||||
sub graph_add_link {
|
||||
my $file = shift;
|
||||
my $link = shift;
|
||||
|
||||
# Traverse graph to find the reference
|
||||
my $file_ref = \%root;
|
||||
foreach my $edge(split "/", $file) {
|
||||
$file_ref = \%{$$file_ref{$edge}} || die "Missing node!";
|
||||
}
|
||||
|
||||
# do a BFS
|
||||
|
||||
my @queue;
|
||||
my %seen;
|
||||
my $st;
|
||||
|
||||
push @queue, $file_ref;
|
||||
$seen{$start}++;
|
||||
|
||||
while (@queue) {
|
||||
my $v = shift @queue;
|
||||
my @child = keys(%{$v});
|
||||
|
||||
foreach my $c(@child) {
|
||||
next if $seen{$$v{$c}};
|
||||
next if ($c eq "__name");
|
||||
|
||||
if (!defined($$v{$c}{"__name"})) {
|
||||
printf STDERR "Error: Couldn't find a non-empty name on a children of $file/.*: ";
|
||||
print STDERR Dumper(%{$v});
|
||||
exit;
|
||||
}
|
||||
|
||||
# Add new name
|
||||
my $name = @{$$v{$c}{"__name"}}[0];
|
||||
if ($name =~ s#^$file/#$link/#) {
|
||||
push @{$$v{$c}{"__name"}}, $name;
|
||||
}
|
||||
# Add child to the queue and mark as seen
|
||||
push @queue, $$v{$c};
|
||||
$seen{$c}++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
my $escape_symbols = qr { ([\x01-\x08\x0e-\x1f\x21-\x29\x2b-\x2d\x3a-\x40\x7b-\xfe]) }x;
|
||||
sub parse_existing_sysfs {
|
||||
my $file = $File::Find::name;
|
||||
|
||||
my $mode = (lstat($file))[2];
|
||||
my $abs_file = abs_path($file);
|
||||
|
||||
my @tmp;
|
||||
push @tmp, $file;
|
||||
push @tmp, $abs_file if ($abs_file ne $file);
|
||||
|
||||
foreach my $f(@tmp) {
|
||||
# Ignore cgroup, as this is big and has zero docs under ABI
|
||||
return if ($f =~ m#^/sys/fs/cgroup/#);
|
||||
|
||||
# Ignore firmware as it is documented elsewhere
|
||||
# Either ACPI or under Documentation/devicetree/bindings/
|
||||
return if ($f =~ m#^/sys/firmware/#);
|
||||
|
||||
# Ignore some sysfs nodes that aren't actually part of ABI
|
||||
return if ($f =~ m#/sections|notes/#);
|
||||
|
||||
# Would need to check at
|
||||
# Documentation/admin-guide/kernel-parameters.txt, but this
|
||||
# is not easily parseable.
|
||||
return if ($f =~ m#/parameters/#);
|
||||
}
|
||||
|
||||
if (S_ISLNK($mode)) {
|
||||
$aliases{$file} = $abs_file;
|
||||
return;
|
||||
}
|
||||
|
||||
return if (S_ISDIR($mode));
|
||||
|
||||
# Trivial: file is defined exactly the same way at ABI What:
|
||||
return if (defined($data{$file}));
|
||||
return if (defined($data{$abs_file}));
|
||||
|
||||
push @files, graph_add_file($abs_file, "file");
|
||||
}
|
||||
|
||||
sub get_leave($)
|
||||
{
|
||||
my $what = shift;
|
||||
my $leave;
|
||||
|
||||
my $l = $what;
|
||||
my $stop = 1;
|
||||
|
||||
$leave = $l;
|
||||
$leave =~ s,/$,,;
|
||||
$leave =~ s,.*/,,;
|
||||
$leave =~ s/[\(\)]//g;
|
||||
|
||||
# $leave is used to improve search performance at
|
||||
# check_undefined_symbols, as the algorithm there can seek
|
||||
# for a small number of "what". It also allows giving a
|
||||
# hint about a leave with the same name somewhere else.
|
||||
# However, there are a few occurences where the leave is
|
||||
# either a wildcard or a number. Just group such cases
|
||||
# altogether.
|
||||
if ($leave =~ m/\.\*/ || $leave eq "" || $leave =~ /\\d/) {
|
||||
$leave = "others";
|
||||
}
|
||||
|
||||
return $leave;
|
||||
}
|
||||
|
||||
my @not_found;
|
||||
|
||||
sub check_file($$)
|
||||
{
|
||||
my $file_ref = shift;
|
||||
my $names_ref = shift;
|
||||
my @names = @{$names_ref};
|
||||
my $file = $names[0];
|
||||
|
||||
my $found_string;
|
||||
|
||||
my $leave = get_leave($file);
|
||||
if (!defined($leaf{$leave})) {
|
||||
$leave = "others";
|
||||
}
|
||||
my @expr = @{$leaf{$leave}->{expr}};
|
||||
die ("\rmissing rules for $leave") if (!defined($leaf{$leave}));
|
||||
|
||||
my $path = $file;
|
||||
$path =~ s,(.*/).*,$1,;
|
||||
|
||||
if ($search_string) {
|
||||
return if (!($file =~ m#$search_string#));
|
||||
$found_string = 1;
|
||||
}
|
||||
|
||||
for (my $i = 0; $i < @names; $i++) {
|
||||
if ($found_string && $hint) {
|
||||
if (!$i) {
|
||||
print STDERR "--> $names[$i]\n";
|
||||
} else {
|
||||
print STDERR " $names[$i]\n";
|
||||
}
|
||||
}
|
||||
foreach my $re (@expr) {
|
||||
print STDERR "$names[$i] =~ /^$re\$/\n" if ($debug && $dbg_undefined);
|
||||
if ($names[$i] =~ $re) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($leave ne "others") {
|
||||
my @expr = @{$leaf{"others"}->{expr}};
|
||||
for (my $i = 0; $i < @names; $i++) {
|
||||
foreach my $re (@expr) {
|
||||
print STDERR "$names[$i] =~ /^$re\$/\n" if ($debug && $dbg_undefined);
|
||||
if ($names[$i] =~ $re) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
push @not_found, $file if (!$search_string || $found_string);
|
||||
|
||||
if ($hint && (!$search_string || $found_string)) {
|
||||
my $what = $leaf{$leave}->{what};
|
||||
$what =~ s/\xac/\n\t/g;
|
||||
if ($leave ne "others") {
|
||||
print STDERR "\r more likely regexes:\n\t$what\n";
|
||||
} else {
|
||||
print STDERR "\r tested regexes:\n\t$what\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub check_undefined_symbols {
|
||||
my $num_files = scalar @files;
|
||||
my $next_i = 0;
|
||||
my $start_time = times;
|
||||
|
||||
@files = sort @files;
|
||||
|
||||
my $last_time = $start_time;
|
||||
|
||||
# When either debug or hint is enabled, there's no sense showing
|
||||
# progress, as the progress will be overriden.
|
||||
if ($hint || ($debug && $dbg_undefined)) {
|
||||
$next_i = $num_files;
|
||||
}
|
||||
|
||||
my $is_console;
|
||||
$is_console = 1 if (-t STDERR);
|
||||
|
||||
for (my $i = 0; $i < $num_files; $i++) {
|
||||
my $file_ref = $files[$i];
|
||||
my @names = @{$$file_ref{"__name"}};
|
||||
|
||||
check_file($file_ref, \@names);
|
||||
|
||||
my $cur_time = times;
|
||||
|
||||
if ($i == $next_i || $cur_time > $last_time + 1) {
|
||||
my $percent = $i * 100 / $num_files;
|
||||
|
||||
my $tm = $cur_time - $start_time;
|
||||
my $time = sprintf "%d:%02d", int($tm), 60 * ($tm - int($tm));
|
||||
|
||||
printf STDERR "\33[2K\r", if ($is_console);
|
||||
printf STDERR "%s: processing sysfs files... %i%%: $names[0]", $time, $percent;
|
||||
printf STDERR "\n", if (!$is_console);
|
||||
STDERR->flush();
|
||||
|
||||
$next_i = int (($percent + 1) * $num_files / 100);
|
||||
$last_time = $cur_time;
|
||||
}
|
||||
}
|
||||
|
||||
my $cur_time = times;
|
||||
my $tm = $cur_time - $start_time;
|
||||
my $time = sprintf "%d:%02d", int($tm), 60 * ($tm - int($tm));
|
||||
|
||||
printf STDERR "\33[2K\r", if ($is_console);
|
||||
printf STDERR "%s: processing sysfs files... done\n", $time;
|
||||
|
||||
foreach my $file (@not_found) {
|
||||
print "$file not found.\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub undefined_symbols {
|
||||
print STDERR "Reading $sysfs_prefix directory contents...";
|
||||
find({
|
||||
wanted =>\&parse_existing_sysfs,
|
||||
preprocess =>\&dont_parse_special_attributes,
|
||||
no_chdir => 1
|
||||
}, $sysfs_prefix);
|
||||
print STDERR "done.\n";
|
||||
|
||||
$leaf{"others"}->{what} = "";
|
||||
|
||||
print STDERR "Converting ABI What fields into regexes...";
|
||||
foreach my $w (sort keys %data) {
|
||||
foreach my $what (split /\xac/,$w) {
|
||||
next if (!($what =~ m/^$sysfs_prefix/));
|
||||
|
||||
# Convert what into regular expressions
|
||||
|
||||
# Escape dot characters
|
||||
$what =~ s/\./\xf6/g;
|
||||
|
||||
# Temporarily change [0-9]+ type of patterns
|
||||
$what =~ s/\[0\-9\]\+/\xff/g;
|
||||
|
||||
# Temporarily change [\d+-\d+] type of patterns
|
||||
$what =~ s/\[0\-\d+\]/\xff/g;
|
||||
$what =~ s/\[(\d+)\]/\xf4$1\xf5/g;
|
||||
|
||||
# Temporarily change [0-9] type of patterns
|
||||
$what =~ s/\[(\d)\-(\d)\]/\xf4$1-$2\xf5/g;
|
||||
|
||||
# Handle multiple option patterns
|
||||
$what =~ s/[\{\<\[]([\w_]+)(?:[,|]+([\w_]+)){1,}[\}\>\]]/($1|$2)/g;
|
||||
|
||||
# Handle wildcards
|
||||
$what =~ s,\*,.*,g;
|
||||
$what =~ s,/\xf6..,/.*,g;
|
||||
$what =~ s/\<[^\>]+\>/.*/g;
|
||||
$what =~ s/\{[^\}]+\}/.*/g;
|
||||
$what =~ s/\[[^\]]+\]/.*/g;
|
||||
|
||||
$what =~ s/[XYZ]/.*/g;
|
||||
|
||||
# Recover [0-9] type of patterns
|
||||
$what =~ s/\xf4/[/g;
|
||||
$what =~ s/\xf5/]/g;
|
||||
|
||||
# Remove duplicated spaces
|
||||
$what =~ s/\s+/ /g;
|
||||
|
||||
# Special case: this ABI has a parenthesis on it
|
||||
$what =~ s/sqrt\(x^2\+y^2\+z^2\)/sqrt\(x^2\+y^2\+z^2\)/;
|
||||
|
||||
# Special case: drop comparition as in:
|
||||
# What: foo = <something>
|
||||
# (this happens on a few IIO definitions)
|
||||
$what =~ s,\s*\=.*$,,;
|
||||
|
||||
# Escape all other symbols
|
||||
$what =~ s/$escape_symbols/\\$1/g;
|
||||
$what =~ s/\\\\/\\/g;
|
||||
$what =~ s/\\([\[\]\(\)\|])/$1/g;
|
||||
$what =~ s/(\d+)\\(-\d+)/$1$2/g;
|
||||
|
||||
$what =~ s/\xff/\\d+/g;
|
||||
|
||||
# Special case: IIO ABI which a parenthesis.
|
||||
$what =~ s/sqrt(.*)/sqrt\(.*\)/;
|
||||
|
||||
# Simplify regexes with multiple .*
|
||||
$what =~ s#(?:\.\*){2,}##g;
|
||||
# $what =~ s#\.\*/\.\*#.*#g;
|
||||
|
||||
# Recover dot characters
|
||||
$what =~ s/\xf6/\./g;
|
||||
|
||||
my $leave = get_leave($what);
|
||||
|
||||
my $added = 0;
|
||||
foreach my $l (split /\|/, $leave) {
|
||||
if (defined($leaf{$l})) {
|
||||
next if ($leaf{$l}->{what} =~ m/\b$what\b/);
|
||||
$leaf{$l}->{what} .= "\xac" . $what;
|
||||
$added = 1;
|
||||
} else {
|
||||
$leaf{$l}->{what} = $what;
|
||||
$added = 1;
|
||||
}
|
||||
}
|
||||
if ($search_string && $added) {
|
||||
print STDERR "What: $what\n" if ($what =~ m#$search_string#);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
# Compile regexes
|
||||
foreach my $l (sort keys %leaf) {
|
||||
my @expr;
|
||||
foreach my $w(sort split /\xac/, $leaf{$l}->{what}) {
|
||||
push @expr, qr /^$w$/;
|
||||
}
|
||||
$leaf{$l}->{expr} = \@expr;
|
||||
}
|
||||
|
||||
# Take links into account
|
||||
foreach my $link (sort keys %aliases) {
|
||||
my $abs_file = $aliases{$link};
|
||||
graph_add_link($abs_file, $link);
|
||||
}
|
||||
print STDERR "done.\n";
|
||||
|
||||
check_undefined_symbols;
|
||||
}
|
||||
|
||||
# Ensure that the prefix will always end with a slash
|
||||
# While this is not needed for find, it makes the patch nicer
|
||||
# with --enable-lineno
|
||||
$prefix =~ s,/?$,/,;
|
||||
|
||||
if ($cmd eq "undefined" || $cmd eq "search") {
|
||||
$show_warnings = 0;
|
||||
}
|
||||
#
|
||||
# Parses all ABI files located at $prefix dir
|
||||
#
|
||||
find({wanted =>\&parse_abi, no_chdir => 1}, $prefix);
|
||||
|
||||
print STDERR Data::Dumper->Dump([\%data], [qw(*data)]) if ($debug);
|
||||
print STDERR Data::Dumper->Dump([\%data], [qw(*data)]) if ($debug & $dbg_dump_abi_structs);
|
||||
|
||||
#
|
||||
# Handles the command
|
||||
#
|
||||
if ($cmd eq "search") {
|
||||
if ($cmd eq "undefined") {
|
||||
undefined_symbols;
|
||||
} elsif ($cmd eq "search") {
|
||||
search_symbols;
|
||||
} else {
|
||||
if ($cmd eq "rest") {
|
||||
@@ -562,18 +984,23 @@ abi_book.pl - parse the Linux ABI files and produce a ReST book.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<abi_book.pl> [--debug] [--enable-lineno] [--man] [--help]
|
||||
[--(no-)rst-source] [--dir=<dir>] <COMAND> [<ARGUMENT>]
|
||||
B<abi_book.pl> [--debug <level>] [--enable-lineno] [--man] [--help]
|
||||
[--(no-)rst-source] [--dir=<dir>] [--show-hints]
|
||||
[--search-string <regex>]
|
||||
<COMAND> [<ARGUMENT>]
|
||||
|
||||
Where <COMMAND> can be:
|
||||
Where B<COMMAND> can be:
|
||||
|
||||
=over 8
|
||||
|
||||
B<search> [SEARCH_REGEX] - search for [SEARCH_REGEX] inside ABI
|
||||
B<search> I<SEARCH_REGEX> - search for I<SEARCH_REGEX> inside ABI
|
||||
|
||||
B<rest> - output the ABI in ReST markup language
|
||||
B<rest> - output the ABI in ReST markup language
|
||||
|
||||
B<validate> - validate the ABI contents
|
||||
B<validate> - validate the ABI contents
|
||||
|
||||
B<undefined> - existing symbols at the system that aren't
|
||||
defined at Documentation/ABI
|
||||
|
||||
=back
|
||||
|
||||
@@ -589,18 +1016,32 @@ the Documentation/ABI directory.
|
||||
=item B<--rst-source> and B<--no-rst-source>
|
||||
|
||||
The input file may be using ReST syntax or not. Those two options allow
|
||||
selecting between a rst-compliant source ABI (--rst-source), or a
|
||||
selecting between a rst-compliant source ABI (B<--rst-source>), or a
|
||||
plain text that may be violating ReST spec, so it requres some escaping
|
||||
logic (--no-rst-source).
|
||||
logic (B<--no-rst-source>).
|
||||
|
||||
=item B<--enable-lineno>
|
||||
|
||||
Enable output of #define LINENO lines.
|
||||
|
||||
=item B<--debug>
|
||||
=item B<--debug> I<debug level>
|
||||
|
||||
Put the script in verbose mode, useful for debugging. Can be called multiple
|
||||
times, to increase verbosity.
|
||||
Print debug information according with the level, which is given by the
|
||||
following bitmask:
|
||||
|
||||
- 1: Debug parsing What entries from ABI files;
|
||||
- 2: Shows what files are opened from ABI files;
|
||||
- 4: Dump the structs used to store the contents of the ABI files.
|
||||
|
||||
=item B<--show-hints>
|
||||
|
||||
Show hints about possible definitions for the missing ABI symbols.
|
||||
Used only when B<undefined>.
|
||||
|
||||
=item B<--search-string> I<regex string>
|
||||
|
||||
Show only occurences that match a search string.
|
||||
Used only when B<undefined>.
|
||||
|
||||
=item B<--help>
|
||||
|
||||
@@ -646,11 +1087,11 @@ $ scripts/get_abi.pl rest --dir Documentation/ABI/obsolete
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Report bugs to Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
Report bugs to Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright (c) 2016-2019 by Mauro Carvalho Chehab <mchehab+samsung@kernel.org>.
|
||||
Copyright (c) 2016-2021 by Mauro Carvalho Chehab <mchehab+huawei@kernel.org>.
|
||||
|
||||
License GPLv2: GNU GPL version 2 <http://gnu.org/licenses/gpl.html>.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user