OSDN Git Service

usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1
authorRoger Quadros <rogerq@ti.com>
Wed, 26 Mar 2014 16:46:38 +0000 (18:46 +0200)
committerFelipe Balbi <balbi@ti.com>
Wed, 16 Apr 2014 15:11:45 +0000 (10:11 -0500)
commit9c1b70361e0b38e4acb8e62b54da66538cb77ff2
treee86b13bdffb038741c37c0c02d6aaba89d7bbfd9
parent32702e96a9f76ea0e0a1d218310d2ac1adbd2907
usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1

It was impossible to enumerate on a SuperSpeed (XHCI) host
with alternate setting = 1 due to the wrongly set 'bMaxBurst'
field in the SuperSpeed Endpoint Companion descriptor.

Testcase:
<host> modprobe -r usbtest; modprobe usbtest alt=1
<device> modprobe g_zero
plug device to SuperSpeed port on the host.

Without this patch the host always complains like so
"usb 12-2: Not enough bandwidth for new device state.
 usb 12-2: Not enough bandwidth for altsetting 1"

Bug was introduced by commit cf9a08ae in v3.9

Fixes: cf9a08ae5aec (usb: gadget: convert source sink and loopback to
new function interface)

Cc: 3.9+ <stable@vger.kernel.org> # 3.9+
Reviewed-by: Felipe Balbi <balbi@ti.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/zero.c