On Thu, 13 Dec 2018 14:24:32 +0100 Marek Vasut <[email protected]> wrote:
> On 12/13/2018 10:46 AM, Siva Durga Prasad Paladugu wrote: > > For USB3.0, the max packetsize for GET_DESCRIPTOR should be > > sent as exponent value for 2. This means for 512, max packet > > size should be filled with 9(2^9=512). Also, fill the USB > > version field with 3.0 if speed is negotiated to Superspeed. > > This fixes the issue of DFU gadget download failure with > > superspeed. Without this patch, the max packet size is > > overflowed to zero as the bMaxPacketsize is of u8 and hence > > host is not able to detect this device. > > > > Signed-off-by: Siva Durga Prasad Paladugu > > <[email protected]> Reviewed-by: Bin Meng > > <[email protected]> --- > > Changes from RFC: > > - Fixed typo in description as per comment. > > --- > > drivers/usb/gadget/composite.c | 17 +++++++++++++++-- > > 1 file changed, 15 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/usb/gadget/composite.c > > b/drivers/usb/gadget/composite.c index 5106cc5..c7e7623 100644 > > --- a/drivers/usb/gadget/composite.c > > +++ b/drivers/usb/gadget/composite.c > > @@ -735,8 +735,21 @@ composite_setup(struct usb_gadget *gadget, > > const struct usb_ctrlrequest *ctrl) case USB_DT_DEVICE: > > cdev->desc.bNumConfigurations = > > count_configs(cdev, USB_DT_DEVICE); > > - cdev->desc.bMaxPacketSize0 = > > - cdev->gadget->ep0->maxpacket; > > + > > + /* > > + * If the speed is Super speed, then the > > supported > > + * max packet size is 512 and it should be > > sent as > > + * exponent of 2. So, 9(2^9=512) should be > > filled in > > + * bMaxPacketSize0. Also fill USB version > > as 3.0 > > + * if speed is Super speed. > > + */ > > + if (cdev->gadget->speed == > > USB_SPEED_SUPER) { > > + cdev->desc.bMaxPacketSize0 = 9; > > + cdev->desc.bcdUSB = > > cpu_to_le16(0x0300); > > + } else { > > + cdev->desc.bMaxPacketSize0 = > > + > > cdev->gadget->ep0->maxpacket; > > + } > > value = min(w_length, (u16) sizeof > > cdev->desc); memcpy(req->buf, &cdev->desc, value); > > break; > > > Applied, thanks > Just for completeness: Acked-by: Lukasz Majewski <[email protected]> Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: [email protected]
pgpCJv3EvUUnm.pgp
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

