usb: gadget: dwc2_udc_otg: modified the check condition for max packet size of ep_in...
authorFrank Wang <frank.wang@rock-chips.com>
Wed, 27 Jan 2016 20:39:40 +0000 (12:39 -0800)
committerMarek Vasut <marex@denx.de>
Thu, 4 Feb 2016 11:38:26 +0000 (12:38 +0100)
In current high speed fastboot, fs_ep_in.wMaxPacketSize is configured 64 bytes
as default, as a result, it failed to match the size at initialization stage in
usb controller.
Actually, hardware can support less than or equal to 512 bytes in high speed mode,
so I changed the condition from  '!=' to '>' to fix this issue.

Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Tested-by: Steve Rae <srae@broadcom.com>
drivers/usb/gadget/dwc2_udc_otg.c

index ffe2952f56b1bfa170d0657da43b11a074c734f1..cb20b00a56ba70716ceb1d1c0f50d193ea2d2bec 100644 (file)
@@ -557,8 +557,8 @@ static int dwc2_ep_enable(struct usb_ep *_ep,
        }
 
        /* hardware _could_ do smaller, but driver doesn't */
-       if ((desc->bmAttributes == USB_ENDPOINT_XFER_BULK
-            && le16_to_cpu(get_unaligned(&desc->wMaxPacketSize)) !=
+       if ((desc->bmAttributes == USB_ENDPOINT_XFER_BULK &&
+            le16_to_cpu(get_unaligned(&desc->wMaxPacketSize)) >
             ep_maxpacket(ep)) || !get_unaligned(&desc->wMaxPacketSize)) {
 
                debug("%s: bad %s maxpacket\n", __func__, _ep->name);