Skip to contentSkip to conversation

question regarding USB gadget driver (dwc2)

U-Boot Steve Rae 3 participants 6 messages Jan 27, 2016 – Jan 29, 2016

lore
Share & tools
lore

Steve Rae

author
#0 lore raw

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

#1 lore raw
Quoted 11 lines · Steve Rae

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

Quoted 7 lines

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":

I will have to delegate this onto Lukasz, since he's the s3c gadget expert.

Take a look at:
[PATCH 1/2] usb: gadget: s3c_udc_otg: fixed max packet size check for ep_in in high speed

Best regards,
Marek Vasut

author
#2 lore raw
Quoted 20 lines · Marek Vasut
Quoted 11 lines · Steve Rae

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

Quoted 7 lines

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":

Quoted 9 lines

I will have to delegate this onto Lukasz, since he's the s3c gadget expert.

Take a look at:
[PATCH 1/2] usb: gadget: s3c_udc_otg: fixed max packet size check for ep_in in high speed

Best regards,
Marek Vasut

yes - I think that 'patchwork.ozlabs.org/patch/560029' would resolve my issue
Thanks, Steve

#3 lore raw
Quoted 26 lines · Steve Rae
Quoted 25 lines · Marek Vasut
Quoted 9 lines · Steve Rae

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

Quoted 8 lines

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":

I will have to delegate this onto Lukasz, since he's the s3c gadget expert.

Take a look at:
[PATCH 1/2] usb: gadget: s3c_udc_otg: fixed max packet size check for ep_in in high speed

Quoted 5 lines
Quoted 2 lines

Best regards,
Marek Vasut

yes - I think that 'patchwork.ozlabs.org/patch/560029' would resolve my issue

Can you please resubmit that patch if it helps so it finally gets in ? Thanks

Best regards,
Marek Vasut

#4 lore raw
In reply to Steve Rae

Hi Steve,

Quoted 31 lines · Marek Vasut
Quoted 28 lines · Steve Rae
Quoted 12 lines

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

Quoted 7 lines

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":

I will have to delegate this onto Lukasz, since he's the s3c gadget expert.

Take a look at:
[PATCH 1/2] usb: gadget: s3c_udc_otg: fixed max packet size check for ep_in in high speed

Quoted 7 lines
Quoted 3 lines

Best regards,
Marek Vasut

yes - I think that 'patchwork.ozlabs.org/patch/560029' would resolve my issue
Thanks, Steve

Ok, I see the point. The above patch should not bring any regression, since if MPS < maxpacket(ep), then we will set the descriptor's wMaxPacketSize as ep->ep.maxpacket.

I'm just wondering if you could share the wMaxPacketSize of your platform (lsusb -v on HOST).

In my case it is:
wMaxPacketSize 0x0200 1x 512 bytes

Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
author
#5 lore raw

Hi Lukasz,

Quoted 45 lines · Lukasz Majewski

Hi Steve,

Quoted 31 lines · Marek Vasut
Quoted 28 lines · Steve Rae
Quoted 12 lines

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

Quoted 7 lines

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":

I will have to delegate this onto Lukasz, since he's the s3c gadget expert.

Take a look at:
[PATCH 1/2] usb: gadget: s3c_udc_otg: fixed max packet size check for ep_in in high speed

Quoted 7 lines
Quoted 3 lines

Best regards,
Marek Vasut

yes - I think that 'patchwork.ozlabs.org/patch/560029' would resolve my issue
Thanks, Steve

Ok, I see the point. The above patch should not bring any regression, since if MPS < maxpacket(ep), then we will set the descriptor's wMaxPacketSize as ep->ep.maxpacket.

Quoted 8 lines

I'm just wondering if you could share the wMaxPacketSize of your platform (lsusb -v on HOST).

In my case it is:
wMaxPacketSize 0x0200 1x 512 bytes

on host: lsusb -v
[... snip ...]
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
[... snip ...]

Thanks, Steve