linux/drivers/usb/misc
Jack Pham f624ec70b4 usb: misc: lvstest: add entry to place port in compliance mode
Add support for the SuperSpeed Link Layer test case TD.7.34
which requires the operator to place the port into compliance
mode, and to subsequently bring it out via reset. Historically
according to the (now deprecated) USB 3.0 specification a
SuperSpeed host downstream port would automatically transition
to Compliance mode from the Polling state if LFPS polling times
out. However the language in USB 3.1 as well as xHCI 1.1 states
it may be required to explicitly enable this transition. For
such hosts this is done by sending a SET_FEATURE(PORT_LINK_STATE)
with the state set to Compliance to the root hub port.

Similar to the other supported commands, to do this via sysfs:

     echo  > /sys/bus/usb/devices/2-0\:1.0/enable_compliance

According to xHCI 1.1 section 4.19.1.2.4.1, this enables the
transition to compliance mode upon LFPS timeout. Note that this
can only be issued when the port is in disconnected state. And
in order to disable this behavior on subsequent transitions, a
warm reset should be issued. So add another entry to do that:

     echo  > /sys/bus/usb/devices/2-0\:1.0/warm_reset

In general these attributes can also be useful for other USB
SuperSpeed compliance tests such as electrical and eye diagram
testing which require CPn patterns to be transmitted.

Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-08-28 11:43:39 +02:00
..
sisusbvga usb: misc: sisusbvga: compress return logic into one line 2017-07-17 13:13:44 +02:00
adutux.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
appledisplay.c USB: appledisplay: refactor endpoint retrieval 2017-03-23 13:53:16 +01:00
chaoskey.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
cypress_cy7c63.c usb: misc: cypress_cy7c63: don't print on ENOMEM 2016-08-30 19:17:37 +02:00
cytherm.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
ehset.c usb: ehci: Add support for SINGLE_STEP_SET_FEATURE test of EHSET 2013-08-12 13:13:32 -07:00
emi26.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
emi62.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ezusb.c ezusb: constify local structures 2016-09-13 17:24:24 +02:00
ftdi-elan.c usb: misc: ftdi-elan: fix duplicated code for different branches 2017-08-28 11:17:58 +02:00
idmouse.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
iowarrior.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
isight_firmware.c
Kconfig usb: typec: ucsi: Add ACPI driver 2017-06-27 17:55:45 +02:00
ldusb.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
legousbtower.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
lvstest.c usb: misc: lvstest: add entry to place port in compliance mode 2017-08-28 11:43:39 +02:00
Makefile usb: typec: ucsi: Add ACPI driver 2017-06-27 17:55:45 +02:00
rio500_usb.h
rio500.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
trancevibrator.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
usb251xb.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
usb3503.c usb: misc: usb3503: Clean up on driver unbind 2016-06-07 22:19:59 -07:00
usb4604.c usb: misc: Add driver for usb4604 2016-08-09 15:49:01 +02:00
usb_u132.h
usblcd.c USB: usblcd: refactor endpoint retrieval 2017-03-23 13:54:03 +01:00
usbsevseg.c usb: usbsevseg: constify attribute_group structures. 2017-08-10 11:31:27 -07:00
usbtest.c usb: misc: refactor code 2017-04-08 12:04:42 +02:00
uss720.c USB: misc: remove unneeded MODULE_VERSION() usage 2017-07-22 15:56:52 +02:00
yurex.c USB: yurex: refactor endpoint retrieval 2017-03-23 13:54:03 +01:00