USB: xhci: properly set the "Mult" field of the endpoint context.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 16 Apr 2010 15:07:04 +0000 (08:07 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 30 Apr 2010 16:25:10 +0000 (09:25 -0700)
commit1cf62246c0e394021e494e0a8f1013e80db1a1a9
tree855c6a4097030383e4f1c5f0edaae94ec13d0d53
parentfcf7d2141f4a363a4a8454c4a0f26bb69e766c5f
USB: xhci: properly set the "Mult" field of the endpoint context.

A SuperSpeed interrupt or isochronous endpoint can define the number of
"burst transactions" it can handle in a service interval.  This is
indicated by the "Mult" bits in the bmAttributes of the SuperSpeed
Endpoint Companion Descriptor.  For example, if it has a max packet size
of 1024, a max burst of 11, and a mult of 3, the host may send 33
1024-byte packets in one service interval.

We must tell the xHCI host controller the number of multiple service
opportunities (mults) the device can handle when the endpoint is
installed.  We do that by setting the Mult field of the Endpoint Context
before a configure endpoint command is sent down.  The Mult field is
invalid for control or bulk SuperSpeed endpoints.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/xhci-mem.c