This series resolves various issues with ZLP handling and refactor handling of TRBs. This series has too many changes comparing to the "[PATCH v3 0/4] usb: dwc3: gadget: Fix TRB preparation" series so I created different series instead. Thinh Nguyen (10): usb: dwc3: gadget: Check MPS of the request length usb: dwc3: gadget: Reclaim extra TRBs after request completion usb: dwc3: gadget: Refactor preparing extra TRB usb: dwc3: gadget: Improve TRB ZLP setup usb: dwc3: ep0: Fix ZLP for OUT ep0 requests usb: dwc3: gadget: Return the number of prepared TRBs usb: dwc3: gadget: Check for number of TRBs prepared usb: dwc3: gadget: Set IOC if not enough for extra TRBs usb: dwc3: gadget: Refactor preparing last TRBs usb: dwc3: gadget: Rename misleading function names drivers/usb/dwc3/ep0.c | 11 +- drivers/usb/dwc3/gadget.c | 262 +++++++++++++++++--------------------- 2 files changed, 124 insertions(+), 149 deletions(-) base-commit: 2f45af92722ee6e78f12037af1870117bcae00d1 -- 2.28.0