From: Frank Wang Date: Wed, 27 Jan 2016 20:39:40 +0000 (-0800) Subject: usb: gadget: dwc2_udc_otg: modified the check condition for max packet size of ep_in... X-Git-Tag: v2016.03-rc2~130^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8c9b4d5598e014036d2f2637c17bd6e3748ff6a3;p=oweals%2Fu-boot.git usb: gadget: dwc2_udc_otg: modified the check condition for max packet size of ep_in in high speed 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 Tested-by: Steve Rae --- diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c index ffe2952f56..cb20b00a56 100644 --- a/drivers/usb/gadget/dwc2_udc_otg.c +++ b/drivers/usb/gadget/dwc2_udc_otg.c @@ -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);