From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] usb: composite: Fix max packet size for USB3.0
Date: Thu, 13 Dec 2018 14:38:18 +0100 [thread overview]
Message-ID: <20181213143818.77fbe7e1@jawa> (raw)
In-Reply-To: <8fc1c3dd-c87b-aebd-efd3-2ed238fcdd1e@denx.de>
On Thu, 13 Dec 2018 14:24:32 +0100
Marek Vasut <marex@denx.de> 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
> > <siva.durga.paladugu@xilinx.com> Reviewed-by: Bin Meng
> > <bmeng.cn@gmail.com> ---
> > 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 <lukma@denx.de>
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: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181213/fc3ce156/attachment.sig>
prev parent reply other threads:[~2018-12-13 13:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-13 9:46 [U-Boot] [PATCH] usb: composite: Fix max packet size for USB3.0 Siva Durga Prasad Paladugu
2018-12-13 13:24 ` Marek Vasut
2018-12-13 13:38 ` Lukasz Majewski [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181213143818.77fbe7e1@jawa \
--to=lukma@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.