[PATCH v2 0/3] usb: dwc3: Avoid using reserved EPs

Andy Shevchenko posted 3 patches 1 year ago
There is a newer version of this series
.../bindings/usb/snps,dwc3-common.yaml        | 11 ++++
drivers/usb/dwc3/dwc3-pci.c                   | 10 ++++
drivers/usb/dwc3/gadget.c                     | 60 +++++++++++++++++--
3 files changed, 76 insertions(+), 5 deletions(-)
[PATCH v2 0/3] usb: dwc3: Avoid using reserved EPs
Posted by Andy Shevchenko 1 year ago
On some platforms (Intel-based and AFAIK ARM-based) the EPs in the gadget
(USB Device Controller mode) may be reserved for some special means, such as
tracing. This series extends DT schema and driver to avoid using those.
Without this the USB gadget mode won't work properly (those devices that
"luckily" allocated the reserved EPs).

Ferry already tested the previous versions, but I ask him again to
re-test this version which is significantly rewritten. I have not
applied given tag just to be sure we got it carefully tested again.

Changelog v2:
- added minItems to the schema (Rob)
- revisited code and add NULL check to avoid crashes (Thinh)
- rewrote helper function to return error to the user if parsing fails
- elaborated in the commit message why we need this quirk (Thinh)
- addressed miscellaneous style issues (Thinh)

Andy Shevchenko (3):
  dt-bindings: usb: dwc3: Add a property to reserve endpoints
  usb: dwc3: gadget: Add support for snps,reserved-endpoints property
  usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield

 .../bindings/usb/snps,dwc3-common.yaml        | 11 ++++
 drivers/usb/dwc3/dwc3-pci.c                   | 10 ++++
 drivers/usb/dwc3/gadget.c                     | 60 +++++++++++++++++--
 3 files changed, 76 insertions(+), 5 deletions(-)

-- 
2.43.0.rc1.1336.g36b5255a03ac
Re: [PATCH v2 0/3] usb: dwc3: Avoid using reserved EPs
Posted by Ferry Toth 12 months ago
Op 03-02-2025 om 20:10 schreef Andy Shevchenko:
> 
> On some platforms (Intel-based and AFAIK ARM-based) the EPs in the gadget
> (USB Device Controller mode) may be reserved for some special means, such as
> tracing. This series extends DT schema and driver to avoid using those.
> Without this the USB gadget mode won't work properly (those devices that
> "luckily" allocated the reserved EPs).
> 
> Ferry already tested the previous versions, but I ask him again to
> re-test this version which is significantly rewritten. I have not
> applied given tag just to be sure we got it carefully tested again.
> 
> Changelog v2:
> - added minItems to the schema (Rob)
> - revisited code and add NULL check to avoid crashes (Thinh)
> - rewrote helper function to return error to the user if parsing fails
> - elaborated in the commit message why we need this quirk (Thinh)
> - addressed miscellaneous style issues (Thinh)
> 
> Andy Shevchenko (3):
>    dt-bindings: usb: dwc3: Add a property to reserve endpoints
>    usb: dwc3: gadget: Add support for snps,reserved-endpoints property
>    usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
> 
>   .../bindings/usb/snps,dwc3-common.yaml        | 11 ++++
>   drivers/usb/dwc3/dwc3-pci.c                   | 10 ++++
>   drivers/usb/dwc3/gadget.c                     | 60 +++++++++++++++++--
>   3 files changed, 76 insertions(+), 5 deletions(-)
> 
Retested this on v6.13.0 Intel Merrifield and found no problems due to 
this patch. With simultaneous iperf3 on cdc eem, and a disk bench mark 
on mass storage, it is possible to overload the gadgets causing no or 
delayed responses (delayed until killing iperf3) on gser, eventually 
causing the host side to need a reboot. So, nothing new there :-)

Thanks!

Tested-by: Ferry Toth <fntoth@gmail.com>