mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 03:11:46 +00:00
bf5ce5bf3c
Commit655fe4effe
("usbcore: add sysfs support to xHCI usb3 hardware LPM") introduced usb3_hardware_lpm sysfs node. This doesn't show the correct status of USB3 U1 and U2 LPM status. This patch fixes this by replacing usb3_hardware_lpm with two nodes, usb3_hardware_lpm_u1 (for U1) and usb3_hardware_lpm_u2 (for U2), and recording the U1/U2 LPM status in right places. This patch should be back-ported to kernels as old as 4.3, that contains Commit655fe4effe
("usbcore: add sysfs support to xHCI usb3 hardware LPM"). Cc: stable@vger.kernel.org Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
218 lines
8.4 KiB
Plaintext
218 lines
8.4 KiB
Plaintext
What: /sys/bus/usb/devices/INTERFACE/authorized
|
|
Date: August 2015
|
|
Description:
|
|
This allows to authorize (1) or deauthorize (0)
|
|
individual interfaces instead a whole device
|
|
in contrast to the device authorization.
|
|
If a deauthorized interface will be authorized
|
|
so the driver probing must be triggered manually
|
|
by writing INTERFACE to /sys/bus/usb/drivers_probe
|
|
This allows to avoid side-effects with drivers
|
|
that need multiple interfaces.
|
|
A deauthorized interface cannot be probed or claimed.
|
|
|
|
What: /sys/bus/usb/devices/usbX/interface_authorized_default
|
|
Date: August 2015
|
|
Description:
|
|
This is used as value that determines if interfaces
|
|
would be authorized by default.
|
|
The value can be 1 or 0. It's by default 1.
|
|
|
|
What: /sys/bus/usb/device/.../authorized
|
|
Date: July 2008
|
|
KernelVersion: 2.6.26
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
Description:
|
|
Authorized devices are available for use by device
|
|
drivers, non-authorized one are not. By default, wired
|
|
USB devices are authorized.
|
|
|
|
Certified Wireless USB devices are not authorized
|
|
initially and should be (by writing 1) after the
|
|
device has been authenticated.
|
|
|
|
What: /sys/bus/usb/device/.../wusb_cdid
|
|
Date: July 2008
|
|
KernelVersion: 2.6.27
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
Description:
|
|
For Certified Wireless USB devices only.
|
|
|
|
A devices's CDID, as 16 space-separated hex octets.
|
|
|
|
What: /sys/bus/usb/device/.../wusb_ck
|
|
Date: July 2008
|
|
KernelVersion: 2.6.27
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
Description:
|
|
For Certified Wireless USB devices only.
|
|
|
|
Write the device's connection key (CK) to start the
|
|
authentication of the device. The CK is 16
|
|
space-separated hex octets.
|
|
|
|
What: /sys/bus/usb/device/.../wusb_disconnect
|
|
Date: July 2008
|
|
KernelVersion: 2.6.27
|
|
Contact: David Vrabel <david.vrabel@csr.com>
|
|
Description:
|
|
For Certified Wireless USB devices only.
|
|
|
|
Write a 1 to force the device to disconnect
|
|
(equivalent to unplugging a wired USB device).
|
|
|
|
What: /sys/bus/usb/drivers/.../new_id
|
|
Date: October 2011
|
|
Contact: linux-usb@vger.kernel.org
|
|
Description:
|
|
Writing a device ID to this file will attempt to
|
|
dynamically add a new device ID to a USB device driver.
|
|
This may allow the driver to support more hardware than
|
|
was included in the driver's static device ID support
|
|
table at compile time. The format for the device ID is:
|
|
idVendor idProduct bInterfaceClass RefIdVendor RefIdProduct
|
|
The vendor ID and device ID fields are required, the
|
|
rest is optional. The Ref* tuple can be used to tell the
|
|
driver to use the same driver_data for the new device as
|
|
it is used for the reference device.
|
|
Upon successfully adding an ID, the driver will probe
|
|
for the device and attempt to bind to it. For example:
|
|
# echo "8086 10f5" > /sys/bus/usb/drivers/foo/new_id
|
|
|
|
Here add a new device (0458:7045) using driver_data from
|
|
an already supported device (0458:704c):
|
|
# echo "0458 7045 0 0458 704c" > /sys/bus/usb/drivers/foo/new_id
|
|
|
|
Reading from this file will list all dynamically added
|
|
device IDs in the same format, with one entry per
|
|
line. For example:
|
|
# cat /sys/bus/usb/drivers/foo/new_id
|
|
8086 10f5
|
|
dead beef 06
|
|
f00d cafe
|
|
|
|
The list will be truncated at PAGE_SIZE bytes due to
|
|
sysfs restrictions.
|
|
|
|
What: /sys/bus/usb-serial/drivers/.../new_id
|
|
Date: October 2011
|
|
Contact: linux-usb@vger.kernel.org
|
|
Description:
|
|
For serial USB drivers, this attribute appears under the
|
|
extra bus folder "usb-serial" in sysfs; apart from that
|
|
difference, all descriptions from the entry
|
|
"/sys/bus/usb/drivers/.../new_id" apply.
|
|
|
|
What: /sys/bus/usb/drivers/.../remove_id
|
|
Date: November 2009
|
|
Contact: CHENG Renquan <rqcheng@smu.edu.sg>
|
|
Description:
|
|
Writing a device ID to this file will remove an ID
|
|
that was dynamically added via the new_id sysfs entry.
|
|
The format for the device ID is:
|
|
idVendor idProduct. After successfully
|
|
removing an ID, the driver will no longer support the
|
|
device. This is useful to ensure auto probing won't
|
|
match the driver to the device. For example:
|
|
# echo "046d c315" > /sys/bus/usb/drivers/foo/remove_id
|
|
|
|
Reading from this file will list the dynamically added
|
|
device IDs, exactly like reading from the entry
|
|
"/sys/bus/usb/drivers/.../new_id"
|
|
|
|
What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm
|
|
Date: September 2011
|
|
Contact: Andiry Xu <andiry.xu@amd.com>
|
|
Description:
|
|
If CONFIG_PM is set and a USB 2.0 lpm-capable device is plugged
|
|
in to a xHCI host which support link PM, it will perform a LPM
|
|
test; if the test is passed and host supports USB2 hardware LPM
|
|
(xHCI 1.0 feature), USB2 hardware LPM will be enabled for the
|
|
device and the USB device directory will contain a file named
|
|
power/usb2_hardware_lpm. The file holds a string value (enable
|
|
or disable) indicating whether or not USB2 hardware LPM is
|
|
enabled for the device. Developer can write y/Y/1 or n/N/0 to
|
|
the file to enable/disable the feature.
|
|
|
|
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1
|
|
/sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2
|
|
Date: November 2015
|
|
Contact: Kevin Strasser <kevin.strasser@linux.intel.com>
|
|
Lu Baolu <baolu.lu@linux.intel.com>
|
|
Description:
|
|
If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged
|
|
in to a xHCI host which supports link PM, it will check if U1
|
|
and U2 exit latencies have been set in the BOS descriptor; if
|
|
the check is passed and the host supports USB3 hardware LPM,
|
|
USB3 hardware LPM will be enabled for the device and the USB
|
|
device directory will contain two files named
|
|
power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These
|
|
files hold a string value (enable or disable) indicating whether
|
|
or not USB3 hardware LPM U1 or U2 is enabled for the device.
|
|
|
|
What: /sys/bus/usb/devices/.../removable
|
|
Date: February 2012
|
|
Contact: Matthew Garrett <mjg@redhat.com>
|
|
Description:
|
|
Some information about whether a given USB device is
|
|
physically fixed to the platform can be inferred from a
|
|
combination of hub descriptor bits and platform-specific data
|
|
such as ACPI. This file will read either "removable" or
|
|
"fixed" if the information is available, and "unknown"
|
|
otherwise.
|
|
|
|
What: /sys/bus/usb/devices/.../ltm_capable
|
|
Date: July 2012
|
|
Contact: Sarah Sharp <sarah.a.sharp@linux.intel.com>
|
|
Description:
|
|
USB 3.0 devices may optionally support Latency Tolerance
|
|
Messaging (LTM). They indicate their support by setting a bit
|
|
in the bmAttributes field of their SuperSpeed BOS descriptors.
|
|
If that bit is set for the device, ltm_capable will read "yes".
|
|
If the device doesn't support LTM, the file will read "no".
|
|
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
|
|
Date: August 2012
|
|
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
|
Description:
|
|
The /sys/bus/usb/devices/.../(hub interface)/portX
|
|
is usb port device's sysfs directory.
|
|
|
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type
|
|
Date: January 2013
|
|
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
|
Description:
|
|
Some platforms provide usb port connect types through ACPI.
|
|
This attribute is to expose these information to user space.
|
|
The file will read "hotplug", "wired" and "not used" if the
|
|
information is available, and "unknown" otherwise.
|
|
|
|
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
|
Date: May 2013
|
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
|
Description:
|
|
USB 2.0 devices may support hardware link power management (LPM)
|
|
L1 sleep state. The usb2_lpm_l1_timeout attribute allows
|
|
tuning the timeout for L1 inactivity timer (LPM timer), e.g.
|
|
needed inactivity time before host requests the device to go to L1 sleep.
|
|
Useful for power management tuning.
|
|
Supported values are 0 - 65535 microseconds.
|
|
|
|
What: /sys/bus/usb/devices/.../power/usb2_lpm_besl
|
|
Date: May 2013
|
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
|
Description:
|
|
USB 2.0 devices that support hardware link power management (LPM)
|
|
L1 sleep state now use a best effort service latency value (BESL) to
|
|
indicate the best effort to resumption of service to the device after the
|
|
initiation of the resume event.
|
|
If the device does not have a preferred besl value then the host can select
|
|
one instead. This usb2_lpm_besl attribute allows to tune the host selected besl
|
|
value in order to tune power saving and service latency.
|
|
|
|
Supported values are 0 - 15.
|
|
More information on how besl values map to microseconds can be found in
|
|
USB 2.0 ECN Errata for Link Power Management, section 4.10)
|