patch "usb: dwc2: gadget: Fix sending zero length packet in DDMA mode." added to usb-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From d53dc38857f6dbefabd9eecfcbf67b6eac9a1ef4 Mon Sep 17 00:00:00 2001
From: Minas Harutyunyan <[email protected]>
Date: Tue, 20 Jul 2021 05:41:24 -0700
Subject: usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
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.
--- drivers/usb/dwc2/gadget.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
drivers/usb/dwc2/gadget.c +6 -4
@@ -2749,12 +2749,14 @@ 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); hs_ep->send_zlp =0 ; -/* transfer will be completed on next complete interrupt */ -return ; +if (!using_desc_dma (hsotg)) { +dwc2_hsotg_program_zlp (hsotg, hs_ep); +/* transfer will be completed on next complete interrupt */ +return ; + } }if (hs_ep->index ==0 && hsotg->ep0_state ==DWC2_EP0_DATA_IN ) {
Signature · 1 line
2.32.0