From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <53566078.1070602@ti.com> Date: Tue, 22 Apr 2014 15:28:40 +0300 From: Roger Quadros MIME-Version: 1.0 To: CC: , , , , "3.9+" Subject: Re: [PATCH v2] usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1 References: <1395826086-5097-1-git-send-email-rogerq@ti.com> <1395852398-7578-1-git-send-email-rogerq@ti.com> In-Reply-To: <1395852398-7578-1-git-send-email-rogerq@ti.com> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: Hi Felipe, On 03/26/2014 06:46 PM, Roger Quadros wrote: > 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: > modprobe -r usbtest; modprobe usbtest alt=1 > 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+ # 3.9+ > Reviewed-by: Felipe Balbi > Acked-by: Sebastian Andrzej Siewior > Signed-off-by: Roger Quadros Can you please queue this for -rc fixes? Thanks. cheers, -roger > --- > drivers/usb/gadget/zero.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c > index 9f170c5..134f354 100644 > --- a/drivers/usb/gadget/zero.c > +++ b/drivers/usb/gadget/zero.c > @@ -300,7 +300,7 @@ static int __init zero_bind(struct usb_composite_dev *cdev) > ss_opts->isoc_interval = gzero_options.isoc_interval; > ss_opts->isoc_maxpacket = gzero_options.isoc_maxpacket; > ss_opts->isoc_mult = gzero_options.isoc_mult; > - ss_opts->isoc_maxburst = gzero_options.isoc_maxpacket; > + ss_opts->isoc_maxburst = gzero_options.isoc_maxburst; > ss_opts->bulk_buflen = gzero_options.bulk_buflen; > > func_ss = usb_get_function(func_inst_ss); >