Message ID | 7de9dbf515b15464f8f6db3bab76123c950597d7.1624533048.git.Minas.Harutyunyan@synopsys.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2] usb: dwc2: gadget: Fix sending zero length packet in DDMA mode. | expand |
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index c581ee41ac81..bf456b4e191f 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -2749,9 +2749,11 @@ static void dwc2_hsotg_complete_in(struct dwc2_hsotg *hsotg, return; } - /* Zlp for all endpoints, for ep0 only in DATA IN stage */ + /* Zlp for all endpoints in non DDMA, for ep0 only in DATA IN stage */ if (hs_ep->send_zlp) { - dwc2_hsotg_program_zlp(hsotg, hs_ep); + if (!using_desc_dma(hsotg)) + dwc2_hsotg_program_zlp(hsotg, hs_ep); + hs_ep->send_zlp = 0; /* transfer will be completed on next complete interrupt */ return;
Sending zero length packet in DDMA mode perform by DMA descriptor by setting SP (short packet) flag. For DDMA in function dwc2_hsotg_complete_in() does not need to send zlp. Tested by USBCV MSC tests. Fixes: f71b5e2533de ("usb: dwc2: gadget: fix zero length packet transfers") Signed-off-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com> --- Changes in v2: - Minor typo correction in comments drivers/usb/dwc2/gadget.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) base-commit: 00a738b86ec0c88ad4745f658966f951cbe4c885