linux/drivers/usb/core
Sarah Sharp 663c30d082 USB: Parse and store the SuperSpeed endpoint companion descriptors.
The USB 3.0 bus specification added an "Endpoint Companion" descriptor that is
supposed to follow all SuperSpeed Endpoint descriptors.  This descriptor is used
to extend the bus protocol to allow more packets to be sent to an endpoint per
"microframe".  The word microframe was removed from the USB 3.0 specification
because the host controller does not send Start Of Frame (SOF) symbols down the
USB 3.0 wires.

The descriptor defines a bMaxBurst field, which indicates the number of packets
of wMaxPacketSize that a SuperSpeed device can send or recieve in a service
interval.  All non-control endpoints may set this value as high as 16 packets
(bMaxBurst = 15).

The descriptor also allows isochronous endpoints to further specify that they
can send and receive multiple bursts per service interval.  The bmAttributes
allows them to specify a "Mult" of up to 3 (bmAttributes = 2).

Bulk endpoints use bmAttributes to report the number of "Streams" they support.
This was an extension of the endpoint pipe concept to allow multiple mass
storage device commands to be outstanding for one bulk endpoint at a time.  This
should allow USB 3.0 mass storage devices to support SCSI command queueing.
Bulk endpoints can say they support up to 2^16 (65,536) streams.

The information in the endpoint companion descriptor must be stored with the
other device, config, interface, and endpoint descriptors because the host
controller needs to access them quickly, and we need to install some default
values if a SuperSpeed device doesn't provide an endpoint companion descriptor.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-06-15 21:44:49 -07:00
..
buffer.c USB: pass mem_flags to dma_alloc_coherent 2009-04-23 14:15:28 -07:00
config.c USB: Parse and store the SuperSpeed endpoint companion descriptors. 2009-06-15 21:44:49 -07:00
devices.c USB: drivers: use USB API functions rather than constants 2009-03-24 16:20:28 -07:00
devio.c USB: add reset endpoint operations 2009-04-17 10:50:27 -07:00
driver.c USB: Avoid PM error messages during resume if a device was disconnected 2009-06-15 21:44:47 -07:00
endpoint.c usb: convert endpoint devices to bus-less childs of the usb interface 2009-06-15 21:44:45 -07:00
file.c USB: remove err() macro from usb core code 2008-10-17 14:41:11 -07:00
generic.c USB: Enhance usage of pm_message_t 2009-01-07 10:00:03 -08:00
hcd-pci.c USB: new flag for resume-from-hibernation 2009-06-15 21:44:44 -07:00
hcd.c USB: Add USB 3.0 roothub support to USB core. 2009-06-15 21:44:48 -07:00
hcd.h USB: Support for addressing a USB device under xHCI 2009-06-15 21:44:49 -07:00
hub.c USB: Support for addressing a USB device under xHCI 2009-06-15 21:44:49 -07:00
hub.h USB: Add USB 3.0 roothub support to USB core. 2009-06-15 21:44:48 -07:00
inode.c Push BKL down into ->remount_fs() 2009-06-11 21:36:11 -04:00
Kconfig USB: usbfs: deprecate and hide option for !embedded 2009-06-15 21:44:41 -07:00
Makefile USB: add the usbfs devices file to debugfs 2009-06-15 21:44:43 -07:00
message.c NLS: update handling of Unicode 2009-06-15 21:44:43 -07:00
notify.c USB : correct comments in usb/core/notify.c 2008-02-01 14:34:44 -08:00
otg_whitelist.h USB: fix codingstyle issues in drivers/usb/core/*.h 2008-02-01 14:35:07 -08:00
quirks.c USB: add quirk to avoid config and interface strings 2009-03-24 16:20:25 -07:00
sysfs.c USB: core/sysfs: fix sparse warnings 2009-06-15 21:44:41 -07:00
urb.c USB: Add SuperSpeed to the list of USB device speeds. 2009-06-15 21:44:48 -07:00
usb.c USB: Support for addressing a USB device under xHCI 2009-06-15 21:44:49 -07:00
usb.h usb: convert endpoint devices to bus-less childs of the usb interface 2009-06-15 21:44:45 -07:00