[U-Boot] question regarding USB gadget driver (dwc2)

Steve Rae srae at broadcom.com
Wed Jan 27 01:35:55 CET 2016


Hi Marek & Lukasz,


I have an issue running fastboot on my board (which is USB_SPEED_HIGH):

    => fastboot0

    failed to enable in ep

    failed to enable in ep

    failed to enable in ep

Because of this, fastboot does not even initialize properly, and I need 
to "^C" to break out…

I have traced this the following code in 
"drivers/usb/gadget/dwc2_udc_otg.c":

    559/* hardware _could_ do smaller, but driver doesn't */

    560if ((desc->bmAttributes== USB_ENDPOINT_XFER_BULK

    561&& le16_to_cpu(get_unaligned(&desc->wMaxPacketSize)) !=

    562ep_maxpacket(ep)) || !get_unaligned(&desc->wMaxPacketSize)) {

    563

    564debug("%s: bad %s maxpacket\n", __func__, _ep->name);

    565return -ERANGE;

    566}

    567

    568dev= ep->dev;

    569if (!dev->driver || dev->gadget.speed== USB_SPEED_UNKNOWN) {

    570

    571debug("%s: bogus device state\n", __func__);

    572return -ESHUTDOWN;

    573}

    574

    575ep->stopped = 0;

    576ep->desc= desc;

    577ep->pio_irqs= 0;

    578ep->ep.maxpacket= le16_to_cpu(get_unaligned(&desc->wMaxPacketSize));

The error message is because:

    line 561 wMaxPacketSize= 64, and

    line 562 ep_maxpacket(ep) = 512

I am questioning this logic, because at line 578, the ep.maxpacket is 
being changed to the wMaxPacketSize anyway!


I am uncertain how to proceed - please advise!

Thanks in advance, Steve




More information about the U-Boot mailing list