usb: xhci: Add DbC support in xHCI driver
authorLu Baolu <baolu.lu@linux.intel.com>
Fri, 8 Dec 2017 15:59:10 +0000 (17:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Dec 2017 16:43:52 +0000 (17:43 +0100)
commitdfba2174dc421ecad8dc50741054a305cd3ba681
tree6fe57b4fc312c0560f0e52ba4196354574ce9e11
parent67d2ea9fde2aa96f36af0537e4004efb123319fb
usb: xhci: Add DbC support in xHCI driver

xHCI compatible USB host controllers(i.e. super-speed USB3 controllers)
can be implemented with the Debug Capability(DbC). It presents a debug
device which is fully compliant with the USB framework and provides the
equivalent of a very high performance full-duplex serial link. The debug
capability operation model and registers interface are defined in 7.6.8
of the xHCI specification, revision 1.1.

The DbC debug device shares a root port with the xHCI host. By default,
the debug capability is disabled and the root port is assigned to xHCI.
When the DbC is enabled, the root port will be assigned to the DbC debug
device, and the xHCI sees nothing on this port. This implementation uses
a sysfs node named <dbc> under the xHCI device to manage the enabling
and disabling of the debug capability.

When the debug capability is enabled, it will present a debug device
through the debug port. This debug device is fully compliant with the
USB3 framework, and it can be enumerated by a debug host on the other
end of the USB link. As soon as the debug device is configured, a TTY
serial device named /dev/ttyDBC0 will be created.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd [new file with mode: 0644]
drivers/usb/host/Kconfig
drivers/usb/host/Makefile
drivers/usb/host/xhci-dbgcap.c [new file with mode: 0644]
drivers/usb/host/xhci-dbgcap.h [new file with mode: 0644]
drivers/usb/host/xhci-dbgtty.c [new file with mode: 0644]
drivers/usb/host/xhci-trace.h
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h