Hi, On Wed, Jul 13, 2011 at 07:42:22PM +0200, Sebastian Andrzej Siewior wrote: > For bMaxPacketSize0 we usually take what is specified in ep0->maxpacket. > This is fine in most cases, however on SuperSpeed bMaxPacketSize0 > specifies the exponent instead of the actual size in bytes. The only > valid value on SS is 9 which denotes 512 bytes. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > drivers/usb/gadget/composite.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c > index 5ef8779..77dfda5 100644 > --- a/drivers/usb/gadget/composite.c > +++ b/drivers/usb/gadget/composite.c > @@ -1079,9 +1079,10 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) > cdev->desc.bMaxPacketSize0 = > cdev->gadget->ep0->maxpacket; > if (gadget_is_superspeed(gadget)) { > - if (gadget->speed >= USB_SPEED_SUPER) > + if (gadget->speed >= USB_SPEED_SUPER) { > cdev->desc.bcdUSB = cpu_to_le16(0x0300); > - else > + cdev->desc.bMaxPacketSize0 = 9; > + } else coding style asks you to put braces on the else branch too ;-) -- balbi
Attachment:
signature.asc
Description: Digital signature