There are a few issues in DWC3 driver when preparing for TRB. The driver needs to account the following: * MPS alignment for ZLP OUT direction * Extra TRBs when checking for available TRBs * SG entries size > request length Along with these fixes, there are some cleanup/refactoring patches in this series. Changes in v3: - Rebase on Felipe's testing/next branch with the remaining patches of this series Changes in v2: - Update remaining length when resume request - Remove unused variables - Add a missing "return 0" for dwc3_prepare_trbs() - Update doc indicating dwc3_prepare_trbs() can return other -errno Thinh Nguyen (4): usb: dwc3: gadget: Refactor preparing TRBs usb: dwc3: gadget: Account for extra TRB usb: dwc3: gadget: Rename misleading function names usb: dwc3: ep0: Skip ZLP setup for OUT drivers/usb/dwc3/ep0.c | 2 +- drivers/usb/dwc3/gadget.c | 246 +++++++++++++++++--------------------- 2 files changed, 112 insertions(+), 136 deletions(-) base-commit: 8bc2602e7a402664131d79251d59b262b896ca37 -- 2.28.0